You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fluss.apache.org by ja...@apache.org on 2025/08/25 11:19:05 UTC
(fluss) branch ci-rename-to-apache updated (13be5d5bf -> 15df98387)
This is an automated email from the ASF dual-hosted git repository.
jark pushed a change to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
discard 13be5d5bf WIP
discard 44cc0eb52 spotless
discard c85734f5a WIP
discard 5fb16cf98 WIP
discard d8f9bfb1d WIP
discard 4c2220566 WIP
discard d462f2bcc WIP
discard da38b7e16 [Improve] Update NOTICE.
discard 5893a5d11 [Improve] The META-INF/services minor improvement
discard 0737a9e6c [INFRA] The project package name updated to org.apache.fluss.
add 9cdc9b7ef [lake/lance] Lance lake writer and committer implementation (#1441)
add 20549dcb6 [hotfix] Fix import package name (#1585)
add 4b14844f8 [lake/iceberg] add full data type integration test (#1577)
add 420194a6e [client] RemoteLogDownloader supports download log files in parallel and in priority (#1579)
new 25d34e49c [INFRA] The project package name updated to org.apache.fluss.
new aa10e43c1 [Improve] The META-INF/services minor improvement
new 0a821866c [Improve] Update NOTICE.
new 2ed024954 WIP
new 78b503c15 WIP
new 0ded1f501 WIP
new 0e800b0db WIP
new efd24eea5 WIP
new b6c2eca8f spotless
new 89a426d78 WIP
new 558079eae fix
new 15df98387 fix
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (13be5d5bf)
\
N -- N -- N refs/heads/ci-rename-to-apache (15df98387)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 12 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../client/table/scanner/RemoteFileDownloader.java | 68 ++++-
.../client/table/scanner/log/LogFetchBuffer.java | 69 ++---
.../table/scanner/log/LogFetchCollector.java | 4 +-
.../fluss/client/table/scanner/log/LogFetcher.java | 5 +-
.../table/scanner/log/RemoteLogDownloader.java | 160 +++++++----
.../table/scanner/log/RemotePendingFetch.java | 16 +-
.../table/scanner/log/LogFetchBufferTest.java | 45 +--
.../table/scanner/log/RemoteLogDownloaderTest.java | 286 ++++++++++++++----
...rg.apache.fluss.fs.token.SecurityTokenReceiver} | 0
.../tiering/FlussRecordAsIcebergRecord.java | 24 +-
.../testutils/FlinkIcebergTieringTestBase.java | 76 ++++-
.../lake/iceberg/tiering/IcebergTieringITCase.java | 146 +++++++++-
fluss-lake/fluss-lake-lance/pom.xml | 2 +-
.../org/apache/fluss/lake/lance/LanceConfig.java | 54 +---
.../apache/fluss/lake/lance/LanceLakeCatalog.java | 24 +-
.../apache/fluss/lake/lance/LanceLakeStorage.java | 3 +-
.../fluss/lake/lance/tiering/ArrowWriter.java | 74 +++++
.../fluss/lake/lance/tiering/LanceArrowWriter.java | 130 +++++++++
.../lance/tiering/LanceCommittableSerializer.java} | 39 ++-
.../lake/lance/tiering/LanceLakeCommitter.java | 162 +++++++++++
.../lance/tiering/LanceLakeTieringFactory.java} | 33 +--
.../fluss/lake/lance/tiering/LanceLakeWriter.java | 94 ++++++
.../lance/tiering/LanceWriteResultSerializer.java | 55 ++++
.../fluss/lake/lance/utils/LanceArrowUtils.java | 88 ++++++
.../lake/lance/utils/LanceDatasetAdapter.java | 40 +++
.../lake/lance}/writers/ArrowBigIntWriter.java | 9 +-
.../lake/lance}/writers/ArrowBinaryWriter.java | 7 +-
.../lake/lance}/writers/ArrowBooleanWriter.java | 7 +-
.../fluss/lake/lance}/writers/ArrowDateWriter.java | 7 +-
.../lake/lance}/writers/ArrowDecimalWriter.java | 7 +-
.../lake/lance}/writers/ArrowDoubleWriter.java | 7 +-
.../lake/lance}/writers/ArrowFieldWriter.java | 10 +-
.../lake/lance}/writers/ArrowFloatWriter.java | 7 +-
.../fluss/lake/lance}/writers/ArrowIntWriter.java | 7 +-
.../lake/lance}/writers/ArrowSmallIntWriter.java | 7 +-
.../fluss/lake/lance}/writers/ArrowTimeWriter.java | 17 +-
.../lance}/writers/ArrowTimestampLtzWriter.java | 17 +-
.../lance}/writers/ArrowTimestampNtzWriter.java | 17 +-
.../lake/lance}/writers/ArrowTinyIntWriter.java | 7 +-
.../lake/lance}/writers/ArrowVarBinaryWriter.java | 7 +-
.../lake/lance}/writers/ArrowVarCharWriter.java | 7 +-
.../src/main/resources/META-INF/NOTICE | 2 +-
.../resources/META-INF/licenses/LICENSE.zstd-jni | 26 --
...pache.fluss.lake.lakestorage.LakeStoragePlugin} | 0
.../lance/testutils/FlinkLanceTieringTestBase.java | 219 ++++++++++++++
.../lake/lance/tiering/LanceTieringITCase.java | 148 ++++++++++
.../fluss/lake/lance/tiering/LanceTieringTest.java | 318 +++++++++++++++++++++
.../lake/lance/LakeEnabledTableCreateITCase.java | 27 +-
.../testutils/FlinkPaimonTieringTestBase.java | 1 -
.../fluss/rpc/util/CommonRpcMessageUtils.java | 6 +-
fluss-rpc/src/main/proto/FlussApi.proto | 1 +
.../fluss/server/utils/ServerRpcMessageUtils.java | 3 +-
pom.xml | 3 +-
53 files changed, 2139 insertions(+), 459 deletions(-)
rename fluss-client/src/test/resources/META-INF/services/{com.alibaba.fluss.fs.token.SecurityTokenReceiver => org.apache.fluss.fs.token.SecurityTokenReceiver} (100%)
create mode 100644 fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/ArrowWriter.java
create mode 100644 fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceArrowWriter.java
copy fluss-lake/{fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonWriteResultSerializer.java => fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceCommittableSerializer.java} (50%)
create mode 100644 fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeCommitter.java
copy fluss-lake/{fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeTieringFactory.java => fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeTieringFactory.java} (56%)
create mode 100644 fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeWriter.java
create mode 100644 fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResultSerializer.java
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowBigIntWriter.java (87%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowBinaryWriter.java (91%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowBooleanWriter.java (91%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowDateWriter.java (91%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowDecimalWriter.java (93%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowDoubleWriter.java (91%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowFieldWriter.java (92%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowFloatWriter.java (91%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowIntWriter.java (91%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowSmallIntWriter.java (91%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowTimeWriter.java (85%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowTimestampLtzWriter.java (86%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowTimestampNtzWriter.java (85%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowTinyIntWriter.java (91%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowVarBinaryWriter.java (90%)
copy {fluss-common/src/main/java/org/apache/fluss/row/arrow => fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance}/writers/ArrowVarCharWriter.java (91%)
delete mode 100644 fluss-lake/fluss-lake-lance/src/main/resources/META-INF/licenses/LICENSE.zstd-jni
rename fluss-lake/fluss-lake-lance/src/main/resources/META-INF/services/{com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin => org.apache.fluss.lake.lakestorage.LakeStoragePlugin} (100%)
create mode 100644 fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/testutils/FlinkLanceTieringTestBase.java
create mode 100644 fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringITCase.java
create mode 100644 fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringTest.java
(fluss) 09/12: spotless
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit b6c2eca8fc6c0ad6858e24817e20c5abfba5928e
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 14:48:20 2025 +0800
spotless
---
.../main/java/org/apache/fluss/predicate/Predicate.java | 4 +++-
.../org/apache/fluss/predicate/PredicateBuilderTest.java | 1 +
.../java/org/apache/fluss/predicate/PredicateTest.java | 1 +
.../apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java | 12 ++++++------
.../main/java/org/apache/fluss/fs/obs/OBSFileSystem.java | 1 +
.../org/apache/fluss/fs/obs/OBSFileSystemPlugin.java | 1 +
.../token/DynamicTemporaryOBSCredentialsProvider.java | 3 ++-
.../fluss/fs/obs/token/OBSSecurityTokenProvider.java | 7 ++++---
.../java/org/apache/flink/api/connector/sink2/Sink.java | 4 +++-
.../apache/fluss/flink/lake/LakeRecordRecordEmitter.java | 3 ++-
.../org/apache/fluss/flink/lake/LakeSplitSerializer.java | 5 +++--
.../apache/fluss/jmh/ArrowReadableChannelBenchmark.java | 3 ++-
.../apache/fluss/jmh/ArrowWritableChannelBenchmark.java | 3 ++-
.../java/org/apache/fluss/jmh/LogScannerBenchmark.java | 1 +
.../org/apache/fluss/kafka/KafkaChannelInitializer.java | 1 -
.../java/org/apache/fluss/kafka/KafkaCommandDecoder.java | 4 ++--
.../java/org/apache/fluss/kafka/KafkaProtocolPlugin.java | 1 -
.../main/java/org/apache/fluss/kafka/KafkaRequest.java | 2 +-
.../org/apache/fluss/kafka/KafkaRequestHandlerTest.java | 2 +-
.../lake/iceberg/FlussDataTypeToIcebergDataType.java | 1 +
.../apache/fluss/lake/iceberg/IcebergLakeCatalog.java | 1 +
.../org/apache/fluss/lake/iceberg/conf/HadoopUtils.java | 1 +
.../fluss/lake/iceberg/conf/IcebergConfiguration.java | 1 +
.../lake/iceberg/tiering/IcebergCatalogProvider.java | 1 +
.../fluss/lake/iceberg/tiering/IcebergLakeCommitter.java | 1 +
.../fluss/lake/iceberg/tiering/IcebergLakeWriter.java | 1 +
.../iceberg/tiering/IcebergWriteResultSerializer.java | 1 +
.../apache/fluss/lake/iceberg/tiering/RecordWriter.java | 1 +
.../iceberg/tiering/writer/AppendOnlyTaskWriter.java | 1 +
.../lake/iceberg/tiering/writer/DeltaTaskWriter.java | 1 +
.../tiering/writer/GenericRecordAppendOnlyWriter.java | 1 +
.../iceberg/tiering/writer/GenericRecordDeltaWriter.java | 1 +
.../fluss/lake/iceberg/utils/IcebergConversions.java | 1 +
.../fluss/lake/iceberg/IcebergLakeCatalogTest.java | 1 +
.../fluss/lake/iceberg/tiering/IcebergTieringTest.java | 1 +
.../fluss/lake/iceberg/utils/IcebergConversionsTest.java | 4 +++-
.../fluss/lake/lance/utils/LanceDatasetAdapter.java | 2 ++
.../fluss/lake/paimon/source/FlussRowAsPaimonRow.java | 1 +
.../lake/paimon/source/PaimonSortedRecordReader.java | 16 ++++++++--------
.../fluss/lake/paimon/tiering/PaimonLakeCommitter.java | 4 ++--
.../paimon/utils/FlussToPaimonPredicateConverter.java | 1 +
.../fluss/lake/paimon/utils/PaimonRowAsFlussRow.java | 1 +
.../fluss/lake/paimon/source/PaimonLakeSourceTest.java | 3 ++-
.../fluss/lake/paimon/source/PaimonRecordReaderTest.java | 9 ++++-----
.../lake/paimon/source/PaimonSortedRecordReaderTest.java | 7 +++----
.../fluss/lake/paimon/source/PaimonSourceTestBase.java | 3 ++-
.../fluss/lake/paimon/tiering/PaimonTieringTest.java | 1 +
.../apache/fluss/protogen/benchmark/ProtoBenchmark.java | 3 ++-
.../apache/fluss/protogen/benchmark/SimpleBenchmark.java | 3 ++-
.../protogen/benchmark/StringEncodingBenchmark.java | 1 +
.../org/apache/fluss/protogen/tests/AddressBookTest.java | 3 ++-
.../java/org/apache/fluss/protogen/tests/BytesTest.java | 11 +++++------
.../java/org/apache/fluss/protogen/tests/EnumsTest.java | 3 ++-
.../org/apache/fluss/protogen/tests/MessagesTest.java | 3 ++-
.../org/apache/fluss/protogen/tests/NumbersTest.java | 3 ++-
.../apache/fluss/protogen/tests/RepeatedNumbersTest.java | 3 ++-
.../org/apache/fluss/protogen/tests/RequiredTest.java | 3 ++-
.../org/apache/fluss/protogen/tests/StringsTest.java | 6 +++---
.../fluss/tools/ci/licensecheck/NoticeFileChecker.java | 3 ++-
.../apache/fluss/tools/ci/utils/deploy/DeployParser.java | 3 ++-
60 files changed, 111 insertions(+), 64 deletions(-)
diff --git a/fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java b/fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java
index 2d67f7f32..e08c8347b 100644
--- a/fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java
+++ b/fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java
@@ -47,7 +47,9 @@ public interface Predicate extends Serializable {
*/
boolean test(long rowCount, InternalRow minValues, InternalRow maxValues, Long[] nullCounts);
- /** @return the negation predicate of this predicate if possible. */
+ /**
+ * @return the negation predicate of this predicate if possible.
+ */
Optional<Predicate> negate();
<T> T visit(PredicateVisitor<T> visitor);
diff --git a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
index 3c5013407..600d72be9 100644
--- a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
@@ -19,6 +19,7 @@ package org.apache.fluss.predicate;
import org.apache.fluss.types.IntType;
import org.apache.fluss.types.RowType;
+
import org.junit.jupiter.api.Test;
import javax.annotation.Nullable;
diff --git a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
index b116e4283..ad04985d7 100644
--- a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
@@ -21,6 +21,7 @@ import org.apache.fluss.row.GenericRow;
import org.apache.fluss.types.IntType;
import org.apache.fluss.types.RowType;
import org.apache.fluss.types.StringType;
+
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
diff --git a/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java
index 7ab04195b..b1902c2bb 100644
--- a/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java
+++ b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java
@@ -17,15 +17,16 @@
package org.apache.fluss.fs.gs;
-import com.google.cloud.hadoop.gcsio.GoogleCloudStorageFileSystem;
-import com.google.cloud.hadoop.gcsio.GoogleCloudStorageFileSystemOptions;
-import com.google.cloud.hadoop.gcsio.testing.InMemoryGoogleCloudStorage;
-import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.fs.FileSystem;
import org.apache.fluss.fs.FileSystemBehaviorTestSuite;
import org.apache.fluss.fs.FsPath;
import org.apache.fluss.testutils.common.CommonTestUtils;
+
+import com.google.cloud.hadoop.gcsio.GoogleCloudStorageFileSystem;
+import com.google.cloud.hadoop.gcsio.GoogleCloudStorageFileSystemOptions;
+import com.google.cloud.hadoop.gcsio.testing.InMemoryGoogleCloudStorage;
+import org.apache.commons.lang3.reflect.FieldUtils;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
@@ -92,8 +93,7 @@ class GSFileSystemBehaviorITCase extends FileSystemBehaviorTestSuite {
GoogleCloudStorageFileSystem googleCloudStorageFileSystem =
new GoogleCloudStorageFileSystem(
googleCloudStorageOptions -> inMemoryGoogleCloudStorage,
- GoogleCloudStorageFileSystemOptions.DEFAULT
- .toBuilder()
+ GoogleCloudStorageFileSystemOptions.DEFAULT.toBuilder()
.setCloudStorageOptions(inMemoryGoogleCloudStorage.getOptions())
.build());
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
index 145ece1ab..8396c66b7 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
@@ -20,6 +20,7 @@ package org.apache.fluss.fs.obs;
import org.apache.fluss.fs.hdfs.HadoopFileSystem;
import org.apache.fluss.fs.obs.token.OBSSecurityTokenProvider;
import org.apache.fluss.fs.token.ObtainedSecurityToken;
+
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
index 0750472a6..815b36ab0 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
@@ -23,6 +23,7 @@ import org.apache.fluss.config.Configuration;
import org.apache.fluss.fs.FileSystem;
import org.apache.fluss.fs.FileSystemPlugin;
import org.apache.fluss.fs.obs.token.OBSSecurityTokenReceiver;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
index f6e830d1f..207ad3b71 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
@@ -17,10 +17,11 @@
package org.apache.fluss.fs.obs.token;
+import org.apache.fluss.annotation.Internal;
+
import com.obs.services.IObsCredentialsProvider;
import com.obs.services.internal.security.BasicSecurityKey;
import com.obs.services.model.ISecurityKey;
-import org.apache.fluss.annotation.Internal;
import org.apache.hadoop.fs.obs.OBSFileSystem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
index 236764a22..9f87a3fdd 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
@@ -17,6 +17,10 @@
package org.apache.fluss.fs.obs.token;
+import org.apache.fluss.fs.token.Credentials;
+import org.apache.fluss.fs.token.CredentialsJsonSerde;
+import org.apache.fluss.fs.token.ObtainedSecurityToken;
+
import com.huaweicloud.sdk.core.auth.GlobalCredentials;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.iam.v3.IamClient;
@@ -28,9 +32,6 @@ import com.huaweicloud.sdk.iam.v3.model.IdentityToken;
import com.huaweicloud.sdk.iam.v3.model.TokenAuth;
import com.huaweicloud.sdk.iam.v3.model.TokenAuthIdentity;
import com.huaweicloud.sdk.iam.v3.region.IamRegion;
-import org.apache.fluss.fs.token.Credentials;
-import org.apache.fluss.fs.token.CredentialsJsonSerde;
-import org.apache.fluss.fs.token.ObtainedSecurityToken;
import org.apache.hadoop.conf.Configuration;
import java.time.Instant;
diff --git a/fluss-flink/fluss-flink-2.1/src/main/java/org/apache/flink/api/connector/sink2/Sink.java b/fluss-flink/fluss-flink-2.1/src/main/java/org/apache/flink/api/connector/sink2/Sink.java
index 5dfc628ac..8cab1cb53 100644
--- a/fluss-flink/fluss-flink-2.1/src/main/java/org/apache/flink/api/connector/sink2/Sink.java
+++ b/fluss-flink/fluss-flink-2.1/src/main/java/org/apache/flink/api/connector/sink2/Sink.java
@@ -53,7 +53,9 @@ public interface Sink<InputT> extends Serializable {
*/
MailboxExecutor getMailboxExecutor();
- /** @return The metric group this writer belongs to. */
+ /**
+ * @return The metric group this writer belongs to.
+ */
SinkWriterMetricGroup metricGroup();
}
}
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java
index 58a14b207..147043fdc 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java
@@ -17,13 +17,14 @@
package org.apache.fluss.flink.lake;
-import org.apache.flink.api.connector.source.SourceOutput;
import org.apache.fluss.client.table.scanner.ScanRecord;
import org.apache.fluss.flink.lake.state.LakeSnapshotAndFlussLogSplitState;
import org.apache.fluss.flink.lake.state.LakeSnapshotSplitState;
import org.apache.fluss.flink.source.reader.RecordAndPos;
import org.apache.fluss.flink.source.split.SourceSplitState;
+import org.apache.flink.api.connector.source.SourceOutput;
+
import java.util.function.BiConsumer;
/** The emitter to emit record from lake split. */
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitSerializer.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitSerializer.java
index 9407cb749..88c4e6db8 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitSerializer.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitSerializer.java
@@ -17,8 +17,6 @@
package org.apache.fluss.flink.lake;
-import org.apache.flink.core.memory.DataInputDeserializer;
-import org.apache.flink.core.memory.DataOutputSerializer;
import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
import org.apache.fluss.flink.source.split.LogSplit;
@@ -27,6 +25,9 @@ import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
import org.apache.fluss.lake.source.LakeSplit;
import org.apache.fluss.metadata.TableBucket;
+import org.apache.flink.core.memory.DataInputDeserializer;
+import org.apache.flink.core.memory.DataOutputSerializer;
+
import javax.annotation.Nullable;
import java.io.IOException;
diff --git a/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowReadableChannelBenchmark.java b/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowReadableChannelBenchmark.java
index 793fbeb04..55bc62ba7 100644
--- a/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowReadableChannelBenchmark.java
+++ b/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowReadableChannelBenchmark.java
@@ -17,7 +17,6 @@
package org.apache.fluss.jmh;
-import org.apache.commons.lang3.RandomUtils;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.IntVector;
@@ -36,6 +35,8 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.FieldTyp
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.server.ByteBufferInputStream;
import org.apache.fluss.utils.ByteBufferReadableChannel;
+
+import org.apache.commons.lang3.RandomUtils;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Level;
diff --git a/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowWritableChannelBenchmark.java b/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowWritableChannelBenchmark.java
index 5d7ac7a4f..a15f52a4b 100644
--- a/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowWritableChannelBenchmark.java
+++ b/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowWritableChannelBenchmark.java
@@ -17,7 +17,6 @@
package org.apache.fluss.jmh;
-import org.apache.commons.lang3.RandomUtils;
import org.apache.fluss.memory.MemorySegment;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
@@ -34,6 +33,8 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Field;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.FieldType;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
import org.apache.fluss.utils.MemorySegmentWritableChannel;
+
+import org.apache.commons.lang3.RandomUtils;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Level;
diff --git a/fluss-jmh/src/test/java/org/apache/fluss/jmh/LogScannerBenchmark.java b/fluss-jmh/src/test/java/org/apache/fluss/jmh/LogScannerBenchmark.java
index 372b11a28..cd5ff67f2 100644
--- a/fluss-jmh/src/test/java/org/apache/fluss/jmh/LogScannerBenchmark.java
+++ b/fluss-jmh/src/test/java/org/apache/fluss/jmh/LogScannerBenchmark.java
@@ -32,6 +32,7 @@ import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.row.GenericRow;
import org.apache.fluss.server.testutils.FlussClusterExtension;
import org.apache.fluss.types.DataTypes;
+
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Level;
diff --git a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaChannelInitializer.java b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaChannelInitializer.java
index a96efebfc..bf57ea0d5 100644
--- a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaChannelInitializer.java
+++ b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaChannelInitializer.java
@@ -19,7 +19,6 @@ package org.apache.fluss.kafka;
import org.apache.fluss.rpc.netty.NettyChannelInitializer;
import org.apache.fluss.rpc.netty.server.RequestChannel;
-
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelInitializer;
import org.apache.fluss.shaded.netty4.io.netty.channel.socket.SocketChannel;
import org.apache.fluss.shaded.netty4.io.netty.handler.codec.LengthFieldPrepender;
diff --git a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaCommandDecoder.java b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaCommandDecoder.java
index 3bbe1a0c5..43a0533b2 100644
--- a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaCommandDecoder.java
+++ b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaCommandDecoder.java
@@ -18,14 +18,14 @@
package org.apache.fluss.kafka;
import org.apache.fluss.rpc.netty.server.RequestChannel;
-import org.apache.fluss.utils.MathUtils;
-
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
import org.apache.fluss.shaded.netty4.io.netty.channel.SimpleChannelInboundHandler;
import org.apache.fluss.shaded.netty4.io.netty.handler.timeout.IdleState;
import org.apache.fluss.shaded.netty4.io.netty.handler.timeout.IdleStateEvent;
import org.apache.fluss.shaded.netty4.io.netty.util.ReferenceCountUtil;
+import org.apache.fluss.utils.MathUtils;
+
import org.apache.kafka.common.errors.LeaderNotAvailableException;
import org.apache.kafka.common.protocol.ApiKeys;
import org.apache.kafka.common.requests.AbstractRequest;
diff --git a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaProtocolPlugin.java b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaProtocolPlugin.java
index 5c07f5f16..076641759 100644
--- a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaProtocolPlugin.java
+++ b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaProtocolPlugin.java
@@ -24,7 +24,6 @@ import org.apache.fluss.rpc.gateway.TabletServerGateway;
import org.apache.fluss.rpc.netty.server.RequestChannel;
import org.apache.fluss.rpc.netty.server.RequestHandler;
import org.apache.fluss.rpc.protocol.NetworkProtocolPlugin;
-
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandler;
import java.util.List;
diff --git a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaRequest.java b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaRequest.java
index 2e2e99df8..25e409a74 100644
--- a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaRequest.java
+++ b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaRequest.java
@@ -19,10 +19,10 @@ package org.apache.fluss.kafka;
import org.apache.fluss.rpc.netty.server.RpcRequest;
import org.apache.fluss.rpc.protocol.RequestType;
-
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
import org.apache.fluss.shaded.netty4.io.netty.util.ReferenceCountUtil;
+
import org.apache.kafka.common.protocol.ApiKeys;
import org.apache.kafka.common.protocol.ApiMessage;
import org.apache.kafka.common.protocol.ByteBufferAccessor;
diff --git a/fluss-kafka/src/test/java/org/apache/fluss/kafka/KafkaRequestHandlerTest.java b/fluss-kafka/src/test/java/org/apache/fluss/kafka/KafkaRequestHandlerTest.java
index 90775e3b7..24e4ce8a6 100644
--- a/fluss-kafka/src/test/java/org/apache/fluss/kafka/KafkaRequestHandlerTest.java
+++ b/fluss-kafka/src/test/java/org/apache/fluss/kafka/KafkaRequestHandlerTest.java
@@ -18,10 +18,10 @@
package org.apache.fluss.kafka;
import org.apache.fluss.rpc.TestingTabletGatewayService;
-
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBufAllocator;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
+
import org.apache.kafka.common.protocol.ApiKeys;
import org.apache.kafka.common.protocol.Errors;
import org.apache.kafka.common.requests.AbstractResponse;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java
index 2ae0fcff6..aa1a97b44 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java
@@ -37,6 +37,7 @@ import org.apache.fluss.types.StringType;
import org.apache.fluss.types.TimeType;
import org.apache.fluss.types.TimestampType;
import org.apache.fluss.types.TinyIntType;
+
import org.apache.iceberg.types.Type;
import org.apache.iceberg.types.Types;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
index a3a2e9eef..25b101608 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
@@ -25,6 +25,7 @@ import org.apache.fluss.lake.lakestorage.LakeCatalog;
import org.apache.fluss.metadata.TableDescriptor;
import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.utils.IOUtils;
+
import org.apache.iceberg.PartitionSpec;
import org.apache.iceberg.Schema;
import org.apache.iceberg.SortOrder;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java
index 8b6145d2c..5aad1d5bf 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java
@@ -18,6 +18,7 @@
package org.apache.fluss.lake.iceberg.conf;
import org.apache.fluss.config.ConfigBuilder;
+
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hdfs.HdfsConfiguration;
import org.slf4j.Logger;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/IcebergConfiguration.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/IcebergConfiguration.java
index 40f65f6a2..285febb43 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/IcebergConfiguration.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/IcebergConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.fluss.lake.iceberg.conf;
import org.apache.fluss.annotation.VisibleForTesting;
import org.apache.fluss.config.Configuration;
+
import org.apache.iceberg.common.DynClasses;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java
index 30ad7302d..3c53918ec 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java
@@ -19,6 +19,7 @@ package org.apache.fluss.lake.iceberg.tiering;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.lake.iceberg.conf.IcebergConfiguration;
+
import org.apache.iceberg.catalog.Catalog;
import java.io.Serializable;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java
index 300c047eb..2df44d3de 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java
@@ -24,6 +24,7 @@ import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.fluss.utils.json.BucketOffsetJsonSerde;
+
import org.apache.iceberg.AppendFiles;
import org.apache.iceberg.CatalogUtil;
import org.apache.iceberg.DataFile;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeWriter.java
index d82f9a364..c5765b7d1 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeWriter.java
@@ -23,6 +23,7 @@ import org.apache.fluss.lake.writer.LakeWriter;
import org.apache.fluss.lake.writer.WriterInitContext;
import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.record.LogRecord;
+
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.Schema;
import org.apache.iceberg.Table;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java
index 6f1562837..26bb02a77 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java
@@ -20,6 +20,7 @@ package org.apache.fluss.lake.iceberg.tiering;
import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
import org.apache.fluss.utils.InstantiationUtils;
+
import org.apache.iceberg.io.WriteResult;
import java.io.IOException;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/RecordWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/RecordWriter.java
index df81f63a0..6a78cec15 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/RecordWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/RecordWriter.java
@@ -20,6 +20,7 @@ package org.apache.fluss.lake.iceberg.tiering;
import org.apache.fluss.metadata.TableBucket;
import org.apache.fluss.record.LogRecord;
import org.apache.fluss.types.RowType;
+
import org.apache.iceberg.Schema;
import org.apache.iceberg.data.Record;
import org.apache.iceberg.io.TaskWriter;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java
index b7d15d7c5..6f204ca30 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java
@@ -20,6 +20,7 @@ package org.apache.fluss.lake.iceberg.tiering.writer;
import org.apache.fluss.lake.iceberg.tiering.RecordWriter;
import org.apache.fluss.lake.writer.WriterInitContext;
import org.apache.fluss.record.LogRecord;
+
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.Table;
import org.apache.iceberg.data.GenericAppenderFactory;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java
index 6ea718a5b..677ae1e67 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java
@@ -20,6 +20,7 @@ package org.apache.fluss.lake.iceberg.tiering.writer;
import org.apache.fluss.lake.iceberg.tiering.RecordWriter;
import org.apache.fluss.lake.writer.WriterInitContext;
import org.apache.fluss.record.LogRecord;
+
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.Schema;
import org.apache.iceberg.Table;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java
index f31c37b89..8d5130304 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java
@@ -19,6 +19,7 @@
package org.apache.fluss.lake.iceberg.tiering.writer;
import org.apache.fluss.lake.writer.WriterInitContext;
+
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.Table;
import org.apache.iceberg.data.Record;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java
index 0ff13a0fc..d327ef176 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java
@@ -18,6 +18,7 @@
package org.apache.fluss.lake.iceberg.tiering.writer;
import org.apache.fluss.lake.writer.WriterInitContext;
+
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.PartitionKey;
import org.apache.iceberg.Schema;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/utils/IcebergConversions.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/utils/IcebergConversions.java
index 9d020db7d..2b53fe7a3 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/utils/IcebergConversions.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/utils/IcebergConversions.java
@@ -18,6 +18,7 @@
package org.apache.fluss.lake.iceberg.utils;
import org.apache.fluss.metadata.TablePath;
+
import org.apache.iceberg.PartitionKey;
import org.apache.iceberg.PartitionSpec;
import org.apache.iceberg.Schema;
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java
index 59d643a93..ef6bdb45e 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java
@@ -22,6 +22,7 @@ import org.apache.fluss.metadata.Schema;
import org.apache.fluss.metadata.TableDescriptor;
import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.types.DataTypes;
+
import org.apache.iceberg.PartitionField;
import org.apache.iceberg.SortDirection;
import org.apache.iceberg.SortField;
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java
index d0227ca1d..0e3600fab 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java
@@ -31,6 +31,7 @@ import org.apache.fluss.row.BinaryString;
import org.apache.fluss.row.GenericRow;
import org.apache.fluss.types.DataTypes;
import org.apache.fluss.utils.types.Tuple2;
+
import org.apache.iceberg.PartitionSpec;
import org.apache.iceberg.Snapshot;
import org.apache.iceberg.Table;
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/utils/IcebergConversionsTest.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/utils/IcebergConversionsTest.java
index 0facb2783..9d18e9d5c 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/utils/IcebergConversionsTest.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/utils/IcebergConversionsTest.java
@@ -21,6 +21,7 @@ package org.apache.fluss.lake.iceberg.utils;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.lake.iceberg.conf.IcebergConfiguration;
import org.apache.fluss.metadata.TablePath;
+
import org.apache.iceberg.PartitionKey;
import org.apache.iceberg.PartitionSpec;
import org.apache.iceberg.Schema;
@@ -43,7 +44,8 @@ import static org.apache.iceberg.types.Types.NestedField.required;
import static org.assertj.core.api.Assertions.assertThat;
/** UT for {@link IcebergConversions}. */
-class IcebergConversionsTest {;
+class IcebergConversionsTest {
+ ;
@Test
void testToPartition(@TempDir File tempWarehouseDir) {
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java
index 54ddefbef..1ffd94565 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java
@@ -21,6 +21,8 @@ import com.alibaba.fluss.lake.lance.LanceConfig;
import com.alibaba.fluss.lake.lance.tiering.LanceArrowWriter;
import com.alibaba.fluss.types.RowType;
+import org.apache.fluss.lake.lance.LanceConfig;
+
import com.lancedb.lance.Dataset;
import com.lancedb.lance.Fragment;
import com.lancedb.lance.FragmentMetadata;
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/FlussRowAsPaimonRow.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
index 6260fd9aa..52994569a 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
@@ -19,6 +19,7 @@ package org.apache.fluss.lake.paimon.source;
import org.apache.fluss.row.TimestampLtz;
import org.apache.fluss.row.TimestampNtz;
+
import org.apache.paimon.data.BinaryString;
import org.apache.paimon.data.Decimal;
import org.apache.paimon.data.InternalArray;
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReader.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReader.java
index 78568e1db..0131788fb 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReader.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReader.java
@@ -1,13 +1,12 @@
/*
- * 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
+ * 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
+ * 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,
@@ -20,6 +19,7 @@ package org.apache.fluss.lake.paimon.source;
import org.apache.fluss.lake.source.SortedRecordReader;
import org.apache.fluss.row.InternalRow;
+
import org.apache.paimon.KeyValueFileStore;
import org.apache.paimon.predicate.Predicate;
import org.apache.paimon.table.FileStoreTable;
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java
index 9c07eacbe..6408e4a81 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java
@@ -21,10 +21,10 @@ import org.apache.fluss.lake.committer.BucketOffset;
import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
import org.apache.fluss.lake.committer.LakeCommitter;
import org.apache.fluss.metadata.TablePath;
-import org.apache.fluss.utils.json.BucketOffsetJsonSerde;
-
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.fluss.utils.json.BucketOffsetJsonSerde;
+
import org.apache.paimon.CoreOptions;
import org.apache.paimon.Snapshot;
import org.apache.paimon.catalog.Catalog;
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverter.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverter.java
index 9c10ab1d9..b4fff750d 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverter.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverter.java
@@ -25,6 +25,7 @@ import org.apache.fluss.predicate.FunctionVisitor;
import org.apache.fluss.predicate.LeafPredicate;
import org.apache.fluss.predicate.Or;
import org.apache.fluss.predicate.PredicateVisitor;
+
import org.apache.paimon.predicate.Predicate;
import org.apache.paimon.predicate.PredicateBuilder;
import org.apache.paimon.types.RowType;
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
index f9ba409d1..5c66fb3eb 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
@@ -22,6 +22,7 @@ import org.apache.fluss.row.Decimal;
import org.apache.fluss.row.InternalRow;
import org.apache.fluss.row.TimestampLtz;
import org.apache.fluss.row.TimestampNtz;
+
import org.apache.paimon.data.Timestamp;
/** Adapter for paimon row as fluss row. */
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonLakeSourceTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonLakeSourceTest.java
index 9cbe5b9f9..55dedbeb0 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonLakeSourceTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonLakeSourceTest.java
@@ -18,7 +18,6 @@
package org.apache.fluss.lake.paimon.source;
-import org.apache.flink.types.Row;
import org.apache.fluss.lake.source.LakeSource;
import org.apache.fluss.lake.source.RecordReader;
import org.apache.fluss.metadata.TablePath;
@@ -35,6 +34,8 @@ import org.apache.fluss.types.IntType;
import org.apache.fluss.types.RowType;
import org.apache.fluss.types.StringType;
import org.apache.fluss.utils.CloseableIterator;
+
+import org.apache.flink.types.Row;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.data.BinaryString;
import org.apache.paimon.data.GenericRow;
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonRecordReaderTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonRecordReaderTest.java
index d3446a47a..3d37c1692 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonRecordReaderTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonRecordReaderTest.java
@@ -18,7 +18,6 @@
package org.apache.fluss.lake.paimon.source;
-import org.apache.flink.types.Row;
import org.apache.fluss.lake.paimon.utils.PaimonRowAsFlussRow;
import org.apache.fluss.lake.source.LakeSource;
import org.apache.fluss.lake.source.RecordReader;
@@ -42,6 +41,8 @@ import org.apache.fluss.types.StringType;
import org.apache.fluss.types.TimestampType;
import org.apache.fluss.types.TinyIntType;
import org.apache.fluss.utils.CloseableIterator;
+
+import org.apache.flink.types.Row;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.Snapshot;
import org.apache.paimon.schema.Schema;
@@ -255,8 +256,7 @@ class PaimonRecordReaderTest extends PaimonSourceTestBase {
i + 400L,
500.1f,
600.0d,
- org.apache.fluss.row.BinaryString.fromString(
- "another_string_" + i),
+ org.apache.fluss.row.BinaryString.fromString("another_string_" + i),
Decimal.fromUnscaledLong(900, 5, 2),
Decimal.fromBigDecimal(new java.math.BigDecimal(1000), 20, 0),
TimestampLtz.fromEpochMillis(1698235273400L),
@@ -279,8 +279,7 @@ class PaimonRecordReaderTest extends PaimonSourceTestBase {
i + 400L,
500.1f,
600.0d,
- org.apache.fluss.row.BinaryString.fromString(
- "another_string_" + i),
+ org.apache.fluss.row.BinaryString.fromString("another_string_" + i),
Decimal.fromUnscaledLong(900, 5, 2),
Decimal.fromBigDecimal(new java.math.BigDecimal(1000), 20, 0),
TimestampLtz.fromEpochMillis(1698235273400L),
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java
index 997735124..49749bf4e 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java
@@ -30,6 +30,7 @@ import org.apache.fluss.row.InternalRow;
import org.apache.fluss.row.TimestampLtz;
import org.apache.fluss.row.TimestampNtz;
import org.apache.fluss.utils.CloseableIterator;
+
import org.apache.paimon.CoreOptions;
import org.apache.paimon.Snapshot;
import org.apache.paimon.schema.Schema;
@@ -164,8 +165,7 @@ class PaimonSortedRecordReaderTest extends PaimonSourceTestBase {
400L,
500.1f,
600.0d,
- org.apache.fluss.row.BinaryString.fromString(
- "another_string_" + i),
+ org.apache.fluss.row.BinaryString.fromString("another_string_" + i),
Decimal.fromUnscaledLong(900, 5, 2),
Decimal.fromBigDecimal(new java.math.BigDecimal(1000), 20, 0),
TimestampLtz.fromEpochMillis(1698235273400L),
@@ -188,8 +188,7 @@ class PaimonSortedRecordReaderTest extends PaimonSourceTestBase {
400L,
500.1f,
600.0d,
- org.apache.fluss.row.BinaryString.fromString(
- "another_string_" + i),
+ org.apache.fluss.row.BinaryString.fromString("another_string_" + i),
Decimal.fromUnscaledLong(900, 5, 2),
Decimal.fromBigDecimal(new java.math.BigDecimal(1000), 20, 0),
TimestampLtz.fromEpochMillis(1698235273400L),
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSourceTestBase.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSourceTestBase.java
index cad90c706..9155a0d3b 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSourceTestBase.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSourceTestBase.java
@@ -18,11 +18,12 @@
package org.apache.fluss.lake.paimon.source;
-import org.apache.flink.types.Row;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.lake.paimon.PaimonLakeStorage;
import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.utils.CloseableIterator;
+
+import org.apache.flink.types.Row;
import org.apache.paimon.catalog.Catalog;
import org.apache.paimon.catalog.CatalogContext;
import org.apache.paimon.catalog.CatalogFactory;
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java
index 92f491e82..fdbd1eb31 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java
@@ -31,6 +31,7 @@ import org.apache.fluss.record.LogRecord;
import org.apache.fluss.row.BinaryString;
import org.apache.fluss.row.GenericRow;
import org.apache.fluss.utils.types.Tuple2;
+
import org.apache.paimon.CoreOptions;
import org.apache.paimon.catalog.Catalog;
import org.apache.paimon.catalog.CatalogContext;
diff --git a/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/ProtoBenchmark.java b/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/ProtoBenchmark.java
index e119fe16c..fe1ca3c91 100644
--- a/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/ProtoBenchmark.java
+++ b/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/ProtoBenchmark.java
@@ -17,13 +17,14 @@
package org.apache.fluss.protogen.benchmark;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.protogen.tests.AddressBook;
import org.apache.fluss.protogen.tests.AddressBookProtos;
import org.apache.fluss.protogen.tests.Person;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.PooledByteBufAllocator;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedOutputStream;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Measurement;
diff --git a/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/SimpleBenchmark.java b/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/SimpleBenchmark.java
index 2b28ef650..abb9eae56 100644
--- a/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/SimpleBenchmark.java
+++ b/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/SimpleBenchmark.java
@@ -17,13 +17,14 @@
package org.apache.fluss.protogen.benchmark;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.protogen.tests.Frame;
import org.apache.fluss.protogen.tests.Point;
import org.apache.fluss.protogen.tests.PointFrame;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.PooledByteBufAllocator;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedOutputStream;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Measurement;
diff --git a/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/StringEncodingBenchmark.java b/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/StringEncodingBenchmark.java
index 1dccd1865..90ba2101f 100644
--- a/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/StringEncodingBenchmark.java
+++ b/fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/StringEncodingBenchmark.java
@@ -20,6 +20,7 @@ package org.apache.fluss.protogen.benchmark;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBufAllocator;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBufUtil;
+
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Measurement;
diff --git a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/AddressBookTest.java b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/AddressBookTest.java
index 235743b22..87182ac2c 100644
--- a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/AddressBookTest.java
+++ b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/AddressBookTest.java
@@ -17,9 +17,10 @@
package org.apache.fluss.protogen.tests;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedOutputStream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/BytesTest.java b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/BytesTest.java
index df844ba53..b2ccc1187 100644
--- a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/BytesTest.java
+++ b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/BytesTest.java
@@ -17,14 +17,15 @@
package org.apache.fluss.protogen.tests;
-import com.google.protobuf.ByteString;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.memory.MemorySegment;
import org.apache.fluss.record.bytesview.MultiBytesView;
import org.apache.fluss.record.send.Send;
import org.apache.fluss.record.send.SendWritableOutput;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.ByteString;
+import com.google.protobuf.CodedOutputStream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -61,8 +62,7 @@ public class BytesTest {
// test binary equals to protobuf
Bytes.B pbb =
- Bytes.B
- .newBuilder()
+ Bytes.B.newBuilder()
.setPayload(ByteString.copyFrom(new byte[] {1, 2, 3, 4, 5}))
.build();
@@ -254,8 +254,7 @@ public class BytesTest {
assertThat(lpb.getExtraItemAt(1)).isEqualTo(new byte[] {4, 5, 6, 7});
Bytes.B pbb =
- Bytes.B
- .newBuilder()
+ Bytes.B.newBuilder()
.addExtraItems(ByteString.copyFrom(new byte[] {1, 2, 3}))
.addExtraItems(ByteString.copyFrom(new byte[] {4, 5, 6, 7}))
.build();
diff --git a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/EnumsTest.java b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/EnumsTest.java
index e789f0285..968f4e2ff 100644
--- a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/EnumsTest.java
+++ b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/EnumsTest.java
@@ -17,9 +17,10 @@
package org.apache.fluss.protogen.tests;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedOutputStream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/MessagesTest.java b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/MessagesTest.java
index b9dcac76d..a9704144e 100644
--- a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/MessagesTest.java
+++ b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/MessagesTest.java
@@ -17,11 +17,12 @@
package org.apache.fluss.protogen.tests;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.rpc.messages.ApiMessage;
import org.apache.fluss.rpc.messages.ErrorMessage;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedOutputStream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/NumbersTest.java b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/NumbersTest.java
index 93a3c6a86..0074f39e4 100644
--- a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/NumbersTest.java
+++ b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/NumbersTest.java
@@ -17,9 +17,10 @@
package org.apache.fluss.protogen.tests;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedOutputStream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RepeatedNumbersTest.java b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RepeatedNumbersTest.java
index c2e4361d5..7fbfc6ff2 100644
--- a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RepeatedNumbersTest.java
+++ b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RepeatedNumbersTest.java
@@ -17,9 +17,10 @@
package org.apache.fluss.protogen.tests;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedOutputStream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RequiredTest.java b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RequiredTest.java
index 7d6dceb2b..d5c598d59 100644
--- a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RequiredTest.java
+++ b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RequiredTest.java
@@ -17,9 +17,10 @@
package org.apache.fluss.protogen.tests;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedOutputStream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/StringsTest.java b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/StringsTest.java
index 7e722b4d2..b93590e1a 100644
--- a/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/StringsTest.java
+++ b/fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/StringsTest.java
@@ -17,9 +17,10 @@
package org.apache.fluss.protogen.tests;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedOutputStream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -57,8 +58,7 @@ public class StringsTest {
assertThat(lps.getNameAt(2)).isEqualTo("c");
Strings.S pbs =
- Strings.S
- .newBuilder()
+ Strings.S.newBuilder()
.setId("id")
.addNames("a")
.addNames("b")
diff --git a/tools/ci/fluss-ci-tools/src/main/java/org/apache/fluss/tools/ci/licensecheck/NoticeFileChecker.java b/tools/ci/fluss-ci-tools/src/main/java/org/apache/fluss/tools/ci/licensecheck/NoticeFileChecker.java
index a896dbb59..051a50718 100644
--- a/tools/ci/fluss-ci-tools/src/main/java/org/apache/fluss/tools/ci/licensecheck/NoticeFileChecker.java
+++ b/tools/ci/fluss-ci-tools/src/main/java/org/apache/fluss/tools/ci/licensecheck/NoticeFileChecker.java
@@ -304,7 +304,8 @@ public class NoticeFileChecker {
// find all dependencies missing from NOTICE file
Collection<Dependency> expectedDependencies =
- modulesWithShadedDependencies.getOrDefault(moduleName, Collections.emptySet())
+ modulesWithShadedDependencies
+ .getOrDefault(moduleName, Collections.emptySet())
.stream()
.filter(
dependency ->
diff --git a/tools/ci/fluss-ci-tools/src/main/java/org/apache/fluss/tools/ci/utils/deploy/DeployParser.java b/tools/ci/fluss-ci-tools/src/main/java/org/apache/fluss/tools/ci/utils/deploy/DeployParser.java
index bdf0fc164..db013715e 100644
--- a/tools/ci/fluss-ci-tools/src/main/java/org/apache/fluss/tools/ci/utils/deploy/DeployParser.java
+++ b/tools/ci/fluss-ci-tools/src/main/java/org/apache/fluss/tools/ci/utils/deploy/DeployParser.java
@@ -58,7 +58,8 @@ public class DeployParser {
static Set<String> parseDeployOutput(Stream<String> lines) {
return ParserUtils.parsePluginOutput(
lines, DEPLOY_MODULE_PATTERN, DeployParser::parseDeployBlock)
- .entrySet().stream()
+ .entrySet()
+ .stream()
.filter(Map.Entry::getValue)
.map(Map.Entry::getKey)
.collect(Collectors.toSet());
(fluss) 01/12: [INFRA] The project package name updated to org.apache.fluss.
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit 25d34e49cb59e69fc7a33e5bb0c876f59662bc62
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 13:38:27 2025 +0800
[INFRA] The project package name updated to org.apache.fluss.
# Conflicts:
# LICENSE
# README.md
# fluss-benchmark/src/test/java/com/alibaba/fluss/benchmark/ArrowReadableChannelBenchmark.java
# fluss-benchmark/src/test/java/com/alibaba/fluss/benchmark/ArrowWritableChannelBenchmark.java
# fluss-benchmark/src/test/java/com/alibaba/fluss/benchmark/LogScannerBenchmark.java
# fluss-benchmark/src/test/java/org/apache/fluss/benchmark/ArrowReadableChannelBenchmark.java
# fluss-benchmark/src/test/java/org/apache/fluss/benchmark/ArrowWritableChannelBenchmark.java
# fluss-benchmark/src/test/java/org/apache/fluss/benchmark/LogScannerBenchmark.java
# fluss-client/src/main/java/org/apache/fluss/client/admin/FlussAdmin.java
# fluss-client/src/main/java/org/apache/fluss/client/lookup/LookupSender.java
# fluss-client/src/main/java/org/apache/fluss/client/lookup/PrefixKeyLookuper.java
# fluss-client/src/main/java/org/apache/fluss/client/lookup/PrimaryKeyLookuper.java
# fluss-client/src/main/java/org/apache/fluss/client/metadata/MetadataUpdater.java
# fluss-client/src/main/java/org/apache/fluss/client/table/scanner/batch/LimitBatchScanner.java
# fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java
# fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogScannerImpl.java
# fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java
# fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java
# fluss-client/src/test/java/org/apache/fluss/client/security/acl/FlussAuthorizationITCase.java
# fluss-client/src/test/java/org/apache/fluss/client/write/ArrowLogWriteBatchTest.java
# fluss-common/src/main/java/org/apache/fluss/bucketing/IcebergBucketingFunction.java
# fluss-common/src/main/java/org/apache/fluss/classloading/ComponentClassLoader.java
# fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionFactory.java
# fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionInfo.java
# fluss-common/src/main/java/org/apache/fluss/compression/Lz4ArrowCompressionCodec.java
# fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java
# fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java
# fluss-common/src/main/java/org/apache/fluss/fs/token/CredentialsJsonSerde.java
# fluss-common/src/main/java/org/apache/fluss/lake/committer/BucketOffset.java
# fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStorage.java
# fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStoragePluginSetUp.java
# fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/PluginLakeStorageWrapper.java
# fluss-common/src/main/java/org/apache/fluss/metrics/reporter/ReporterSetup.java
# fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java
# fluss-common/src/main/java/org/apache/fluss/record/BytesViewLogRecords.java
# fluss-common/src/main/java/org/apache/fluss/record/DefaultLogRecordBatch.java
# fluss-common/src/main/java/org/apache/fluss/record/FileLogProjection.java
# fluss-common/src/main/java/org/apache/fluss/record/LogRecordBatch.java
# fluss-common/src/main/java/org/apache/fluss/record/LogRecordReadContext.java
# fluss-common/src/main/java/org/apache/fluss/record/bytesview/BytesView.java
# fluss-common/src/main/java/org/apache/fluss/record/bytesview/FileRegionBytesView.java
# fluss-common/src/main/java/org/apache/fluss/record/bytesview/MemorySegmentBytesView.java
# fluss-common/src/main/java/org/apache/fluss/record/bytesview/MultiBytesView.java
# fluss-common/src/main/java/org/apache/fluss/record/send/ByteBufWritableOutput.java
# fluss-common/src/main/java/org/apache/fluss/record/send/SendWritableOutput.java
# fluss-common/src/main/java/org/apache/fluss/record/send/WritableOutput.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowReader.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriterPool.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBigIntColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBinaryColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBooleanColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDateColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDecimalColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDoubleColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowFloatColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowIntColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowSmallIntColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimeColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampLtzColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampNtzColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTinyIntColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarBinaryColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarCharColumnVector.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBigIntWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBinaryWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBooleanWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDateWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDecimalWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDoubleWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFieldWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFloatWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowIntWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowSmallIntWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimeWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampLtzWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampNtzWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTinyIntWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarBinaryWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarCharWriter.java
# fluss-common/src/main/java/org/apache/fluss/row/encode/KeyEncoder.java
# fluss-common/src/main/java/org/apache/fluss/rpc/messages/ApiMessage.java
# fluss-common/src/main/java/org/apache/fluss/utils/ArrowUtils.java
# fluss-common/src/main/java/org/apache/fluss/utils/BinaryStringUtils.java
# fluss-common/src/main/java/org/apache/fluss/utils/DateTimeUtils.java
# fluss-common/src/main/java/org/apache/fluss/utils/NetUtils.java
# fluss-common/src/main/java/org/apache/fluss/utils/json/BucketOffsetJsonSerde.java
# fluss-common/src/main/java/org/apache/fluss/utils/json/ColumnJsonSerde.java
# fluss-common/src/main/java/org/apache/fluss/utils/json/DataTypeJsonSerde.java
# fluss-common/src/main/java/org/apache/fluss/utils/json/DatabaseDescriptorJsonSerde.java
# fluss-common/src/main/java/org/apache/fluss/utils/json/JsonSerdeUtils.java
# fluss-common/src/main/java/org/apache/fluss/utils/json/SchemaJsonSerde.java
# fluss-common/src/main/java/org/apache/fluss/utils/json/TableDescriptorJsonSerde.java
# fluss-common/src/main/java/org/apache/fluss/utils/json/TablePartitionJsonSerde.java
# fluss-common/src/test/java/org/apache/fluss/cluster/ClusterTest.java
# fluss-common/src/test/java/org/apache/fluss/compression/ArrowCompressionCodecTest.java
# fluss-common/src/test/java/org/apache/fluss/lake/lakestorage/LakeStorageTest.java
# fluss-common/src/test/java/org/apache/fluss/plugin/DefaultPluginManagerTest.java
# fluss-common/src/test/java/org/apache/fluss/record/FileLogRecordsTest.java
# fluss-common/src/test/java/org/apache/fluss/record/MemoryLogRecordsArrowBuilderTest.java
# fluss-common/src/test/java/org/apache/fluss/record/send/SendWritableOutputTest.java
# fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
# fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowWriterPoolTest.java
# fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
# fluss-common/src/test/java/org/apache/fluss/testutils/ByteBufChannel.java
# fluss-common/src/test/java/org/apache/fluss/testutils/DataTestUtils.java
# fluss-common/src/test/java/org/apache/fluss/utils/ArrowUtilsTest.java
# fluss-common/src/test/java/org/apache/fluss/utils/ParentResourceBlockingClassLoader.java
# fluss-common/src/test/java/org/apache/fluss/utils/ProtoCodecUtilsTest.java
# fluss-common/src/test/java/org/apache/fluss/utils/json/BucketOffsetJsonSerdeTest.java
# fluss-common/src/test/java/org/apache/fluss/utils/json/JsonSerdeTestBase.java
# fluss-filesystems/fluss-fs-gs/src/test/java/com/alibaba/fluss/fs/gs/AuthServerHandler.java
# fluss-flink/fluss-flink-1.19/src/main/java/com/alibaba/fluss/flink/DummyClass119.java
# fluss-flink/fluss-flink-1.19/src/main/java/org/apache/fluss/flink/DummyClass119.java
# fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeCatalog.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeRecordRecordEmitter.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitGenerator.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitStateInitializer.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeTableFactory.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotSplitState.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/LakeCatalog.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/LakeRecordRecordEmitter.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/LakeSplitGenerator.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/LakeSplitStateInitializer.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/LakeTableFactory.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/paimon/reader/KeyValueRow.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/paimon/reader/PaimonRowWrapper.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/paimon/reader/ScanRecordWrapper.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/paimon/reader/SortMergeReader.java
# fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/paimon/split/PaimonSnapshotAndFlussLogSplitState.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkCatalog.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkTableFactory.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeCatalog.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeRecordRecordEmitter.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeSplitGenerator.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeSplitReaderGenerator.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeSplitSerializer.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeSplitStateInitializer.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeTableFactory.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/KeyValueRow.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/PaimonRowWrapper.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/PaimonSnapshotAndLogSplitScanner.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/PaimonSnapshotScanner.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/ScanRecordWrapper.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/SortMergeReader.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/split/PaimonSnapshotAndFlussLogSplit.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/split/PaimonSnapshotAndFlussLogSplitState.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/split/PaimonSnapshotSplit.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/split/PaimonSnapshotSplitState.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkSource.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkTableSource.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/deserializer/JsonStringDeserializationSchema.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/emitter/FlinkRecordEmitter.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/enumerator/FlinkSourceEnumerator.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceReader.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceSplitReader.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/fetcher/FlinkSourceFetcherManager.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/split/SourceSplitSerializer.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshot.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitter.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperator.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/TieringSource.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlinkConversions.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlussRowToJsonConverters.java
# fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/LakeSourceUtils.java
# fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/security/acl/FlinkAuthorizationITCase.java
# fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/source/FlinkTableSourceITCase.java
# fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitterTest.java
# fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperatorTest.java
# fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowReadableChannelBenchmark.java
# fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowWritableChannelBenchmark.java
# fluss-jmh/src/test/java/com/alibaba/fluss/jmh/LogScannerBenchmark.java
# fluss-kafka/pom.xml
# fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaChannelInitializer.java
# fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaCommandDecoder.java
# fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaProtocolPlugin.java
# fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaRequest.java
# fluss-kafka/src/test/java/org/apache/fluss/kafka/KafkaRequestHandlerTest.java
# fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResult.java
# fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
# fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/PaimonLakeStorage.java
# fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/FlussRecordAsPaimonRow.java
# fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java
# fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverter.java
# fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonConversions.java
# fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
# fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/testutils/FlinkPaimonTieringTestBase.java
# fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringITCase.java
# fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java
# fluss-metrics/fluss-metrics-prometheus/src/test/java/org/apache/fluss/metrics/prometheus/PrometheusReporterTest.java
# fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoCodeGenerator.java
# fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoGenUtil.java
# fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtobufNumberField.java
# fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/ProtoBenchmark.java
# fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/SimpleBenchmark.java
# fluss-protogen/fluss-protogen-tests/src/main/java/org/apache/fluss/protogen/benchmark/StringEncodingBenchmark.java
# fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/AddressBookTest.java
# fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/BytesTest.java
# fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/EnumsTest.java
# fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/MessagesTest.java
# fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/NumbersTest.java
# fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RepeatedNumbersTest.java
# fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/RequiredTest.java
# fluss-protogen/fluss-protogen-tests/src/test/java/org/apache/fluss/protogen/tests/StringsTest.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/RpcGateway.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyLogger.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyMetrics.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/ClientChannelInitializer.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClient.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClientHandler.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/ServerConnection.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/FlussProtocolPlugin.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/FlussRequest.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServer.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServerHandler.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/ServerChannelInitializer.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/protocol/ApiManager.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/protocol/ApiMethod.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/protocol/MessageCodec.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/protocol/NetworkProtocolPlugin.java
# fluss-rpc/src/main/java/org/apache/fluss/rpc/util/CommonRpcMessageUtils.java
# fluss-rpc/src/test/java/org/apache/fluss/rpc/netty/server/NettyServerHandlerTest.java
# fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/MessageCodecTest.java
# fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java
# fluss-server/src/main/java/org/apache/fluss/server/ServerBase.java
# fluss-server/src/main/java/org/apache/fluss/server/authorizer/DefaultAuthorizer.java
# fluss-server/src/main/java/org/apache/fluss/server/authorizer/ZkNodeChangeNotificationWatcher.java
# fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessor.java
# fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorServer.java
# fluss-server/src/main/java/org/apache/fluss/server/coordinator/MetadataManager.java
# fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/CoordinatorEventManager.java
# fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TableChangeWatcher.java
# fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TabletServerChangeWatcher.java
# fluss-server/src/main/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachine.java
# fluss-server/src/main/java/org/apache/fluss/server/kv/KvManager.java
# fluss-server/src/main/java/org/apache/fluss/server/kv/KvTablet.java
# fluss-server/src/main/java/org/apache/fluss/server/kv/snapshot/CompletedSnapshotJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/log/AbstractIndex.java
# fluss-server/src/main/java/org/apache/fluss/server/log/LogSegment.java
# fluss-server/src/main/java/org/apache/fluss/server/log/OffsetIndex.java
# fluss-server/src/main/java/org/apache/fluss/server/log/TimeIndex.java
# fluss-server/src/main/java/org/apache/fluss/server/log/WriterStateManager.java
# fluss-server/src/main/java/org/apache/fluss/server/log/remote/RemoteLogManifestJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
# fluss-server/src/main/java/org/apache/fluss/server/tablet/TabletServer.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/ZkSequenceIDCounter.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperClient.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperUtils.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/BucketSnapshotJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/CoordinatorAddressJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/DatabaseRegistrationJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/LakeTableSnapshotJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/LeaderAndIsrJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/PartitionAssignmentJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/RemoteLogManifestHandleJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/ResourceAclJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/TableAssignmentJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/TableRegistrationJsonSerde.java
# fluss-server/src/main/java/org/apache/fluss/server/zk/data/TabletServerRegistrationJsonSerde.java
# fluss-server/src/test/java/org/apache/fluss/server/ServerTestBase.java
# fluss-server/src/test/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessorTest.java
# fluss-server/src/test/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachineTest.java
# fluss-server/src/test/java/org/apache/fluss/server/kv/KvTabletTest.java
# fluss-server/src/test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java
# fluss-server/src/test/java/org/apache/fluss/server/lakehouse/TestingPaimonStoragePlugin.java
# fluss-server/src/test/java/org/apache/fluss/server/log/AbstractIndexTest.java
# fluss-server/src/test/java/org/apache/fluss/server/log/WriterStateManagerTest.java
# fluss-server/src/test/java/org/apache/fluss/server/log/remote/DefaultRemoteLogStorageTest.java
# fluss-server/src/test/java/org/apache/fluss/server/replica/KvReplicaRestoreITCase.java
# fluss-server/src/test/java/org/apache/fluss/server/testutils/FlussClusterExtension.java
# fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperClientTest.java
# fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperExtension.java
# fluss-server/src/test/java/org/apache/fluss/server/zk/data/CoordinatorAddressJsonSerdeTest.java
# fluss-server/src/test/java/org/apache/fluss/server/zk/data/DatabaseRegistrationJsonSerdeTest.java
# fluss-server/src/test/java/org/apache/fluss/server/zk/data/TableRegistrationJsonSerdeTest.java
# fluss-server/src/test/java/org/apache/fluss/server/zk/data/TabletServerRegistrationJsonSerdeTest.java
# fluss-test-coverage/pom.xml
# website/community/welcome.md
# website/docs/maintenance/configuration.md
# website/docs/security/authentication.md
# website/docs/security/authorization.md
# website/docusaurus.config.ts
# website/src/pages/roadmap.md
---
.github/ISSUE_TEMPLATE/bug.yml | 4 +-
.github/ISSUE_TEMPLATE/feature.yml | 4 +-
.github/ISSUE_TEMPLATE/task.yml | 4 +-
.github/PULL_REQUEST_TEMPLATE.md | 2 +-
fluss-client/pom.xml | 18 +-
.../java/com/alibaba/fluss/client/Connection.java | 62 -
.../alibaba/fluss/client/ConnectionFactory.java | 68 -
.../com/alibaba/fluss/client/FlussConnection.java | 213 ---
.../java/com/alibaba/fluss/client/admin/Admin.java | 453 -----
.../fluss/client/admin/CreateAclsResult.java | 97 --
.../alibaba/fluss/client/admin/DropAclsResult.java | 169 --
.../fluss/client/admin/ListOffsetsResult.java | 53 -
.../com/alibaba/fluss/client/admin/OffsetSpec.java | 51 -
.../fluss/client/lookup/AbstractLookupBatch.java | 59 -
.../fluss/client/lookup/AbstractLookupQuery.java | 48 -
.../com/alibaba/fluss/client/lookup/Lookup.java | 99 --
.../alibaba/fluss/client/lookup/LookupBatch.java | 79 -
.../alibaba/fluss/client/lookup/LookupClient.java | 122 --
.../alibaba/fluss/client/lookup/LookupQuery.java | 48 -
.../alibaba/fluss/client/lookup/LookupQueue.java | 106 --
.../alibaba/fluss/client/lookup/LookupResult.java | 83 -
.../alibaba/fluss/client/lookup/LookupType.java | 27 -
.../com/alibaba/fluss/client/lookup/Lookuper.java | 44 -
.../alibaba/fluss/client/lookup/PrefixLookup.java | 51 -
.../fluss/client/lookup/PrefixLookupBatch.java | 78 -
.../fluss/client/lookup/PrefixLookupQuery.java | 48 -
.../alibaba/fluss/client/lookup/TableLookup.java | 66 -
.../fluss/client/metadata/KvSnapshotMetadata.java | 66 -
.../alibaba/fluss/client/metadata/KvSnapshots.java | 90 -
.../fluss/client/metadata/LakeSnapshot.java | 76 -
.../fluss/client/metrics/ScannerMetricGroup.java | 135 --
.../fluss/client/metrics/WriterMetricGroup.java | 104 --
.../com/alibaba/fluss/client/table/FlussTable.java | 93 -
.../java/com/alibaba/fluss/client/table/Table.java | 75 -
.../fluss/client/table/getter/PartitionGetter.java | 68 -
.../alibaba/fluss/client/table/scanner/Scan.java | 83 -
.../fluss/client/table/scanner/ScanRecord.java | 93 -
.../fluss/client/table/scanner/TableScan.java | 138 --
.../client/table/scanner/batch/BatchScanUtils.java | 108 --
.../client/table/scanner/batch/BatchScanner.java | 53 -
.../scanner/batch/KvSnapshotBatchScanner.java | 223 ---
.../table/scanner/batch/SnapshotFilesReader.java | 163 --
.../client/table/scanner/log/BucketScanStatus.java | 52 -
.../client/table/scanner/log/CompletedFetch.java | 258 ---
.../table/scanner/log/CompletedPendingFetch.java | 48 -
.../table/scanner/log/DefaultCompletedFetch.java | 51 -
.../client/table/scanner/log/LogFetchBuffer.java | 280 ---
.../table/scanner/log/LogFetchCollector.java | 292 ----
.../fluss/client/table/scanner/log/LogScan.java | 56 -
.../fluss/client/table/scanner/log/LogScanner.java | 124 --
.../client/table/scanner/log/LogScannerStatus.java | 104 --
.../client/table/scanner/log/PendingFetch.java | 33 -
.../table/scanner/log/RemoteCompletedFetch.java | 75 -
.../table/scanner/log/RemoteLogDownloadFuture.java | 63 -
.../table/scanner/log/RemotePendingFetch.java | 97 --
.../client/table/scanner/log/ScanRecords.java | 116 --
.../client/table/writer/AbstractTableWriter.java | 99 --
.../alibaba/fluss/client/table/writer/Append.java | 37 -
.../fluss/client/table/writer/AppendResult.java | 32 -
.../fluss/client/table/writer/AppendWriter.java | 40 -
.../client/table/writer/AppendWriterImpl.java | 99 --
.../fluss/client/table/writer/DeleteResult.java | 32 -
.../fluss/client/table/writer/TableAppend.java | 41 -
.../fluss/client/table/writer/TableUpsert.java | 98 --
.../fluss/client/table/writer/TableWriter.java | 41 -
.../alibaba/fluss/client/table/writer/Upsert.java | 67 -
.../fluss/client/table/writer/UpsertResult.java | 32 -
.../fluss/client/table/writer/UpsertWrite.java | 75 -
.../fluss/client/table/writer/UpsertWriter.java | 49 -
.../client/table/writer/UpsertWriterImpl.java | 167 --
.../client/token/DefaultSecurityTokenManager.java | 185 --
.../client/token/DefaultSecurityTokenProvider.java | 41 -
.../fluss/client/token/SecurityTokenManager.java | 28 -
.../fluss/client/token/SecurityTokenProvider.java | 31 -
.../token/SecurityTokenReceiverRepository.java | 93 -
.../fluss/client/utils/ClientRpcMessageUtils.java | 351 ----
.../alibaba/fluss/client/utils/ClientUtils.java | 135 --
.../alibaba/fluss/client/utils/MetadataUtils.java | 324 ----
.../fluss/client/write/ArrowLogWriteBatch.java | 139 --
.../alibaba/fluss/client/write/BucketAssigner.java | 50 -
.../fluss/client/write/DynamicBucketAssigner.java | 36 -
.../client/write/DynamicPartitionCreator.java | 163 --
.../write/DynamicWriteBatchSizeEstimator.java | 90 -
.../fluss/client/write/HashBucketAssigner.java | 43 -
.../fluss/client/write/IdempotenceBucketEntry.java | 190 --
.../fluss/client/write/IdempotenceBucketMap.java | 117 --
.../fluss/client/write/IdempotenceManager.java | 340 ----
.../fluss/client/write/IncompleteBatches.java | 77 -
.../fluss/client/write/IndexedLogWriteBatch.java | 140 --
.../alibaba/fluss/client/write/KvWriteBatch.java | 165 --
.../fluss/client/write/ReadyWriteBatch.java | 43 -
.../client/write/RoundRobinBucketAssigner.java | 64 -
.../fluss/client/write/StaticBucketAssigner.java | 51 -
.../fluss/client/write/StickyBucketAssigner.java | 99 --
.../com/alibaba/fluss/client/write/WriteBatch.java | 288 ---
.../alibaba/fluss/client/write/WriteCallback.java | 33 -
.../alibaba/fluss/client/write/WriteFormat.java | 28 -
.../alibaba/fluss/client/write/WriteRecord.java | 181 --
.../alibaba/fluss/client/write/WriterClient.java | 344 ----
.../java/org/apache/fluss/client/Connection.java | 62 +
.../org/apache/fluss/client/ConnectionFactory.java | 68 +
.../org/apache/fluss/client/FlussConnection.java | 213 +++
.../java/org/apache/fluss/client/admin/Admin.java | 453 +++++
.../fluss/client/admin/CreateAclsResult.java | 97 ++
.../apache/fluss/client/admin/DropAclsResult.java | 169 ++
.../apache}/fluss/client/admin/FlussAdmin.java | 0
.../fluss/client/admin/ListOffsetsResult.java | 53 +
.../org/apache/fluss/client/admin/OffsetSpec.java | 51 +
.../fluss/client/lookup/AbstractLookupBatch.java | 59 +
.../fluss/client/lookup/AbstractLookupQuery.java | 48 +
.../org/apache/fluss/client/lookup/Lookup.java | 99 ++
.../apache/fluss/client/lookup/LookupBatch.java | 79 +
.../apache/fluss/client/lookup/LookupClient.java | 122 ++
.../apache/fluss/client/lookup/LookupQuery.java | 48 +
.../apache/fluss/client/lookup/LookupQueue.java | 106 ++
.../apache/fluss/client/lookup/LookupResult.java | 83 +
.../apache}/fluss/client/lookup/LookupSender.java | 0
.../org/apache/fluss/client/lookup/LookupType.java | 27 +
.../org/apache/fluss/client/lookup/Lookuper.java | 44 +
.../fluss/client/lookup/PrefixKeyLookuper.java | 0
.../apache/fluss/client/lookup/PrefixLookup.java | 51 +
.../fluss/client/lookup/PrefixLookupBatch.java | 78 +
.../fluss/client/lookup/PrefixLookupQuery.java | 48 +
.../fluss/client/lookup/PrimaryKeyLookuper.java | 0
.../apache/fluss/client/lookup/TableLookup.java | 66 +
.../fluss/client/metadata/KvSnapshotMetadata.java | 66 +
.../apache/fluss/client/metadata/KvSnapshots.java | 90 +
.../apache/fluss/client/metadata/LakeSnapshot.java | 76 +
.../fluss/client/metadata/MetadataUpdater.java | 0
.../fluss/client/metrics/ScannerMetricGroup.java | 135 ++
.../fluss/client/metrics/WriterMetricGroup.java | 104 ++
.../org/apache/fluss/client/table/FlussTable.java | 93 +
.../java/org/apache/fluss/client/table/Table.java | 75 +
.../fluss/client/table/getter/PartitionGetter.java | 68 +
.../client/table/scanner/RemoteFileDownloader.java | 0
.../apache/fluss/client/table/scanner/Scan.java | 83 +
.../fluss/client/table/scanner/ScanRecord.java | 93 +
.../fluss/client/table/scanner/TableScan.java | 138 ++
.../client/table/scanner/batch/BatchScanUtils.java | 108 ++
.../client/table/scanner/batch/BatchScanner.java | 53 +
.../scanner/batch/KvSnapshotBatchScanner.java | 223 +++
.../table/scanner/batch/LimitBatchScanner.java | 0
.../table/scanner/batch/SnapshotFilesReader.java | 163 ++
.../client/table/scanner/log/BucketScanStatus.java | 52 +
.../client/table/scanner/log/CompletedFetch.java | 258 +++
.../table/scanner/log/CompletedPendingFetch.java | 48 +
.../table/scanner/log/DefaultCompletedFetch.java | 51 +
.../client/table/scanner/log/LogFetchBuffer.java | 280 +++
.../table/scanner/log/LogFetchCollector.java | 292 ++++
.../fluss/client/table/scanner/log/LogFetcher.java | 0
.../fluss/client/table/scanner/log/LogScan.java | 56 +
.../fluss/client/table/scanner/log/LogScanner.java | 124 ++
.../client/table/scanner/log/LogScannerImpl.java | 0
.../client/table/scanner/log/LogScannerStatus.java | 104 ++
.../client/table/scanner/log/PendingFetch.java | 33 +
.../table/scanner/log/RemoteCompletedFetch.java | 75 +
.../table/scanner/log/RemoteLogDownloadFuture.java | 63 +
.../table/scanner/log/RemoteLogDownloader.java | 0
.../table/scanner/log/RemotePendingFetch.java | 97 ++
.../client/table/scanner/log/ScanRecords.java | 116 ++
.../client/table/writer/AbstractTableWriter.java | 99 ++
.../apache/fluss/client/table/writer/Append.java | 37 +
.../fluss/client/table/writer/AppendResult.java | 32 +
.../fluss/client/table/writer/AppendWriter.java | 40 +
.../client/table/writer/AppendWriterImpl.java | 99 ++
.../fluss/client/table/writer/DeleteResult.java | 32 +
.../fluss/client/table/writer/TableAppend.java | 41 +
.../fluss/client/table/writer/TableUpsert.java | 98 ++
.../fluss/client/table/writer/TableWriter.java | 41 +
.../apache/fluss/client/table/writer/Upsert.java | 67 +
.../fluss/client/table/writer/UpsertResult.java | 32 +
.../fluss/client/table/writer/UpsertWrite.java | 75 +
.../fluss/client/table/writer/UpsertWriter.java | 49 +
.../client/table/writer/UpsertWriterImpl.java | 167 ++
.../client/token/DefaultSecurityTokenManager.java | 185 ++
.../client/token/DefaultSecurityTokenProvider.java | 41 +
.../fluss/client/token/SecurityTokenManager.java | 28 +
.../fluss/client/token/SecurityTokenProvider.java | 31 +
.../token/SecurityTokenReceiverRepository.java | 93 +
.../fluss/client/utils/ClientRpcMessageUtils.java | 351 ++++
.../org/apache/fluss/client/utils/ClientUtils.java | 135 ++
.../apache/fluss/client/utils/MetadataUtils.java | 324 ++++
.../fluss/client/write/ArrowLogWriteBatch.java | 139 ++
.../apache/fluss/client/write/BucketAssigner.java | 50 +
.../fluss/client/write/DynamicBucketAssigner.java | 36 +
.../client/write/DynamicPartitionCreator.java | 163 ++
.../write/DynamicWriteBatchSizeEstimator.java | 90 +
.../fluss/client/write/HashBucketAssigner.java | 43 +
.../fluss/client/write/IdempotenceBucketEntry.java | 190 ++
.../fluss/client/write/IdempotenceBucketMap.java | 117 ++
.../fluss/client/write/IdempotenceManager.java | 340 ++++
.../fluss/client/write/IncompleteBatches.java | 77 +
.../fluss/client/write/IndexedLogWriteBatch.java | 140 ++
.../apache/fluss/client/write/KvWriteBatch.java | 165 ++
.../apache/fluss/client/write/ReadyWriteBatch.java | 43 +
.../fluss/client/write/RecordAccumulator.java | 0
.../client/write/RoundRobinBucketAssigner.java | 64 +
.../apache}/fluss/client/write/Sender.java | 0
.../fluss/client/write/StaticBucketAssigner.java | 51 +
.../fluss/client/write/StickyBucketAssigner.java | 99 ++
.../org/apache/fluss/client/write/WriteBatch.java | 288 +++
.../apache/fluss/client/write/WriteCallback.java | 33 +
.../org/apache/fluss/client/write/WriteFormat.java | 28 +
.../org/apache/fluss/client/write/WriteRecord.java | 181 ++
.../apache/fluss/client/write/WriterClient.java | 344 ++++
.../client/admin/ClientToServerITCaseBase.java | 290 ---
.../fluss/client/admin/FlussAdminITCase.java | 1053 -----------
.../fluss/client/lookup/LookupQueueTest.java | 66 -
.../fluss/client/metadata/MetadataUpdaterTest.java | 124 --
.../client/metadata/TestingMetadataUpdater.java | 167 --
.../client/metrics/TestingScannerMetricGroup.java | 35 -
.../client/metrics/TestingWriterMetricGroup.java | 32 -
.../client/table/AutoPartitionedTableITCase.java | 408 -----
.../client/table/FlussFailServerTableITCase.java | 157 --
.../fluss/client/table/FlussLakeTableITCase.java | 361 ----
.../fluss/client/table/FlussTableITCase.java | 1182 -------------
.../fluss/client/table/PartitionedTableITCase.java | 261 ---
.../fluss/client/table/scanner/ScanRecordTest.java | 45 -
.../batch/KvSnapshotBatchScannerITCase.java | 174 --
.../scanner/log/DefaultCompletedFetchTest.java | 257 ---
.../table/scanner/log/LogFetchBufferTest.java | 292 ----
.../table/scanner/log/LogFetchCollectorTest.java | 163 --
.../client/table/scanner/log/LogFetcherTest.java | 213 ---
.../client/table/scanner/log/LogScannerITCase.java | 470 -----
.../scanner/log/RemoteCompletedFetchTest.java | 325 ----
.../table/scanner/log/RemoteLogScannerITCase.java | 280 ---
.../client/table/scanner/log/ScanRecordsTest.java | 60 -
.../token/DefaultSecurityTokenManagerTest.java | 90 -
.../client/token/TestingSecurityTokenProvider.java | 69 -
.../client/token/TestingSecurityTokenReceiver.java | 32 -
.../write/DynamicWriteBatchSizeEstimatorTest.java | 81 -
.../fluss/client/write/HashBucketAssignerTest.java | 156 --
.../client/write/IndexedLogWriteBatchTest.java | 244 ---
.../fluss/client/write/KvWriteBatchTest.java | 248 ---
.../fluss/client/write/RecordAccumulatorTest.java | 669 -------
.../com/alibaba/fluss/client/write/SenderTest.java | 809 ---------
.../write/StickyStaticBucketAssignerTest.java | 237 ---
.../client/admin/ClientToServerITCaseBase.java | 290 +++
.../fluss/client/admin/FlussAdminITCase.java | 1053 +++++++++++
.../fluss/client/lookup/LookupQueueTest.java | 66 +
.../fluss/client/metadata/MetadataUpdaterTest.java | 124 ++
.../client/metadata/TestingMetadataUpdater.java | 167 ++
.../client/metrics/TestingScannerMetricGroup.java | 35 +
.../client/metrics/TestingWriterMetricGroup.java | 32 +
.../security/acl/FlussAuthorizationITCase.java | 0
.../client/table/AutoPartitionedTableITCase.java | 408 +++++
.../client/table/FlussFailServerTableITCase.java | 157 ++
.../fluss/client/table/FlussLakeTableITCase.java | 361 ++++
.../fluss/client/table/FlussTableITCase.java | 1182 +++++++++++++
.../fluss/client/table/PartitionedTableITCase.java | 261 +++
.../fluss/client/table/scanner/ScanRecordTest.java | 45 +
.../batch/KvSnapshotBatchScannerITCase.java | 174 ++
.../scanner/log/DefaultCompletedFetchTest.java | 257 +++
.../table/scanner/log/LogFetchBufferTest.java | 292 ++++
.../table/scanner/log/LogFetchCollectorTest.java | 163 ++
.../client/table/scanner/log/LogFetcherTest.java | 213 +++
.../client/table/scanner/log/LogScannerITCase.java | 470 +++++
.../scanner/log/RemoteCompletedFetchTest.java | 325 ++++
.../table/scanner/log/RemoteLogDownloaderTest.java | 0
.../table/scanner/log/RemoteLogScannerITCase.java | 280 +++
.../client/table/scanner/log/ScanRecordsTest.java | 60 +
.../token/DefaultSecurityTokenManagerTest.java | 90 +
.../client/token/TestingSecurityTokenProvider.java | 69 +
.../client/token/TestingSecurityTokenReceiver.java | 32 +
.../fluss/client/write/ArrowLogWriteBatchTest.java | 0
.../write/DynamicWriteBatchSizeEstimatorTest.java | 81 +
.../fluss/client/write/HashBucketAssignerTest.java | 156 ++
.../client/write/IndexedLogWriteBatchTest.java | 244 +++
.../fluss/client/write/KvWriteBatchTest.java | 248 +++
.../fluss/client/write/RecordAccumulatorTest.java | 669 +++++++
.../org/apache/fluss/client/write/SenderTest.java | 809 +++++++++
.../write/StickyStaticBucketAssignerTest.java | 237 +++
...om.alibaba.fluss.fs.token.SecurityTokenReceiver | 2 +-
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-common/pom.xml | 4 +-
.../com/alibaba/fluss/annotation/Internal.java | 31 -
.../alibaba/fluss/annotation/PublicEvolving.java | 32 -
.../com/alibaba/fluss/annotation/PublicStable.java | 36 -
.../alibaba/fluss/annotation/PublicUnstable.java | 31 -
.../fluss/annotation/VisibleForTesting.java | 35 -
.../alibaba/fluss/bucketing/BucketingFunction.java | 50 -
.../fluss/bucketing/FlussBucketingFunction.java | 43 -
.../fluss/bucketing/PaimonBucketingFunction.java | 28 -
.../com/alibaba/fluss/cluster/BucketLocation.java | 126 --
.../java/com/alibaba/fluss/cluster/Cluster.java | 326 ----
.../java/com/alibaba/fluss/cluster/Endpoint.java | 246 ---
.../java/com/alibaba/fluss/cluster/ServerNode.java | 145 --
.../java/com/alibaba/fluss/cluster/ServerType.java | 24 -
.../alibaba/fluss/cluster/TabletServerInfo.java | 59 -
.../ArrowCompressionRatioEstimator.java | 69 -
.../fluss/compression/ArrowCompressionType.java | 33 -
.../compression/FlussLZ4BlockInputStream.java | 306 ----
.../compression/FlussLZ4BlockOutputStream.java | 389 -----
.../fluss/config/AutoPartitionTimeUnit.java | 34 -
.../com/alibaba/fluss/config/ConfigBuilder.java | 244 ---
.../com/alibaba/fluss/config/ConfigOption.java | 270 ---
.../com/alibaba/fluss/config/ConfigOptions.java | 1692 ------------------
.../com/alibaba/fluss/config/Configuration.java | 748 --------
.../alibaba/fluss/config/ConfigurationUtils.java | 281 ---
.../java/com/alibaba/fluss/config/FallbackKey.java | 77 -
.../com/alibaba/fluss/config/FlussConfigUtils.java | 62 -
.../alibaba/fluss/config/GlobalConfiguration.java | 205 ---
.../java/com/alibaba/fluss/config/MemorySize.java | 417 -----
.../java/com/alibaba/fluss/config/Password.java | 71 -
.../com/alibaba/fluss/config/ReadableConfig.java | 54 -
.../fluss/config/StructuredOptionsSplitter.java | 210 ---
.../java/com/alibaba/fluss/config/TableConfig.java | 118 --
.../com/alibaba/fluss/exception/ApiException.java | 45 -
.../fluss/exception/AuthenticationException.java | 35 -
.../fluss/exception/AuthorizationException.java | 31 -
.../fluss/exception/BufferExhaustedException.java | 36 -
.../fluss/exception/CorruptMessageException.java | 49 -
.../fluss/exception/CorruptRecordException.java | 48 -
.../fluss/exception/CorruptSnapshotException.java | 32 -
.../exception/DatabaseAlreadyExistException.java | 37 -
.../fluss/exception/DatabaseNotEmptyException.java | 36 -
.../fluss/exception/DatabaseNotExistException.java | 36 -
.../fluss/exception/DisconnectException.java | 35 -
.../exception/DuplicateSequenceException.java | 31 -
.../exception/FencedLeaderEpochException.java | 25 -
.../exception/FencedTieringEpochException.java | 26 -
.../alibaba/fluss/exception/FetchException.java | 42 -
.../alibaba/fluss/exception/FlussException.java | 58 -
.../fluss/exception/FlussRuntimeException.java | 59 -
.../exception/IllegalConfigurationException.java | 65 -
.../exception/IndexOffsetOverflowException.java | 36 -
.../fluss/exception/InvalidBucketsException.java | 28 -
.../InvalidColumnProjectionException.java | 35 -
.../fluss/exception/InvalidConfigException.java | 35 -
.../exception/InvalidCoordinatorException.java | 25 -
.../fluss/exception/InvalidDatabaseException.java | 44 -
.../fluss/exception/InvalidMetadataException.java | 43 -
.../fluss/exception/InvalidOffsetException.java | 40 -
.../fluss/exception/InvalidPartitionException.java | 35 -
.../fluss/exception/InvalidRecordException.java | 39 -
.../InvalidReplicationFactorException.java | 35 -
.../exception/InvalidRequiredAcksException.java | 34 -
.../exception/InvalidServerRackInfoException.java | 28 -
.../fluss/exception/InvalidTableException.java | 44 -
.../exception/InvalidTargetColumnException.java | 33 -
.../fluss/exception/InvalidTimestampException.java | 33 -
.../exception/InvalidUpdateVersionException.java | 29 -
.../exception/KvSnapshotNotExistException.java | 35 -
.../fluss/exception/KvStorageException.java | 53 -
.../LakeStorageNotConfiguredException.java | 35 -
.../LakeTableSnapshotNotExistException.java | 35 -
.../exception/LeaderNotAvailableException.java | 40 -
.../exception/LogOffsetOutOfRangeException.java | 40 -
.../exception/LogRecordAppendFailedException.java | 37 -
.../LogSegmentOffsetOverflowException.java | 36 -
.../fluss/exception/LogStorageException.java | 54 -
.../alibaba/fluss/exception/NetworkException.java | 44 -
.../exception/NonPrimaryKeyTableException.java | 36 -
.../NotEnoughReplicasAfterAppendException.java | 36 -
.../exception/NotEnoughReplicasException.java | 38 -
.../exception/NotLeaderOrFollowerException.java | 47 -
.../exception/OperationNotAttemptedException.java | 29 -
.../exception/OutOfOrderSequenceException.java | 34 -
.../exception/PartitionAlreadyExistsException.java | 32 -
.../exception/PartitionNotExistException.java | 35 -
.../fluss/exception/RecordTooLargeException.java | 42 -
.../exception/RemoteResourceNotFoundException.java | 43 -
.../fluss/exception/RemoteStorageException.java | 41 -
.../RetriableAuthenticationException.java | 29 -
.../fluss/exception/RetriableException.java | 36 -
.../fluss/exception/SchemaNotExistException.java | 37 -
.../fluss/exception/SecurityDisabledException.java | 32 -
.../fluss/exception/SecurityTokenException.java | 39 -
.../fluss/exception/StaleMetadataException.java | 36 -
.../alibaba/fluss/exception/StorageException.java | 44 -
.../exception/TableAlreadyExistException.java | 37 -
.../fluss/exception/TableNotExistException.java | 36 -
.../exception/TableNotPartitionedException.java | 35 -
.../alibaba/fluss/exception/TimeoutException.java | 36 -
.../fluss/exception/TooManyBucketsException.java | 39 -
.../exception/TooManyPartitionsException.java | 35 -
.../fluss/exception/TraversableOnceException.java | 38 -
.../fluss/exception/UnknownServerException.java | 44 -
.../exception/UnknownTableOrBucketException.java | 47 -
.../fluss/exception/UnknownWriterIdException.java | 34 -
.../exception/UnsupportedVersionException.java | 40 -
.../alibaba/fluss/exception/WakeupException.java | 33 -
.../alibaba/fluss/fs/ClosingFSDataInputStream.java | 92 -
.../fluss/fs/ClosingFSDataOutputStream.java | 92 -
.../com/alibaba/fluss/fs/FSDataInputStream.java | 53 -
.../alibaba/fluss/fs/FSDataInputStreamWrapper.java | 97 --
.../com/alibaba/fluss/fs/FSDataOutputStream.java | 105 --
.../fluss/fs/FSDataOutputStreamWrapper.java | 72 -
.../main/java/com/alibaba/fluss/fs/FileStatus.java | 49 -
.../com/alibaba/fluss/fs/FileSystemPlugin.java | 49 -
.../com/alibaba/fluss/fs/FileSystemSafetyNet.java | 122 --
.../src/main/java/com/alibaba/fluss/fs/FsPath.java | 393 -----
.../com/alibaba/fluss/fs/FsPathAndFileName.java | 78 -
.../alibaba/fluss/fs/PluginFileSystemWrapper.java | 147 --
.../fluss/fs/SafetyNetCloseableRegistry.java | 238 ---
.../fluss/fs/SafetyNetWrapperFileSystem.java | 109 --
.../fs/UnsupportedFileSystemSchemeException.java | 45 -
.../alibaba/fluss/fs/WrappingProxyCloseable.java | 27 -
.../fluss/fs/local/LocalDataInputStream.java | 90 -
.../fluss/fs/local/LocalDataOutputStream.java | 93 -
.../alibaba/fluss/fs/local/LocalFileStatus.java | 78 -
.../alibaba/fluss/fs/local/LocalFileSystem.java | 285 ---
.../fluss/fs/local/LocalFileSystemPlugin.java | 40 -
.../fluss/fs/local/LocalSecurityTokenReceiver.java | 35 -
.../com/alibaba/fluss/fs/token/Credentials.java | 44 -
.../fluss/fs/token/ObtainedSecurityToken.java | 66 -
.../fluss/fs/token/SecurityTokenReceiver.java | 35 -
.../alibaba/fluss/fs/utils/FileDownloadSpec.java | 47 -
.../alibaba/fluss/fs/utils/FileDownloadUtils.java | 191 --
.../alibaba/fluss/lake/batch/ArrowRecordBatch.java | 28 -
.../com/alibaba/fluss/lake/batch/RecordBatch.java | 28 -
.../lake/committer/CommittedLakeSnapshot.java | 94 -
.../fluss/lake/committer/CommitterInitContext.java | 38 -
.../fluss/lake/committer/LakeCommitter.java | 78 -
.../fluss/lake/lakestorage/LakeCatalog.java | 47 -
.../fluss/lake/lakestorage/LakeStoragePlugin.java | 46 -
.../lake/serializer/SimpleVersionedSerializer.java | 60 -
.../fluss/lake/writer/LakeTieringFactory.java | 74 -
.../com/alibaba/fluss/lake/writer/LakeWriter.java | 50 -
.../lake/writer/SupportsRecordBatchWrite.java | 41 -
.../fluss/lake/writer/WriterInitContext.java | 73 -
.../fluss/memory/AbstractPagedOutputView.java | 333 ----
.../java/com/alibaba/fluss/memory/InputView.java | 164 --
.../fluss/memory/LazyMemorySegmentPool.java | 275 ---
.../fluss/memory/ManagedPagedOutputView.java | 50 -
.../com/alibaba/fluss/memory/MemorySegment.java | 1575 -----------------
.../fluss/memory/MemorySegmentInputView.java | 128 --
.../fluss/memory/MemorySegmentOutputView.java | 203 ---
.../alibaba/fluss/memory/MemorySegmentPool.java | 76 -
.../fluss/memory/MemorySegmentWritable.java | 38 -
.../java/com/alibaba/fluss/memory/MemoryUtils.java | 125 --
.../java/com/alibaba/fluss/memory/OutputView.java | 143 --
.../fluss/memory/PreAllocatedPagedOutputView.java | 69 -
.../fluss/memory/UnmanagedPagedOutputView.java | 39 -
.../com/alibaba/fluss/metadata/DataLakeFormat.java | 36 -
.../alibaba/fluss/metadata/DatabaseDescriptor.java | 138 --
.../com/alibaba/fluss/metadata/DatabaseInfo.java | 60 -
.../java/com/alibaba/fluss/metadata/KvFormat.java | 54 -
.../java/com/alibaba/fluss/metadata/LogFormat.java | 60 -
.../alibaba/fluss/metadata/MergeEngineType.java | 70 -
.../com/alibaba/fluss/metadata/PartitionInfo.java | 82 -
.../com/alibaba/fluss/metadata/PartitionSpec.java | 70 -
.../alibaba/fluss/metadata/PhysicalTablePath.java | 135 --
.../fluss/metadata/ResolvedPartitionSpec.java | 198 ---
.../java/com/alibaba/fluss/metadata/Schema.java | 520 ------
.../com/alibaba/fluss/metadata/SchemaInfo.java | 75 -
.../com/alibaba/fluss/metadata/TableBucket.java | 116 --
.../alibaba/fluss/metadata/TableBucketReplica.java | 62 -
.../alibaba/fluss/metadata/TableDescriptor.java | 625 -------
.../com/alibaba/fluss/metadata/TableException.java | 40 -
.../java/com/alibaba/fluss/metadata/TableInfo.java | 418 -----
.../com/alibaba/fluss/metadata/TablePartition.java | 79 -
.../java/com/alibaba/fluss/metadata/TablePath.java | 191 --
.../fluss/metadata/ValidationException.java | 39 -
.../com/alibaba/fluss/metrics/CharacterFilter.java | 42 -
.../java/com/alibaba/fluss/metrics/Counter.java | 61 -
.../metrics/DescriptiveStatisticsHistogram.java | 85 -
.../DescriptiveStatisticsHistogramStatistics.java | 221 ---
.../main/java/com/alibaba/fluss/metrics/Gauge.java | 41 -
.../java/com/alibaba/fluss/metrics/Histogram.java | 58 -
.../alibaba/fluss/metrics/HistogramStatistics.java | 82 -
.../main/java/com/alibaba/fluss/metrics/Meter.java | 58 -
.../java/com/alibaba/fluss/metrics/MeterView.java | 142 --
.../java/com/alibaba/fluss/metrics/Metric.java | 30 -
.../com/alibaba/fluss/metrics/MetricNames.java | 170 --
.../java/com/alibaba/fluss/metrics/MetricType.java | 33 -
.../java/com/alibaba/fluss/metrics/MetricView.java | 34 -
.../alibaba/fluss/metrics/MetricViewUpdater.java | 97 --
.../com/alibaba/fluss/metrics/NoOpCounter.java | 46 -
.../com/alibaba/fluss/metrics/SimpleCounter.java | 70 -
.../fluss/metrics/ThreadSafeSimpleCounter.java | 75 -
.../fluss/metrics/groups/AbstractMetricGroup.java | 385 ----
.../fluss/metrics/groups/FrontMetricGroup.java | 44 -
.../metrics/groups/GenericKeyMetricGroup.java | 50 -
.../fluss/metrics/groups/GenericMetricGroup.java | 55 -
.../metrics/groups/GenericValueMetricGroup.java | 54 -
.../alibaba/fluss/metrics/groups/MetricGroup.java | 149 --
.../fluss/metrics/groups/ProxyMetricGroup.java | 97 --
.../metrics/groups/ReporterScopedSettings.java | 35 -
.../fluss/metrics/registry/MetricRegistry.java | 80 -
.../fluss/metrics/registry/MetricRegistryImpl.java | 321 ----
.../fluss/metrics/registry/NOPMetricRegistry.java | 51 -
.../fluss/metrics/reporter/MetricReporter.java | 76 -
.../metrics/reporter/MetricReporterPlugin.java | 54 -
.../metrics/reporter/ScheduledMetricReporter.java | 43 -
.../fluss/metrics/utils/MetricGroupUtils.java | 33 -
.../fluss/plugin/DirectoryBasedPluginFinder.java | 116 --
.../main/java/com/alibaba/fluss/plugin/Plugin.java | 45 -
.../com/alibaba/fluss/plugin/PluginConfig.java | 81 -
.../com/alibaba/fluss/plugin/PluginDescriptor.java | 71 -
.../com/alibaba/fluss/plugin/PluginFinder.java | 37 -
.../com/alibaba/fluss/plugin/PluginLoader.java | 166 --
.../com/alibaba/fluss/plugin/PluginManager.java | 38 -
.../java/com/alibaba/fluss/plugin/PluginUtils.java | 55 -
.../java/com/alibaba/fluss/record/ChangeType.java | 127 --
.../com/alibaba/fluss/record/ChangeTypeVector.java | 74 -
.../fluss/record/ChangeTypeVectorWriter.java | 51 -
.../com/alibaba/fluss/record/DefaultKvRecord.java | 195 ---
.../alibaba/fluss/record/DefaultKvRecordBatch.java | 320 ----
.../alibaba/fluss/record/DefaultValueRecord.java | 91 -
.../fluss/record/DefaultValueRecordBatch.java | 292 ----
.../com/alibaba/fluss/record/FileChannelChunk.java | 49 -
.../alibaba/fluss/record/FileLogInputStream.java | 275 ---
.../com/alibaba/fluss/record/FileLogRecords.java | 534 ------
.../com/alibaba/fluss/record/GenericRecord.java | 57 -
.../com/alibaba/fluss/record/IndexedLogRecord.java | 195 ---
.../java/com/alibaba/fluss/record/KvRecord.java | 56 -
.../com/alibaba/fluss/record/KvRecordBatch.java | 118 --
.../alibaba/fluss/record/KvRecordBatchBuilder.java | 241 ---
.../alibaba/fluss/record/KvRecordReadContext.java | 42 -
.../com/alibaba/fluss/record/LogInputStream.java | 44 -
.../java/com/alibaba/fluss/record/LogRecord.java | 58 -
.../fluss/record/LogRecordBatchIterator.java | 54 -
.../java/com/alibaba/fluss/record/LogRecords.java | 44 -
.../com/alibaba/fluss/record/MemoryLogRecords.java | 158 --
.../fluss/record/MemoryLogRecordsArrowBuilder.java | 290 ---
.../record/MemoryLogRecordsIndexedBuilder.java | 246 ---
.../fluss/record/MemorySegmentLogInputStream.java | 64 -
.../alibaba/fluss/record/TimestampAndOffset.java | 61 -
.../java/com/alibaba/fluss/record/ValueRecord.java | 45 -
.../com/alibaba/fluss/record/ValueRecordBatch.java | 75 -
.../fluss/record/ValueRecordReadContext.java | 43 -
.../fluss/record/bytesview/ByteBufBytesView.java | 52 -
.../fluss/record/bytesview/FlussFileRegion.java | 157 --
.../com/alibaba/fluss/record/send/ByteBufSend.java | 38 -
.../alibaba/fluss/record/send/FileRegionSend.java | 42 -
.../com/alibaba/fluss/record/send/MultiSend.java | 42 -
.../java/com/alibaba/fluss/record/send/Send.java | 34 -
.../alibaba/fluss/remote/RemoteLogFetchInfo.java | 72 -
.../com/alibaba/fluss/remote/RemoteLogSegment.java | 224 ---
.../com/alibaba/fluss/rocksdb/RocksDBHandle.java | 99 --
.../fluss/rocksdb/RocksDBOperationUtils.java | 116 --
.../fluss/rocksdb/RocksIteratorWrapper.java | 129 --
.../main/java/com/alibaba/fluss/row/BinaryRow.java | 35 -
.../java/com/alibaba/fluss/row/BinarySection.java | 128 --
.../com/alibaba/fluss/row/BinarySegmentUtils.java | 389 -----
.../java/com/alibaba/fluss/row/BinaryString.java | 1013 -----------
.../main/java/com/alibaba/fluss/row/Decimal.java | 240 ---
.../java/com/alibaba/fluss/row/GenericRow.java | 215 ---
.../java/com/alibaba/fluss/row/InternalRow.java | 284 ---
.../com/alibaba/fluss/row/MemoryAwareGetters.java | 36 -
.../com/alibaba/fluss/row/NullAwareGetters.java | 34 -
.../java/com/alibaba/fluss/row/ProjectedRow.java | 163 --
.../java/com/alibaba/fluss/row/TimestampLtz.java | 171 --
.../java/com/alibaba/fluss/row/TimestampNtz.java | 166 --
.../fluss/row/arrow/ArrowWriterProvider.java | 35 -
.../fluss/row/columnar/BooleanColumnVector.java | 26 -
.../fluss/row/columnar/ByteColumnVector.java | 26 -
.../fluss/row/columnar/BytesColumnVector.java | 48 -
.../alibaba/fluss/row/columnar/ColumnVector.java | 26 -
.../alibaba/fluss/row/columnar/ColumnarRow.java | 138 --
.../fluss/row/columnar/DecimalColumnVector.java | 27 -
.../fluss/row/columnar/DoubleColumnVector.java | 26 -
.../fluss/row/columnar/FloatColumnVector.java | 26 -
.../fluss/row/columnar/IntColumnVector.java | 26 -
.../fluss/row/columnar/LongColumnVector.java | 26 -
.../fluss/row/columnar/ShortColumnVector.java | 26 -
.../row/columnar/TimestampLtzColumnVector.java | 27 -
.../row/columnar/TimestampNtzColumnVector.java | 27 -
.../fluss/row/columnar/VectorizedColumnBatch.java | 105 --
.../fluss/row/compacted/CompactedKeyWriter.java | 48 -
.../alibaba/fluss/row/compacted/CompactedRow.java | 245 ---
.../row/compacted/CompactedRowDeserializer.java | 40 -
.../fluss/row/compacted/CompactedRowReader.java | 331 ----
.../fluss/row/compacted/CompactedRowWriter.java | 380 ----
.../fluss/row/decode/CompactedRowDecoder.java | 47 -
.../fluss/row/decode/IndexedRowDecoder.java | 43 -
.../com/alibaba/fluss/row/decode/RowDecoder.java | 58 -
.../fluss/row/encode/CompactedKeyEncoder.java | 86 -
.../fluss/row/encode/CompactedRowEncoder.java | 71 -
.../fluss/row/encode/IndexedRowEncoder.java | 73 -
.../com/alibaba/fluss/row/encode/RowEncoder.java | 82 -
.../com/alibaba/fluss/row/encode/ValueDecoder.java | 63 -
.../com/alibaba/fluss/row/encode/ValueEncoder.java | 41 -
.../row/encode/paimon/PaimonBinaryRowWriter.java | 442 -----
.../fluss/row/encode/paimon/PaimonKeyEncoder.java | 64 -
.../com/alibaba/fluss/row/indexed/IndexedRow.java | 485 ------
.../fluss/row/indexed/IndexedRowReader.java | 283 ---
.../fluss/row/indexed/IndexedRowWriter.java | 350 ----
.../alibaba/fluss/rpc/messages/ErrorMessage.java | 73 -
.../fluss/security/acl/AccessControlEntry.java | 109 --
.../security/acl/AccessControlEntryFilter.java | 126 --
.../com/alibaba/fluss/security/acl/AclBinding.java | 75 -
.../fluss/security/acl/AclBindingFilter.java | 76 -
.../alibaba/fluss/security/acl/FlussPrincipal.java | 86 -
.../alibaba/fluss/security/acl/OperationType.java | 64 -
.../alibaba/fluss/security/acl/PermissionType.java | 55 -
.../com/alibaba/fluss/security/acl/Resource.java | 92 -
.../alibaba/fluss/security/acl/ResourceFilter.java | 77 -
.../alibaba/fluss/security/acl/ResourceType.java | 88 -
.../fluss/security/auth/AuthenticationFactory.java | 165 --
.../fluss/security/auth/AuthenticationPlugin.java | 50 -
.../security/auth/ClientAuthenticationPlugin.java | 40 -
.../fluss/security/auth/ClientAuthenticator.java | 108 --
.../auth/PlainTextAuthenticationPlugin.java | 85 -
.../security/auth/ServerAuthenticationPlugin.java | 43 -
.../fluss/security/auth/ServerAuthenticator.java | 110 --
.../authenticator/SaslAuthenticationPlugin.java | 45 -
.../authenticator/SaslClientAuthenticator.java | 125 --
.../authenticator/SaslServerAuthenticator.java | 153 --
.../sasl/jaas/AuthenticateCallbackHandler.java | 33 -
.../security/auth/sasl/jaas/DefaultLogin.java | 81 -
.../fluss/security/auth/sasl/jaas/JaasConfig.java | 152 --
.../fluss/security/auth/sasl/jaas/JaasContext.java | 277 ---
.../fluss/security/auth/sasl/jaas/Login.java | 69 -
.../security/auth/sasl/jaas/LoginManager.java | 142 --
.../auth/sasl/jaas/SaslClientCallbackHandler.java | 90 -
.../security/auth/sasl/jaas/SaslServerFactory.java | 114 --
.../auth/sasl/plain/PlainAuthenticateCallback.java | 79 -
.../security/auth/sasl/plain/PlainLoginModule.java | 77 -
.../security/auth/sasl/plain/PlainSaslServer.java | 206 ---
.../auth/sasl/plain/PlainSaslServerProvider.java | 49 -
.../sasl/plain/PlainServerCallbackHandler.java | 95 -
.../java/com/alibaba/fluss/types/ArrayType.java | 100 --
.../java/com/alibaba/fluss/types/BigIntType.java | 64 -
.../java/com/alibaba/fluss/types/BinaryType.java | 121 --
.../java/com/alibaba/fluss/types/BooleanType.java | 63 -
.../java/com/alibaba/fluss/types/BytesType.java | 63 -
.../java/com/alibaba/fluss/types/CharType.java | 120 --
.../java/com/alibaba/fluss/types/DataField.java | 121 --
.../java/com/alibaba/fluss/types/DataType.java | 172 --
.../com/alibaba/fluss/types/DataTypeChecks.java | 121 --
.../fluss/types/DataTypeDefaultVisitor.java | 126 --
.../com/alibaba/fluss/types/DataTypeFamily.java | 58 -
.../java/com/alibaba/fluss/types/DataTypeRoot.java | 117 --
.../com/alibaba/fluss/types/DataTypeVisitor.java | 69 -
.../java/com/alibaba/fluss/types/DataTypes.java | 345 ----
.../java/com/alibaba/fluss/types/DateType.java | 67 -
.../java/com/alibaba/fluss/types/DecimalType.java | 128 --
.../java/com/alibaba/fluss/types/DoubleType.java | 63 -
.../java/com/alibaba/fluss/types/FloatType.java | 64 -
.../main/java/com/alibaba/fluss/types/IntType.java | 63 -
.../fluss/types/LocalZonedTimestampType.java | 128 --
.../main/java/com/alibaba/fluss/types/MapType.java | 110 --
.../main/java/com/alibaba/fluss/types/RowType.java | 268 ---
.../java/com/alibaba/fluss/types/SmallIntType.java | 63 -
.../java/com/alibaba/fluss/types/StringType.java | 65 -
.../java/com/alibaba/fluss/types/TimeType.java | 114 --
.../com/alibaba/fluss/types/TimestampType.java | 121 --
.../java/com/alibaba/fluss/types/TinyIntType.java | 63 -
.../fluss/utils/AbstractAutoCloseableRegistry.java | 179 --
.../com/alibaba/fluss/utils/AbstractIterator.java | 95 -
.../java/com/alibaba/fluss/utils/ArrayUtils.java | 163 --
.../alibaba/fluss/utils/AutoCloseableAsync.java | 43 -
.../alibaba/fluss/utils/AutoPartitionStrategy.java | 89 -
.../fluss/utils/ByteBufferReadableChannel.java | 75 -
.../java/com/alibaba/fluss/utils/BytesUtils.java | 161 --
.../com/alibaba/fluss/utils/CloseableIterator.java | 59 -
.../com/alibaba/fluss/utils/CloseableRegistry.java | 98 --
.../com/alibaba/fluss/utils/CollectionUtils.java | 58 -
.../com/alibaba/fluss/utils/CopyOnWriteMap.java | 147 --
.../java/com/alibaba/fluss/utils/DecimalUtils.java | 141 --
.../com/alibaba/fluss/utils/EncodingUtils.java | 37 -
.../com/alibaba/fluss/utils/ExceptionUtils.java | 483 -----
.../com/alibaba/fluss/utils/ExecutorUtils.java | 104 --
.../alibaba/fluss/utils/ExponentialBackoff.java | 92 -
.../fluss/utils/FatalExitExceptionHandler.java | 56 -
.../java/com/alibaba/fluss/utils/FileLock.java | 145 --
.../java/com/alibaba/fluss/utils/FileUtils.java | 460 -----
.../java/com/alibaba/fluss/utils/FlussPaths.java | 721 --------
.../main/java/com/alibaba/fluss/utils/IOUtils.java | 225 ---
.../alibaba/fluss/utils/InstantiationUtils.java | 342 ----
.../java/com/alibaba/fluss/utils/MapUtils.java | 57 -
.../java/com/alibaba/fluss/utils/MathUtils.java | 119 --
.../fluss/utils/MemorySegmentWritableChannel.java | 60 -
.../com/alibaba/fluss/utils/MurmurHashUtils.java | 138 --
.../com/alibaba/fluss/utils/OperatingSystem.java | 127 --
.../utils/PagedMemorySegmentWritableChannel.java | 68 -
.../com/alibaba/fluss/utils/PartitionUtils.java | 137 --
.../com/alibaba/fluss/utils/Preconditions.java | 229 ---
.../java/com/alibaba/fluss/utils/Projection.java | 89 -
.../com/alibaba/fluss/utils/PropertiesUtils.java | 69 -
.../com/alibaba/fluss/utils/ProtoCodecUtils.java | 294 ----
.../alibaba/fluss/utils/SerializableObject.java | 27 -
.../com/alibaba/fluss/utils/SerializedValue.java | 115 --
.../java/com/alibaba/fluss/utils/StringUtils.java | 55 -
.../fluss/utils/TemporaryClassLoaderContext.java | 82 -
.../java/com/alibaba/fluss/utils/TimeUtils.java | 238 ---
.../java/com/alibaba/fluss/utils/TypeUtils.java | 69 -
.../com/alibaba/fluss/utils/UnionIterator.java | 107 --
.../java/com/alibaba/fluss/utils/UnsafeUtils.java | 84 -
.../com/alibaba/fluss/utils/VarLengthUtils.java | 326 ----
.../com/alibaba/fluss/utils/WrappingProxy.java | 32 -
.../alibaba/fluss/utils/WrappingProxyUtils.java | 70 -
.../java/com/alibaba/fluss/utils/clock/Clock.java | 63 -
.../com/alibaba/fluss/utils/clock/ManualClock.java | 69 -
.../com/alibaba/fluss/utils/clock/SystemClock.java | 54 -
.../utils/concurrent/ExecutorThreadFactory.java | 176 --
.../alibaba/fluss/utils/concurrent/Executors.java | 46 -
.../fluss/utils/concurrent/FlussScheduler.java | 193 --
.../fluss/utils/concurrent/FutureUtils.java | 807 ---------
.../alibaba/fluss/utils/concurrent/LockUtils.java | 67 -
.../alibaba/fluss/utils/concurrent/Scheduler.java | 61 -
.../fluss/utils/concurrent/ShutdownableThread.java | 116 --
.../fluss/utils/concurrent/ThreadUtils.java | 37 -
.../com/alibaba/fluss/utils/crc/Checksums.java | 115 --
.../java/com/alibaba/fluss/utils/crc/Crc32C.java | 164 --
.../java/com/alibaba/fluss/utils/crc/Java.java | 70 -
.../alibaba/fluss/utils/crc/PureJavaCrc32C.java | 631 -------
.../alibaba/fluss/utils/function/BiFunction.java | 42 -
.../fluss/utils/function/CheckedSupplier.java | 35 -
.../fluss/utils/function/FunctionUtils.java | 65 -
.../utils/function/FunctionWithException.java | 42 -
.../alibaba/fluss/utils/function/QuadConsumer.java | 44 -
.../utils/function/RunnableWithException.java | 39 -
.../utils/function/SupplierWithException.java | 40 -
.../fluss/utils/function/ThrowingConsumer.java | 61 -
.../fluss/utils/function/ThrowingRunnable.java | 56 -
.../alibaba/fluss/utils/json/JsonDeserializer.java | 26 -
.../alibaba/fluss/utils/json/JsonSerializer.java | 27 -
.../fluss/utils/log/ByteBufferUnmapper.java | 163 --
.../fluss/utils/log/FairBucketStatusMap.java | 157 --
.../java/com/alibaba/fluss/utils/types/Either.java | 190 --
.../java/com/alibaba/fluss/utils/types/Tuple.java | 48 -
.../java/com/alibaba/fluss/utils/types/Tuple2.java | 141 --
.../java/org/apache/fluss/annotation/Internal.java | 31 +
.../apache/fluss/annotation/PublicEvolving.java | 32 +
.../org/apache/fluss/annotation/PublicStable.java | 36 +
.../apache/fluss/annotation/PublicUnstable.java | 31 +
.../apache/fluss/annotation/VisibleForTesting.java | 35 +
.../apache/fluss/bucketing/BucketingFunction.java | 50 +
.../fluss/bucketing/FlussBucketingFunction.java | 43 +
.../fluss/bucketing/IcebergBucketingFunction.java | 0
.../fluss/bucketing/PaimonBucketingFunction.java | 28 +
.../fluss/classloading/ComponentClassLoader.java | 0
.../org/apache/fluss/cluster/BucketLocation.java | 126 ++
.../java/org/apache/fluss/cluster/Cluster.java | 326 ++++
.../java/org/apache/fluss/cluster/Endpoint.java | 246 +++
.../java/org/apache/fluss/cluster/ServerNode.java | 145 ++
.../java/org/apache/fluss/cluster/ServerType.java | 24 +
.../org/apache/fluss/cluster/TabletServerInfo.java | 59 +
.../fluss/compression/ArrowCompressionFactory.java | 0
.../fluss/compression/ArrowCompressionInfo.java | 0
.../ArrowCompressionRatioEstimator.java | 69 +
.../fluss/compression/ArrowCompressionType.java | 33 +
.../compression/FlussLZ4BlockInputStream.java | 306 ++++
.../compression/FlussLZ4BlockOutputStream.java | 389 +++++
.../compression/Lz4ArrowCompressionCodec.java | 0
.../compression/ZstdArrowCompressionCodec.java | 0
.../apache/fluss/config/AutoPartitionTimeUnit.java | 34 +
.../org/apache/fluss/config/ConfigBuilder.java | 244 +++
.../java/org/apache/fluss/config/ConfigOption.java | 270 +++
.../org/apache/fluss/config/ConfigOptions.java | 1692 ++++++++++++++++++
.../org/apache/fluss/config/Configuration.java | 748 ++++++++
.../apache/fluss/config/ConfigurationUtils.java | 281 +++
.../java/org/apache/fluss/config/FallbackKey.java | 77 +
.../org/apache/fluss/config/FlussConfigUtils.java | 62 +
.../apache/fluss/config/GlobalConfiguration.java | 205 +++
.../java/org/apache/fluss/config/MemorySize.java | 417 +++++
.../java/org/apache/fluss/config/Password.java | 71 +
.../org/apache/fluss/config/ReadableConfig.java | 54 +
.../fluss/config/StructuredOptionsSplitter.java | 210 +++
.../java/org/apache/fluss/config/TableConfig.java | 118 ++
.../org/apache/fluss/exception/ApiException.java | 45 +
.../fluss/exception/AuthenticationException.java | 35 +
.../fluss/exception/AuthorizationException.java | 31 +
.../fluss/exception/BufferExhaustedException.java | 36 +
.../fluss/exception/CorruptMessageException.java | 49 +
.../fluss/exception/CorruptRecordException.java | 48 +
.../fluss/exception/CorruptSnapshotException.java | 32 +
.../exception/DatabaseAlreadyExistException.java | 37 +
.../fluss/exception/DatabaseNotEmptyException.java | 36 +
.../fluss/exception/DatabaseNotExistException.java | 36 +
.../fluss/exception/DisconnectException.java | 35 +
.../exception/DuplicateSequenceException.java | 31 +
.../exception/FencedLeaderEpochException.java | 25 +
.../exception/FencedTieringEpochException.java | 26 +
.../org/apache/fluss/exception/FetchException.java | 42 +
.../org/apache/fluss/exception/FlussException.java | 58 +
.../fluss/exception/FlussRuntimeException.java | 59 +
.../exception/IllegalConfigurationException.java | 65 +
.../exception/IndexOffsetOverflowException.java | 36 +
.../fluss/exception/InvalidBucketsException.java | 28 +
.../InvalidColumnProjectionException.java | 35 +
.../fluss/exception/InvalidConfigException.java | 35 +
.../exception/InvalidCoordinatorException.java | 25 +
.../fluss/exception/InvalidDatabaseException.java | 44 +
.../fluss/exception/InvalidMetadataException.java | 43 +
.../fluss/exception/InvalidOffsetException.java | 40 +
.../fluss/exception/InvalidPartitionException.java | 35 +
.../fluss/exception/InvalidRecordException.java | 39 +
.../InvalidReplicationFactorException.java | 35 +
.../exception/InvalidRequiredAcksException.java | 34 +
.../exception/InvalidServerRackInfoException.java | 28 +
.../fluss/exception/InvalidTableException.java | 44 +
.../exception/InvalidTargetColumnException.java | 33 +
.../fluss/exception/InvalidTimestampException.java | 33 +
.../exception/InvalidUpdateVersionException.java | 29 +
.../exception/KvSnapshotNotExistException.java | 35 +
.../apache/fluss/exception/KvStorageException.java | 53 +
.../LakeStorageNotConfiguredException.java | 35 +
.../LakeTableSnapshotNotExistException.java | 35 +
.../exception/LeaderNotAvailableException.java | 40 +
.../exception/LogOffsetOutOfRangeException.java | 40 +
.../exception/LogRecordAppendFailedException.java | 37 +
.../LogSegmentOffsetOverflowException.java | 36 +
.../fluss/exception/LogStorageException.java | 54 +
.../apache/fluss/exception/NetworkException.java | 44 +
.../exception/NonPrimaryKeyTableException.java | 36 +
.../NotEnoughReplicasAfterAppendException.java | 36 +
.../exception/NotEnoughReplicasException.java | 38 +
.../exception/NotLeaderOrFollowerException.java | 47 +
.../exception/OperationNotAttemptedException.java | 29 +
.../exception/OutOfOrderSequenceException.java | 34 +
.../exception/PartitionAlreadyExistsException.java | 32 +
.../exception/PartitionNotExistException.java | 35 +
.../fluss/exception/RecordTooLargeException.java | 42 +
.../exception/RemoteResourceNotFoundException.java | 43 +
.../fluss/exception/RemoteStorageException.java | 41 +
.../RetriableAuthenticationException.java | 29 +
.../apache/fluss/exception/RetriableException.java | 36 +
.../fluss/exception/SchemaNotExistException.java | 37 +
.../fluss/exception/SecurityDisabledException.java | 32 +
.../fluss/exception/SecurityTokenException.java | 39 +
.../fluss/exception/StaleMetadataException.java | 36 +
.../apache/fluss/exception/StorageException.java | 44 +
.../exception/TableAlreadyExistException.java | 37 +
.../fluss/exception/TableNotExistException.java | 36 +
.../exception/TableNotPartitionedException.java | 35 +
.../apache/fluss/exception/TimeoutException.java | 36 +
.../fluss/exception/TooManyBucketsException.java | 39 +
.../exception/TooManyPartitionsException.java | 35 +
.../fluss/exception/TraversableOnceException.java | 38 +
.../fluss/exception/UnknownServerException.java | 44 +
.../exception/UnknownTableOrBucketException.java | 47 +
.../fluss/exception/UnknownWriterIdException.java | 34 +
.../exception/UnsupportedVersionException.java | 40 +
.../apache/fluss/exception/WakeupException.java | 32 +
.../apache/fluss/fs/ClosingFSDataInputStream.java | 92 +
.../apache/fluss/fs/ClosingFSDataOutputStream.java | 92 +
.../org/apache/fluss/fs/FSDataInputStream.java | 53 +
.../apache/fluss/fs/FSDataInputStreamWrapper.java | 97 ++
.../org/apache/fluss/fs/FSDataOutputStream.java | 105 ++
.../apache/fluss/fs/FSDataOutputStreamWrapper.java | 72 +
.../main/java/org/apache/fluss/fs/FileStatus.java | 49 +
.../apache}/fluss/fs/FileSystem.java | 0
.../java/org/apache/fluss/fs/FileSystemPlugin.java | 49 +
.../org/apache/fluss/fs/FileSystemSafetyNet.java | 122 ++
.../src/main/java/org/apache/fluss/fs/FsPath.java | 393 +++++
.../org/apache/fluss/fs/FsPathAndFileName.java | 78 +
.../apache/fluss/fs/PluginFileSystemWrapper.java | 147 ++
.../fluss/fs/SafetyNetCloseableRegistry.java | 238 +++
.../fluss/fs/SafetyNetWrapperFileSystem.java | 109 ++
.../fs/UnsupportedFileSystemSchemeException.java | 45 +
.../apache/fluss/fs/WrappingProxyCloseable.java | 27 +
.../fluss/fs/local/LocalDataInputStream.java | 90 +
.../fluss/fs/local/LocalDataOutputStream.java | 93 +
.../org/apache/fluss/fs/local/LocalFileStatus.java | 78 +
.../org/apache/fluss/fs/local/LocalFileSystem.java | 285 +++
.../fluss/fs/local/LocalFileSystemPlugin.java | 40 +
.../fluss/fs/local/LocalSecurityTokenReceiver.java | 35 +
.../org/apache/fluss/fs/token/Credentials.java | 44 +
.../fluss/fs/token/CredentialsJsonSerde.java | 0
.../fluss/fs/token/ObtainedSecurityToken.java | 66 +
.../fluss/fs/token/SecurityTokenReceiver.java | 35 +
.../apache/fluss/fs/utils/FileDownloadSpec.java | 47 +
.../apache/fluss/fs/utils/FileDownloadUtils.java | 191 ++
.../apache/fluss/lake/batch/ArrowRecordBatch.java | 28 +
.../org/apache/fluss/lake/batch/RecordBatch.java | 28 +
.../apache}/fluss/lake/committer/BucketOffset.java | 0
.../lake/committer/CommittedLakeSnapshot.java | 94 +
.../fluss/lake/committer/CommitterInitContext.java | 38 +
.../apache/fluss/lake/committer/LakeCommitter.java | 78 +
.../apache/fluss/lake/lakestorage/LakeCatalog.java | 47 +
.../fluss/lake/lakestorage/LakeStorage.java | 0
.../fluss/lake/lakestorage/LakeStoragePlugin.java | 46 +
.../lake/lakestorage/LakeStoragePluginSetUp.java | 0
.../lake/lakestorage/PluginLakeStorageWrapper.java | 0
.../lake/serializer/SimpleVersionedSerializer.java | 60 +
.../fluss/lake/writer/LakeTieringFactory.java | 74 +
.../org/apache/fluss/lake/writer/LakeWriter.java | 50 +
.../lake/writer/SupportsRecordBatchWrite.java | 41 +
.../fluss/lake/writer/WriterInitContext.java | 73 +
.../fluss/memory/AbstractPagedOutputView.java | 333 ++++
.../java/org/apache/fluss/memory/InputView.java | 164 ++
.../apache/fluss/memory/LazyMemorySegmentPool.java | 275 +++
.../fluss/memory/ManagedPagedOutputView.java | 50 +
.../org/apache/fluss/memory/MemorySegment.java | 1575 +++++++++++++++++
.../fluss/memory/MemorySegmentInputView.java | 128 ++
.../fluss/memory/MemorySegmentOutputView.java | 203 +++
.../org/apache/fluss/memory/MemorySegmentPool.java | 76 +
.../apache/fluss/memory/MemorySegmentWritable.java | 38 +
.../java/org/apache/fluss/memory/MemoryUtils.java | 125 ++
.../java/org/apache/fluss/memory/OutputView.java | 143 ++
.../fluss/memory/PreAllocatedPagedOutputView.java | 69 +
.../fluss/memory/UnmanagedPagedOutputView.java | 39 +
.../org/apache/fluss/metadata/DataLakeFormat.java | 36 +
.../apache/fluss/metadata/DatabaseDescriptor.java | 138 ++
.../org/apache/fluss/metadata/DatabaseInfo.java | 60 +
.../java/org/apache/fluss/metadata/KvFormat.java | 54 +
.../java/org/apache/fluss/metadata/LogFormat.java | 60 +
.../org/apache/fluss/metadata/MergeEngineType.java | 70 +
.../org/apache/fluss/metadata/PartitionInfo.java | 82 +
.../org/apache/fluss/metadata/PartitionSpec.java | 70 +
.../apache/fluss/metadata/PhysicalTablePath.java | 135 ++
.../fluss/metadata/ResolvedPartitionSpec.java | 198 +++
.../java/org/apache/fluss/metadata/Schema.java | 520 ++++++
.../java/org/apache/fluss/metadata/SchemaInfo.java | 75 +
.../org/apache/fluss/metadata/TableBucket.java | 116 ++
.../apache/fluss/metadata/TableBucketReplica.java | 62 +
.../org/apache/fluss/metadata/TableDescriptor.java | 625 +++++++
.../org/apache/fluss/metadata/TableException.java | 40 +
.../java/org/apache/fluss/metadata/TableInfo.java | 418 +++++
.../org/apache/fluss/metadata/TablePartition.java | 79 +
.../java/org/apache/fluss/metadata/TablePath.java | 191 ++
.../apache/fluss/metadata/ValidationException.java | 39 +
.../org/apache/fluss/metrics/CharacterFilter.java | 42 +
.../java/org/apache/fluss/metrics/Counter.java | 61 +
.../metrics/DescriptiveStatisticsHistogram.java | 85 +
.../DescriptiveStatisticsHistogramStatistics.java | 221 +++
.../main/java/org/apache/fluss/metrics/Gauge.java | 41 +
.../java/org/apache/fluss/metrics/Histogram.java | 58 +
.../apache/fluss/metrics/HistogramStatistics.java | 82 +
.../main/java/org/apache/fluss/metrics/Meter.java | 58 +
.../java/org/apache/fluss/metrics/MeterView.java | 142 ++
.../main/java/org/apache/fluss/metrics/Metric.java | 30 +
.../java/org/apache/fluss/metrics/MetricNames.java | 170 ++
.../java/org/apache/fluss/metrics/MetricType.java | 33 +
.../java/org/apache/fluss/metrics/MetricView.java | 34 +
.../apache/fluss/metrics/MetricViewUpdater.java | 97 ++
.../java/org/apache/fluss/metrics/NoOpCounter.java | 46 +
.../org/apache/fluss/metrics/SimpleCounter.java | 70 +
.../fluss/metrics/ThreadSafeSimpleCounter.java | 75 +
.../fluss/metrics/groups/AbstractMetricGroup.java | 385 ++++
.../fluss/metrics/groups/FrontMetricGroup.java | 44 +
.../metrics/groups/GenericKeyMetricGroup.java | 50 +
.../fluss/metrics/groups/GenericMetricGroup.java | 55 +
.../metrics/groups/GenericValueMetricGroup.java | 54 +
.../apache/fluss/metrics/groups/MetricGroup.java | 149 ++
.../fluss/metrics/groups/ProxyMetricGroup.java | 97 ++
.../metrics/groups/ReporterScopedSettings.java | 35 +
.../fluss/metrics/registry/MetricRegistry.java | 80 +
.../fluss/metrics/registry/MetricRegistryImpl.java | 321 ++++
.../fluss/metrics/registry/NOPMetricRegistry.java | 51 +
.../fluss/metrics/reporter/MetricReporter.java | 76 +
.../metrics/reporter/MetricReporterPlugin.java | 54 +
.../fluss/metrics/reporter/ReporterSetup.java | 0
.../metrics/reporter/ScheduledMetricReporter.java | 43 +
.../fluss/metrics/utils/MetricGroupUtils.java | 33 +
.../apache}/fluss/plugin/DefaultPluginManager.java | 0
.../fluss/plugin/DirectoryBasedPluginFinder.java | 116 ++
.../main/java/org/apache/fluss/plugin/Plugin.java | 45 +
.../java/org/apache/fluss/plugin/PluginConfig.java | 81 +
.../org/apache/fluss/plugin/PluginDescriptor.java | 71 +
.../java/org/apache/fluss/plugin/PluginFinder.java | 37 +
.../java/org/apache/fluss/plugin/PluginLoader.java | 166 ++
.../org/apache/fluss/plugin/PluginManager.java | 38 +
.../java/org/apache/fluss/plugin/PluginUtils.java | 55 +
.../apache}/fluss/record/BytesViewLogRecords.java | 0
.../java/org/apache/fluss/record/ChangeType.java | 127 ++
.../org/apache/fluss/record/ChangeTypeVector.java | 74 +
.../fluss/record/ChangeTypeVectorWriter.java | 51 +
.../org/apache/fluss/record/DefaultKvRecord.java | 195 +++
.../apache/fluss/record/DefaultKvRecordBatch.java | 320 ++++
.../fluss/record/DefaultLogRecordBatch.java | 0
.../apache/fluss/record/DefaultValueRecord.java | 91 +
.../fluss/record/DefaultValueRecordBatch.java | 292 ++++
.../org/apache/fluss/record/FileChannelChunk.java | 49 +
.../apache/fluss/record/FileLogInputStream.java | 275 +++
.../apache}/fluss/record/FileLogProjection.java | 0
.../org/apache/fluss/record/FileLogRecords.java | 534 ++++++
.../org/apache/fluss/record/GenericRecord.java | 57 +
.../org/apache/fluss/record/IndexedLogRecord.java | 195 +++
.../java/org/apache/fluss/record/KvRecord.java | 56 +
.../org/apache/fluss/record/KvRecordBatch.java | 118 ++
.../apache/fluss/record/KvRecordBatchBuilder.java | 241 +++
.../apache/fluss/record/KvRecordReadContext.java | 42 +
.../org/apache/fluss/record/LogInputStream.java | 44 +
.../java/org/apache/fluss/record/LogRecord.java | 58 +
.../apache}/fluss/record/LogRecordBatch.java | 0
.../fluss/record/LogRecordBatchIterator.java | 54 +
.../apache}/fluss/record/LogRecordReadContext.java | 0
.../java/org/apache/fluss/record/LogRecords.java | 44 +
.../org/apache/fluss/record/MemoryLogRecords.java | 158 ++
.../fluss/record/MemoryLogRecordsArrowBuilder.java | 290 +++
.../record/MemoryLogRecordsIndexedBuilder.java | 246 +++
.../fluss/record/MemorySegmentLogInputStream.java | 64 +
.../apache/fluss/record/TimestampAndOffset.java | 61 +
.../java/org/apache/fluss/record/ValueRecord.java | 45 +
.../org/apache/fluss/record/ValueRecordBatch.java | 75 +
.../fluss/record/ValueRecordReadContext.java | 43 +
.../fluss/record/bytesview/ByteBufBytesView.java | 52 +
.../apache}/fluss/record/bytesview/BytesView.java | 0
.../record/bytesview/FileRegionBytesView.java | 0
.../fluss/record/bytesview/FlussFileRegion.java | 157 ++
.../record/bytesview/MemorySegmentBytesView.java | 0
.../fluss/record/bytesview/MultiBytesView.java | 0
.../org/apache/fluss/record/send/ByteBufSend.java | 38 +
.../fluss/record/send/ByteBufWritableOutput.java | 0
.../apache/fluss/record/send/FileRegionSend.java | 42 +
.../org/apache/fluss/record/send/MultiSend.java | 42 +
.../java/org/apache/fluss/record/send/Send.java | 34 +
.../fluss/record/send/SendWritableOutput.java | 0
.../apache}/fluss/record/send/WritableOutput.java | 0
.../apache/fluss/remote/RemoteLogFetchInfo.java | 72 +
.../org/apache/fluss/remote/RemoteLogSegment.java | 224 +++
.../org/apache/fluss/rocksdb/RocksDBHandle.java | 99 ++
.../fluss/rocksdb/RocksDBOperationUtils.java | 116 ++
.../apache/fluss/rocksdb/RocksIteratorWrapper.java | 129 ++
.../main/java/org/apache/fluss/row/BinaryRow.java | 35 +
.../java/org/apache/fluss/row/BinarySection.java | 128 ++
.../org/apache/fluss/row/BinarySegmentUtils.java | 389 +++++
.../java/org/apache/fluss/row/BinaryString.java | 1013 +++++++++++
.../main/java/org/apache/fluss/row/Decimal.java | 240 +++
.../main/java/org/apache/fluss/row/GenericRow.java | 215 +++
.../java/org/apache/fluss/row/InternalRow.java | 284 +++
.../org/apache/fluss/row/MemoryAwareGetters.java | 36 +
.../org/apache/fluss/row/NullAwareGetters.java | 34 +
.../java/org/apache/fluss/row/ProjectedRow.java | 163 ++
.../java/org/apache/fluss/row/TimestampLtz.java | 171 ++
.../java/org/apache/fluss/row/TimestampNtz.java | 166 ++
.../apache}/fluss/row/arrow/ArrowReader.java | 0
.../apache}/fluss/row/arrow/ArrowWriter.java | 0
.../apache}/fluss/row/arrow/ArrowWriterPool.java | 0
.../fluss/row/arrow/ArrowWriterProvider.java | 35 +
.../row/arrow/vectors/ArrowBigIntColumnVector.java | 0
.../row/arrow/vectors/ArrowBinaryColumnVector.java | 0
.../arrow/vectors/ArrowBooleanColumnVector.java | 0
.../row/arrow/vectors/ArrowDateColumnVector.java | 0
.../arrow/vectors/ArrowDecimalColumnVector.java | 0
.../row/arrow/vectors/ArrowDoubleColumnVector.java | 0
.../row/arrow/vectors/ArrowFloatColumnVector.java | 0
.../row/arrow/vectors/ArrowIntColumnVector.java | 0
.../arrow/vectors/ArrowSmallIntColumnVector.java | 0
.../row/arrow/vectors/ArrowTimeColumnVector.java | 0
.../vectors/ArrowTimestampLtzColumnVector.java | 0
.../vectors/ArrowTimestampNtzColumnVector.java | 0
.../arrow/vectors/ArrowTinyIntColumnVector.java | 0
.../arrow/vectors/ArrowVarBinaryColumnVector.java | 0
.../arrow/vectors/ArrowVarCharColumnVector.java | 0
.../fluss/row/arrow/writers/ArrowBigIntWriter.java | 0
.../fluss/row/arrow/writers/ArrowBinaryWriter.java | 0
.../row/arrow/writers/ArrowBooleanWriter.java | 0
.../fluss/row/arrow/writers/ArrowDateWriter.java | 0
.../row/arrow/writers/ArrowDecimalWriter.java | 0
.../fluss/row/arrow/writers/ArrowDoubleWriter.java | 0
.../fluss/row/arrow/writers/ArrowFieldWriter.java | 0
.../fluss/row/arrow/writers/ArrowFloatWriter.java | 0
.../fluss/row/arrow/writers/ArrowIntWriter.java | 0
.../row/arrow/writers/ArrowSmallIntWriter.java | 0
.../fluss/row/arrow/writers/ArrowTimeWriter.java | 0
.../row/arrow/writers/ArrowTimestampLtzWriter.java | 0
.../row/arrow/writers/ArrowTimestampNtzWriter.java | 0
.../row/arrow/writers/ArrowTinyIntWriter.java | 0
.../row/arrow/writers/ArrowVarBinaryWriter.java | 0
.../row/arrow/writers/ArrowVarCharWriter.java | 0
.../fluss/row/columnar/BooleanColumnVector.java | 26 +
.../fluss/row/columnar/ByteColumnVector.java | 26 +
.../fluss/row/columnar/BytesColumnVector.java | 48 +
.../apache/fluss/row/columnar/ColumnVector.java | 26 +
.../org/apache/fluss/row/columnar/ColumnarRow.java | 138 ++
.../fluss/row/columnar/DecimalColumnVector.java | 27 +
.../fluss/row/columnar/DoubleColumnVector.java | 26 +
.../fluss/row/columnar/FloatColumnVector.java | 26 +
.../apache/fluss/row/columnar/IntColumnVector.java | 26 +
.../fluss/row/columnar/LongColumnVector.java | 26 +
.../fluss/row/columnar/ShortColumnVector.java | 26 +
.../row/columnar/TimestampLtzColumnVector.java | 27 +
.../row/columnar/TimestampNtzColumnVector.java | 27 +
.../fluss/row/columnar/VectorizedColumnBatch.java | 105 ++
.../fluss/row/compacted/CompactedKeyWriter.java | 48 +
.../apache/fluss/row/compacted/CompactedRow.java | 245 +++
.../row/compacted/CompactedRowDeserializer.java | 40 +
.../fluss/row/compacted/CompactedRowReader.java | 331 ++++
.../fluss/row/compacted/CompactedRowWriter.java | 380 ++++
.../fluss/row/decode/CompactedRowDecoder.java | 47 +
.../apache/fluss/row/decode/IndexedRowDecoder.java | 43 +
.../org/apache/fluss/row/decode/RowDecoder.java | 58 +
.../fluss/row/encode/CompactedKeyEncoder.java | 86 +
.../fluss/row/encode/CompactedRowEncoder.java | 71 +
.../apache/fluss/row/encode/IndexedRowEncoder.java | 73 +
.../apache}/fluss/row/encode/KeyEncoder.java | 0
.../org/apache/fluss/row/encode/RowEncoder.java | 82 +
.../org/apache/fluss/row/encode/ValueDecoder.java | 63 +
.../org/apache/fluss/row/encode/ValueEncoder.java | 41 +
.../row/encode/paimon/PaimonBinaryRowWriter.java | 442 +++++
.../fluss/row/encode/paimon/PaimonKeyEncoder.java | 64 +
.../org/apache/fluss/row/indexed/IndexedRow.java | 485 ++++++
.../apache/fluss/row/indexed/IndexedRowReader.java | 283 +++
.../apache/fluss/row/indexed/IndexedRowWriter.java | 350 ++++
.../apache}/fluss/rpc/messages/ApiMessage.java | 0
.../apache/fluss/rpc/messages/ErrorMessage.java | 73 +
.../fluss/security/acl/AccessControlEntry.java | 109 ++
.../security/acl/AccessControlEntryFilter.java | 126 ++
.../org/apache/fluss/security/acl/AclBinding.java | 75 +
.../fluss/security/acl/AclBindingFilter.java | 76 +
.../apache/fluss/security/acl/FlussPrincipal.java | 86 +
.../apache/fluss/security/acl/OperationType.java | 64 +
.../apache/fluss/security/acl/PermissionType.java | 55 +
.../org/apache/fluss/security/acl/Resource.java | 92 +
.../apache/fluss/security/acl/ResourceFilter.java | 77 +
.../apache/fluss/security/acl/ResourceType.java | 88 +
.../fluss/security/auth/AuthenticationFactory.java | 165 ++
.../fluss/security/auth/AuthenticationPlugin.java | 50 +
.../security/auth/ClientAuthenticationPlugin.java | 40 +
.../fluss/security/auth/ClientAuthenticator.java | 108 ++
.../auth/PlainTextAuthenticationPlugin.java | 85 +
.../security/auth/ServerAuthenticationPlugin.java | 43 +
.../fluss/security/auth/ServerAuthenticator.java | 110 ++
.../authenticator/SaslAuthenticationPlugin.java | 45 +
.../authenticator/SaslClientAuthenticator.java | 125 ++
.../authenticator/SaslServerAuthenticator.java | 153 ++
.../sasl/jaas/AuthenticateCallbackHandler.java | 33 +
.../security/auth/sasl/jaas/DefaultLogin.java | 81 +
.../fluss/security/auth/sasl/jaas/JaasConfig.java | 152 ++
.../fluss/security/auth/sasl/jaas/JaasContext.java | 277 +++
.../fluss/security/auth/sasl/jaas/Login.java | 69 +
.../security/auth/sasl/jaas/LoginManager.java | 142 ++
.../auth/sasl/jaas/SaslClientCallbackHandler.java | 90 +
.../security/auth/sasl/jaas/SaslServerFactory.java | 114 ++
.../auth/sasl/plain/PlainAuthenticateCallback.java | 79 +
.../security/auth/sasl/plain/PlainLoginModule.java | 77 +
.../security/auth/sasl/plain/PlainSaslServer.java | 206 +++
.../auth/sasl/plain/PlainSaslServerProvider.java | 49 +
.../sasl/plain/PlainServerCallbackHandler.java | 95 +
.../java/org/apache/fluss/types/ArrayType.java | 100 ++
.../java/org/apache/fluss/types/BigIntType.java | 64 +
.../java/org/apache/fluss/types/BinaryType.java | 121 ++
.../java/org/apache/fluss/types/BooleanType.java | 63 +
.../java/org/apache/fluss/types/BytesType.java | 63 +
.../main/java/org/apache/fluss/types/CharType.java | 120 ++
.../java/org/apache/fluss/types/DataField.java | 121 ++
.../main/java/org/apache/fluss/types/DataType.java | 172 ++
.../org/apache/fluss/types/DataTypeChecks.java | 121 ++
.../apache/fluss/types/DataTypeDefaultVisitor.java | 126 ++
.../org/apache/fluss/types/DataTypeFamily.java | 58 +
.../java/org/apache/fluss/types/DataTypeRoot.java | 117 ++
.../org/apache/fluss/types/DataTypeVisitor.java | 69 +
.../java/org/apache/fluss/types/DataTypes.java | 345 ++++
.../main/java/org/apache/fluss/types/DateType.java | 67 +
.../java/org/apache/fluss/types/DecimalType.java | 128 ++
.../java/org/apache/fluss/types/DoubleType.java | 63 +
.../java/org/apache/fluss/types/FloatType.java | 64 +
.../main/java/org/apache/fluss/types/IntType.java | 63 +
.../fluss/types/LocalZonedTimestampType.java | 128 ++
.../main/java/org/apache/fluss/types/MapType.java | 110 ++
.../main/java/org/apache/fluss/types/RowType.java | 268 +++
.../java/org/apache/fluss/types/SmallIntType.java | 63 +
.../java/org/apache/fluss/types/StringType.java | 65 +
.../main/java/org/apache/fluss/types/TimeType.java | 114 ++
.../java/org/apache/fluss/types/TimestampType.java | 121 ++
.../java/org/apache/fluss/types/TinyIntType.java | 63 +
.../fluss/utils/AbstractAutoCloseableRegistry.java | 179 ++
.../org/apache/fluss/utils/AbstractIterator.java | 95 +
.../java/org/apache/fluss/utils/ArrayUtils.java | 163 ++
.../apache}/fluss/utils/ArrowUtils.java | 0
.../org/apache/fluss/utils/AutoCloseableAsync.java | 43 +
.../apache/fluss/utils/AutoPartitionStrategy.java | 89 +
.../apache}/fluss/utils/BinaryStringUtils.java | 0
.../fluss/utils/ByteBufferReadableChannel.java | 75 +
.../java/org/apache/fluss/utils/BytesUtils.java | 161 ++
.../org/apache/fluss/utils/CloseableIterator.java | 59 +
.../org/apache/fluss/utils/CloseableRegistry.java | 98 ++
.../org/apache/fluss/utils/CollectionUtils.java | 58 +
.../org/apache/fluss/utils/CopyOnWriteMap.java | 147 ++
.../apache}/fluss/utils/DateTimeUtils.java | 0
.../java/org/apache/fluss/utils/DecimalUtils.java | 141 ++
.../java/org/apache/fluss/utils/EncodingUtils.java | 37 +
.../org/apache/fluss/utils/ExceptionUtils.java | 483 +++++
.../java/org/apache/fluss/utils/ExecutorUtils.java | 104 ++
.../org/apache/fluss/utils/ExponentialBackoff.java | 92 +
.../fluss/utils/FatalExitExceptionHandler.java | 56 +
.../main/java/org/apache/fluss/utils/FileLock.java | 145 ++
.../java/org/apache/fluss/utils/FileUtils.java | 460 +++++
.../java/org/apache/fluss/utils/FlussPaths.java | 722 ++++++++
.../main/java/org/apache/fluss/utils/IOUtils.java | 225 +++
.../org/apache/fluss/utils/InstantiationUtils.java | 342 ++++
.../main/java/org/apache/fluss/utils/MapUtils.java | 57 +
.../java/org/apache/fluss/utils/MathUtils.java | 119 ++
.../fluss/utils/MemorySegmentWritableChannel.java | 60 +
.../org/apache/fluss/utils/MurmurHashUtils.java | 138 ++
.../apache}/fluss/utils/NetUtils.java | 0
.../org/apache/fluss/utils/OperatingSystem.java | 127 ++
.../utils/PagedMemorySegmentWritableChannel.java | 68 +
.../org/apache/fluss/utils/PartitionUtils.java | 137 ++
.../java/org/apache/fluss/utils/Preconditions.java | 229 +++
.../java/org/apache/fluss/utils/Projection.java | 89 +
.../org/apache/fluss/utils/PropertiesUtils.java | 69 +
.../org/apache/fluss/utils/ProtoCodecUtils.java | 294 ++++
.../org/apache/fluss/utils/SerializableObject.java | 27 +
.../org/apache/fluss/utils/SerializedValue.java | 115 ++
.../java/org/apache/fluss/utils/StringUtils.java | 55 +
.../fluss/utils/TemporaryClassLoaderContext.java | 82 +
.../java/org/apache/fluss/utils/TimeUtils.java | 238 +++
.../java/org/apache/fluss/utils/TypeUtils.java | 69 +
.../java/org/apache/fluss/utils/UnionIterator.java | 107 ++
.../java/org/apache/fluss/utils/UnsafeUtils.java | 84 +
.../org/apache/fluss/utils/VarLengthUtils.java | 326 ++++
.../java/org/apache/fluss/utils/WrappingProxy.java | 32 +
.../org/apache/fluss/utils/WrappingProxyUtils.java | 70 +
.../java/org/apache/fluss/utils/clock/Clock.java | 63 +
.../org/apache/fluss/utils/clock/ManualClock.java | 69 +
.../org/apache/fluss/utils/clock/SystemClock.java | 54 +
.../utils/concurrent/ExecutorThreadFactory.java | 176 ++
.../apache/fluss/utils/concurrent/Executors.java | 46 +
.../fluss/utils/concurrent/FlussScheduler.java | 193 ++
.../apache/fluss/utils/concurrent/FutureUtils.java | 807 +++++++++
.../apache/fluss/utils/concurrent/LockUtils.java | 67 +
.../apache/fluss/utils/concurrent/Scheduler.java | 61 +
.../fluss/utils/concurrent/ShutdownableThread.java | 116 ++
.../apache/fluss/utils/concurrent/ThreadUtils.java | 37 +
.../java/org/apache/fluss/utils/crc/Checksums.java | 115 ++
.../java/org/apache/fluss/utils/crc/Crc32C.java | 164 ++
.../main/java/org/apache/fluss/utils/crc/Java.java | 70 +
.../org/apache/fluss/utils/crc/PureJavaCrc32C.java | 631 +++++++
.../apache/fluss/utils/function/BiFunction.java | 42 +
.../fluss/utils/function/CheckedSupplier.java | 35 +
.../apache/fluss/utils/function/FunctionUtils.java | 65 +
.../utils/function/FunctionWithException.java | 42 +
.../apache/fluss/utils/function/QuadConsumer.java | 44 +
.../utils/function/RunnableWithException.java | 39 +
.../utils/function/SupplierWithException.java | 40 +
.../fluss/utils/function/ThrowingConsumer.java | 61 +
.../fluss/utils/function/ThrowingRunnable.java | 56 +
.../fluss/utils/json/BucketOffsetJsonSerde.java | 0
.../apache}/fluss/utils/json/ColumnJsonSerde.java | 0
.../fluss/utils/json/DataTypeJsonSerde.java | 0
.../utils/json/DatabaseDescriptorJsonSerde.java | 0
.../apache/fluss/utils/json/JsonDeserializer.java | 26 +
.../apache}/fluss/utils/json/JsonSerdeUtils.java | 0
.../apache/fluss/utils/json/JsonSerializer.java | 27 +
.../apache}/fluss/utils/json/SchemaJsonSerde.java | 0
.../fluss/utils/json/TableDescriptorJsonSerde.java | 0
.../fluss/utils/json/TablePartitionJsonSerde.java | 0
.../apache/fluss/utils/log/ByteBufferUnmapper.java | 163 ++
.../fluss/utils/log/FairBucketStatusMap.java | 157 ++
.../java/org/apache/fluss/utils/types/Either.java | 190 ++
.../java/org/apache/fluss/utils/types/Tuple.java | 48 +
.../java/org/apache/fluss/utils/types/Tuple2.java | 141 ++
...om.alibaba.fluss.fs.token.SecurityTokenReceiver | 20 -
...libaba.fluss.security.auth.AuthenticationPlugin | 19 -
...org.apache.fluss.fs.token.SecurityTokenReceiver | 20 +
...apache.fluss.security.auth.AuthenticationPlugin | 19 +
.../src/test/assembly/test-plugin-a-assembly.xml | 4 +-
.../src/test/assembly/test-plugin-b-assembly.xml | 4 +-
.../classloading/ComponentClassLoaderTest.java | 296 ----
.../alibaba/fluss/cluster/BucketLocationTest.java | 60 -
.../com/alibaba/fluss/cluster/EndpointTest.java | 176 --
.../com/alibaba/fluss/cluster/ServerNodeTest.java | 51 -
.../ArrowCompressionRatioEstimatorTest.java | 67 -
.../com/alibaba/fluss/config/ConfigOptionTest.java | 130 --
.../alibaba/fluss/config/ConfigurationTest.java | 502 ------
.../alibaba/fluss/config/FlussConfigUtilsTest.java | 52 -
.../com/alibaba/fluss/config/MemorySizeTest.java | 237 ---
.../StructuredOptionsSplitterEscapeTest.java | 86 -
.../config/StructuredOptionsSplitterTest.java | 168 --
.../fluss/fs/FileSystemBehaviorTestSuite.java | 364 ----
.../java/com/alibaba/fluss/fs/FileSystemTest.java | 207 ---
.../fluss/fs/SafetyNetCloseableRegistryTest.java | 319 ----
.../fluss/fs/SafetyNetWrapperFileSystemTest.java | 64 -
.../java/com/alibaba/fluss/fs/TestFileSystem.java | 160 --
.../fs/local/LocalFileSystemBehaviorTest.java | 42 -
.../fluss/fs/local/LocalFileSystemTest.java | 380 ----
.../fluss/fs/token/CredentialsJsonSerdeTest.java | 60 -
.../fluss/memory/CrossMemorySegmentTypeTest.java | 272 ---
.../fluss/memory/EndiannessAccessChecksTest.java | 168 --
.../fluss/memory/LazyMemorySegmentPoolTest.java | 702 --------
.../fluss/memory/MemorySegmentTestBase.java | 1391 ---------------
.../memory/OffHeapDirectMemorySegmentTest.java | 70 -
.../fluss/memory/OnHeapMemorySegmentTest.java | 107 --
.../fluss/memory/TestingMemorySegmentPool.java | 80 -
.../fluss/metadata/ResolvedPartitionSpecTest.java | 65 -
.../fluss/metadata/TableDescriptorTest.java | 319 ----
.../com/alibaba/fluss/metadata/TablePathTest.java | 74 -
.../DescriptiveStatisticsHistogramTest.java | 95 -
.../com/alibaba/fluss/metrics/MeterViewTest.java | 106 --
.../fluss/metrics/MetricViewUpdaterTest.java | 85 -
.../metrics/groups/AbstractMetricGroupTest.java | 113 --
.../fluss/metrics/groups/MetricGroupTest.java | 389 -----
.../metrics/registry/MetricRegistryImplTest.java | 227 ---
.../fluss/metrics/reporter/ReporterSetupTest.java | 272 ---
.../metrics/util/CollectingMetricsReporter.java | 83 -
.../fluss/metrics/util/DummyCharacterFilter.java | 28 -
.../fluss/metrics/util/MetricGroupUtilsTest.java | 45 -
.../metrics/util/MetricReporterTestUtils.java | 51 -
.../fluss/metrics/util/NOPMetricsGroup.java | 34 -
.../alibaba/fluss/metrics/util/TestHistogram.java | 103 --
.../com/alibaba/fluss/metrics/util/TestMeter.java | 51 -
.../fluss/metrics/util/TestMetricGroup.java | 146 --
.../alibaba/fluss/metrics/util/TestReporter.java | 69 -
.../plugin/DirectoryBasedPluginFinderTest.java | 132 --
.../com/alibaba/fluss/plugin/OtherTestSpi.java | 23 -
.../com/alibaba/fluss/plugin/PluginLoaderTest.java | 101 --
.../com/alibaba/fluss/plugin/PluginTestBase.java | 52 -
.../java/com/alibaba/fluss/plugin/TestSpi.java | 23 -
.../fluss/plugin/jar/plugina/DynamicClassA.java | 32 -
.../fluss/plugin/jar/plugina/TestServiceA.java | 39 -
.../plugin/jar/pluginb/OtherTestServiceB.java | 29 -
.../fluss/plugin/jar/pluginb/TestServiceB.java | 29 -
.../com/alibaba/fluss/record/ChangeTypeTest.java | 58 -
.../fluss/record/DefaultKvRecordBatchTest.java | 78 -
.../alibaba/fluss/record/DefaultKvRecordTest.java | 117 --
.../fluss/record/DefaultLogRecordBatchTest.java | 155 --
.../fluss/record/FileLogInputStreamTest.java | 63 -
.../fluss/record/FileLogProjectionTest.java | 299 ----
.../alibaba/fluss/record/IndexedLogRecordTest.java | 86 -
.../alibaba/fluss/record/KvRecordTestUtils.java | 172 --
.../java/com/alibaba/fluss/record/KvTestBase.java | 52 -
.../com/alibaba/fluss/record/LogRecordsTest.java | 114 --
.../java/com/alibaba/fluss/record/LogTestBase.java | 112 --
.../alibaba/fluss/record/MemoryLogRecordsTest.java | 84 -
.../record/MemorySegmentLogInputStreamTest.java | 69 -
.../java/com/alibaba/fluss/record/TestData.java | 218 ---
.../alibaba/fluss/row/BinarySegmentUtilsTest.java | 126 --
.../com/alibaba/fluss/row/BinaryStringTest.java | 523 ------
.../java/com/alibaba/fluss/row/DecimalTest.java | 132 --
.../java/com/alibaba/fluss/row/GenericRowTest.java | 153 --
.../com/alibaba/fluss/row/InternalRowTest.java | 63 -
.../com/alibaba/fluss/row/ProjectedRowTest.java | 162 --
.../fluss/row/TestInternalRowGenerator.java | 180 --
.../com/alibaba/fluss/row/TimestampLtzTest.java | 102 --
.../com/alibaba/fluss/row/TimestampNtzTest.java | 89 -
.../row/compacted/CompactedRowWriterTest.java | 172 --
.../fluss/row/encode/CompactedKeyEncoderTest.java | 181 --
.../row/encode/paimon/PaimonKeyEncoderTest.java | 126 --
.../fluss/row/indexed/IndexedRowReaderTest.java | 101 --
.../alibaba/fluss/row/indexed/IndexedRowTest.java | 219 ---
.../auth/TestConflictingAuthenticationPlugin1.java | 41 -
.../auth/TestConflictingAuthenticationPlugin2.java | 24 -
.../auth/TestIdentifierAuthenticationPlugin.java | 85 -
.../security/auth/sasl/jaas/DigestLoginModule.java | 69 -
.../security/auth/sasl/jaas/JaasContextTest.java | 315 ----
.../security/auth/sasl/jaas/LoginManagerTest.java | 108 --
.../security/auth/sasl/jaas/TestJaasConfig.java | 136 --
.../auth/sasl/plain/PlainSaslServerTest.java | 138 --
.../alibaba/fluss/testutils/InternalRowAssert.java | 78 -
.../fluss/testutils/InternalRowListAssert.java | 59 -
.../alibaba/fluss/testutils/ListLogRecords.java | 71 -
.../alibaba/fluss/testutils/LogRecordAssert.java | 63 -
.../fluss/testutils/LogRecordBatchAssert.java | 121 --
.../alibaba/fluss/testutils/LogRecordsAssert.java | 80 -
.../com/alibaba/fluss/types/DataFieldTest.java | 43 -
.../alibaba/fluss/types/DataTypeChecksTest.java | 127 --
.../alibaba/fluss/types/DataTypeVisitorTest.java | 88 -
.../com/alibaba/fluss/types/DataTypesTest.java | 698 --------
.../utils/AbstractAutoCloseableRegistryTest.java | 224 ---
.../com/alibaba/fluss/utils/ArrayUtilsTest.java | 127 --
.../com/alibaba/fluss/utils/BytesUtilsTest.java | 56 -
.../alibaba/fluss/utils/CloseableRegistryTest.java | 165 --
.../com/alibaba/fluss/utils/DateTimeUtilsTest.java | 90 -
.../alibaba/fluss/utils/ExceptionUtilsTest.java | 224 ---
.../com/alibaba/fluss/utils/ExecutorUtilsTest.java | 53 -
.../fluss/utils/ExponentialBackoffTest.java | 59 -
.../com/alibaba/fluss/utils/FileUtilsTest.java | 155 --
.../java/com/alibaba/fluss/utils/IOUtilsTest.java | 89 -
.../alibaba/fluss/utils/InstantiationUtilTest.java | 97 --
.../com/alibaba/fluss/utils/MathUtilsTest.java | 76 -
.../java/com/alibaba/fluss/utils/NetUtilsTest.java | 184 --
.../alibaba/fluss/utils/PartitionUtilsTest.java | 151 --
.../com/alibaba/fluss/utils/ProjectionTest.java | 70 -
.../alibaba/fluss/utils/SerializedValueTest.java | 48 -
.../com/alibaba/fluss/utils/StringUtilsTest.java | 55 -
.../utils/TemporaryClassLoaderContextTest.java | 45 -
.../com/alibaba/fluss/utils/TimeUtilsTest.java | 167 --
.../com/alibaba/fluss/utils/TypeUtilsTest.java | 74 -
.../com/alibaba/fluss/utils/UnionIteratorTest.java | 142 --
.../alibaba/fluss/utils/VarLengthUtilsTest.java | 125 --
.../alibaba/fluss/utils/WrappingProxyUtilTest.java | 67 -
.../fluss/utils/concurrent/ConjunctFutureTest.java | 261 ---
.../concurrent/ExecutorThreadFactoryTest.java | 82 -
.../fluss/utils/concurrent/FutureUtilsTest.java | 550 ------
.../ManuallyTriggeredScheduledExecutor.java | 45 -
.../fluss/utils/concurrent/SchedulerTest.java | 63 -
.../utils/concurrent/ShutdownableThreadTest.java | 46 -
.../com/alibaba/fluss/utils/crc/Crc32CTest.java | 138 --
.../fluss/utils/function/FunctionUtilsTest.java | 51 -
.../fluss/utils/json/ColumnJsonSerdeTest.java | 47 -
.../fluss/utils/json/DataTypeJsonSerdeTest.java | 146 --
.../fluss/utils/json/SchemaJsonSerdeTest.java | 87 -
.../utils/json/TableDescriptorJsonSerdeTest.java | 73 -
.../utils/json/TablePartitionJsonSerdeTest.java | 44 -
.../fluss/utils/log/ByteBufferUnmapperTest.java | 41 -
.../fluss/utils/log/FairBucketStatusMapTest.java | 203 ---
.../com/alibaba/fluss/utils/types/EitherTest.java | 57 -
.../com/alibaba/fluss/utils/types/TupleTest.java | 52 -
.../classloading/ComponentClassLoaderTest.java | 296 ++++
.../apache/fluss/cluster/BucketLocationTest.java | 60 +
.../apache}/fluss/cluster/ClusterTest.java | 0
.../org/apache/fluss/cluster/EndpointTest.java | 176 ++
.../org/apache/fluss/cluster/ServerNodeTest.java | 51 +
.../compression/ArrowCompressionCodecTest.java | 0
.../ArrowCompressionRatioEstimatorTest.java | 67 +
.../org/apache/fluss/config/ConfigOptionTest.java | 130 ++
.../org/apache/fluss/config/ConfigurationTest.java | 502 ++++++
.../apache/fluss/config/FlussConfigUtilsTest.java | 52 +
.../org/apache/fluss/config/MemorySizeTest.java | 237 +++
.../StructuredOptionsSplitterEscapeTest.java | 86 +
.../config/StructuredOptionsSplitterTest.java | 168 ++
.../fluss/fs/FileSystemBehaviorTestSuite.java | 364 ++++
.../java/org/apache/fluss/fs/FileSystemTest.java | 207 +++
.../fluss/fs/SafetyNetCloseableRegistryTest.java | 319 ++++
.../fluss/fs/SafetyNetWrapperFileSystemTest.java | 64 +
.../java/org/apache/fluss/fs/TestFileSystem.java | 160 ++
.../fs/local/LocalFileSystemBehaviorTest.java | 42 +
.../apache/fluss/fs/local/LocalFileSystemTest.java | 380 ++++
.../fluss/fs/token/CredentialsJsonSerdeTest.java | 60 +
.../fluss/lake/lakestorage/LakeStorageTest.java | 0
.../fluss/memory/CrossMemorySegmentTypeTest.java | 272 +++
.../fluss/memory/EndiannessAccessChecksTest.java | 168 ++
.../fluss/memory/LazyMemorySegmentPoolTest.java | 702 ++++++++
.../apache/fluss/memory/MemorySegmentTestBase.java | 1391 +++++++++++++++
.../memory/OffHeapDirectMemorySegmentTest.java | 70 +
.../fluss/memory/OnHeapMemorySegmentTest.java | 107 ++
.../fluss/memory/TestingMemorySegmentPool.java | 80 +
.../fluss/metadata/ResolvedPartitionSpecTest.java | 65 +
.../apache/fluss/metadata/TableDescriptorTest.java | 319 ++++
.../org/apache/fluss/metadata/TablePathTest.java | 74 +
.../DescriptiveStatisticsHistogramTest.java | 95 +
.../org/apache/fluss/metrics/MeterViewTest.java | 106 ++
.../fluss/metrics/MetricViewUpdaterTest.java | 85 +
.../metrics/groups/AbstractMetricGroupTest.java | 113 ++
.../fluss/metrics/groups/MetricGroupTest.java | 389 +++++
.../metrics/registry/MetricRegistryImplTest.java | 227 +++
.../fluss/metrics/reporter/ReporterSetupTest.java | 272 +++
.../metrics/util/CollectingMetricsReporter.java | 83 +
.../fluss/metrics/util/DummyCharacterFilter.java | 28 +
.../fluss/metrics/util/MetricGroupUtilsTest.java | 45 +
.../metrics/util/MetricReporterTestUtils.java | 51 +
.../apache/fluss/metrics/util/NOPMetricsGroup.java | 34 +
.../apache/fluss/metrics/util/TestHistogram.java | 103 ++
.../org/apache/fluss/metrics/util/TestMeter.java | 51 +
.../apache/fluss/metrics/util/TestMetricGroup.java | 146 ++
.../apache/fluss/metrics/util/TestReporter.java | 69 +
.../fluss/plugin/DefaultPluginManagerTest.java | 0
.../plugin/DirectoryBasedPluginFinderTest.java | 132 ++
.../java/org/apache/fluss/plugin/OtherTestSpi.java | 23 +
.../org/apache/fluss/plugin/PluginLoaderTest.java | 101 ++
.../org/apache/fluss/plugin/PluginTestBase.java | 52 +
.../test/java/org/apache/fluss/plugin/TestSpi.java | 23 +
.../fluss/plugin/jar/plugina/DynamicClassA.java | 32 +
.../fluss/plugin/jar/plugina/TestServiceA.java | 39 +
.../plugin/jar/pluginb/OtherTestServiceB.java | 29 +
.../fluss/plugin/jar/pluginb/TestServiceB.java | 29 +
.../org/apache/fluss/record/ChangeTypeTest.java | 58 +
.../fluss/record/DefaultKvRecordBatchTest.java | 78 +
.../apache/fluss/record/DefaultKvRecordTest.java | 117 ++
.../fluss/record/DefaultLogRecordBatchTest.java | 155 ++
.../fluss/record/FileLogInputStreamTest.java | 63 +
.../apache/fluss/record/FileLogProjectionTest.java | 299 ++++
.../apache}/fluss/record/FileLogRecordsTest.java | 0
.../apache/fluss/record/IndexedLogRecordTest.java | 86 +
.../org/apache/fluss/record/KvRecordTestUtils.java | 172 ++
.../java/org/apache/fluss/record/KvTestBase.java | 52 +
.../org/apache/fluss/record/LogRecordsTest.java | 114 ++
.../java/org/apache/fluss/record/LogTestBase.java | 112 ++
.../record/MemoryLogRecordsArrowBuilderTest.java | 0
.../apache/fluss/record/MemoryLogRecordsTest.java | 84 +
.../record/MemorySegmentLogInputStreamTest.java | 69 +
.../java/org/apache/fluss/record/TestData.java | 218 +++
.../fluss/record/send/SendWritableOutputTest.java | 0
.../apache/fluss/row/BinarySegmentUtilsTest.java | 126 ++
.../org/apache/fluss/row/BinaryStringTest.java | 523 ++++++
.../java/org/apache/fluss/row/DecimalTest.java | 132 ++
.../java/org/apache/fluss/row/GenericRowTest.java | 153 ++
.../java/org/apache/fluss/row/InternalRowTest.java | 63 +
.../org/apache/fluss/row/ProjectedRowTest.java | 162 ++
.../apache/fluss/row/TestInternalRowGenerator.java | 180 ++
.../org/apache/fluss/row/TimestampLtzTest.java | 102 ++
.../org/apache/fluss/row/TimestampNtzTest.java | 89 +
.../fluss/row/arrow/ArrowReaderWriterTest.java | 0
.../fluss/row/arrow/ArrowWriterPoolTest.java | 0
.../row/compacted/CompactedRowWriterTest.java | 172 ++
.../fluss/row/encode/CompactedKeyEncoderTest.java | 181 ++
.../row/encode/paimon/PaimonKeyEncoderTest.java | 126 ++
.../fluss/row/indexed/IndexedRowReaderTest.java | 101 ++
.../apache/fluss/row/indexed/IndexedRowTest.java | 219 +++
.../security/auth/AuthenticationFactoryTest.java | 0
.../auth/TestConflictingAuthenticationPlugin1.java | 41 +
.../auth/TestConflictingAuthenticationPlugin2.java | 24 +
.../auth/TestIdentifierAuthenticationPlugin.java | 85 +
.../security/auth/sasl/jaas/DigestLoginModule.java | 69 +
.../security/auth/sasl/jaas/JaasContextTest.java | 315 ++++
.../security/auth/sasl/jaas/LoginManagerTest.java | 108 ++
.../security/auth/sasl/jaas/TestJaasConfig.java | 136 ++
.../auth/sasl/plain/PlainSaslServerTest.java | 138 ++
.../apache}/fluss/testutils/ByteBufChannel.java | 0
.../apache}/fluss/testutils/DataTestUtils.java | 0
.../apache/fluss/testutils/InternalRowAssert.java | 78 +
.../fluss/testutils/InternalRowListAssert.java | 59 +
.../org/apache/fluss/testutils/ListLogRecords.java | 71 +
.../apache/fluss/testutils/LogRecordAssert.java | 63 +
.../fluss/testutils/LogRecordBatchAssert.java | 121 ++
.../apache/fluss/testutils/LogRecordsAssert.java | 80 +
.../java/org/apache/fluss/types/DataFieldTest.java | 43 +
.../org/apache/fluss/types/DataTypeChecksTest.java | 127 ++
.../apache/fluss/types/DataTypeVisitorTest.java | 88 +
.../java/org/apache/fluss/types/DataTypesTest.java | 698 ++++++++
.../utils/AbstractAutoCloseableRegistryTest.java | 224 +++
.../org/apache/fluss/utils/ArrayUtilsTest.java | 127 ++
.../apache}/fluss/utils/ArrowUtilsTest.java | 0
.../org/apache/fluss/utils/BytesUtilsTest.java | 56 +
.../apache/fluss/utils/CloseableRegistryTest.java | 165 ++
.../org/apache/fluss/utils/DateTimeUtilsTest.java | 90 +
.../org/apache/fluss/utils/ExceptionUtilsTest.java | 224 +++
.../org/apache/fluss/utils/ExecutorUtilsTest.java | 53 +
.../apache/fluss/utils/ExponentialBackoffTest.java | 59 +
.../java/org/apache/fluss/utils/FileUtilsTest.java | 155 ++
.../java/org/apache/fluss/utils/IOUtilsTest.java | 89 +
.../apache/fluss/utils/InstantiationUtilTest.java | 97 ++
.../java/org/apache/fluss/utils/MathUtilsTest.java | 76 +
.../java/org/apache/fluss/utils/NetUtilsTest.java | 184 ++
.../utils/ParentResourceBlockingClassLoader.java | 0
.../org/apache/fluss/utils/PartitionUtilsTest.java | 151 ++
.../org/apache/fluss/utils/ProjectionTest.java | 70 +
.../apache}/fluss/utils/ProtoCodecUtilsTest.java | 0
.../apache/fluss/utils/SerializedValueTest.java | 48 +
.../org/apache/fluss/utils/StringUtilsTest.java | 55 +
.../utils/TemporaryClassLoaderContextTest.java | 45 +
.../java/org/apache/fluss/utils/TimeUtilsTest.java | 167 ++
.../java/org/apache/fluss/utils/TypeUtilsTest.java | 74 +
.../org/apache/fluss/utils/UnionIteratorTest.java | 142 ++
.../org/apache/fluss/utils/VarLengthUtilsTest.java | 125 ++
.../apache/fluss/utils/WrappingProxyUtilTest.java | 67 +
.../fluss/utils/concurrent/ConjunctFutureTest.java | 261 +++
.../concurrent/ExecutorThreadFactoryTest.java | 82 +
.../fluss/utils/concurrent/FutureUtilsTest.java | 550 ++++++
.../ManuallyTriggeredScheduledExecutor.java | 45 +
.../fluss/utils/concurrent/SchedulerTest.java | 63 +
.../utils/concurrent/ShutdownableThreadTest.java | 46 +
.../org/apache/fluss/utils/crc/Crc32CTest.java | 138 ++
.../fluss/utils/function/FunctionUtilsTest.java | 51 +
.../utils/json/BucketOffsetJsonSerdeTest.java | 0
.../fluss/utils/json/ColumnJsonSerdeTest.java | 47 +
.../fluss/utils/json/DataTypeJsonSerdeTest.java | 146 ++
.../fluss/utils/json/JsonSerdeTestBase.java | 0
.../fluss/utils/json/SchemaJsonSerdeTest.java | 87 +
.../utils/json/TableDescriptorJsonSerdeTest.java | 73 +
.../utils/json/TablePartitionJsonSerdeTest.java | 44 +
.../fluss/utils/log/ByteBufferUnmapperTest.java | 41 +
.../fluss/utils/log/FairBucketStatusMapTest.java | 203 +++
.../org/apache/fluss/utils/types/EitherTest.java | 57 +
.../org/apache/fluss/utils/types/TupleTest.java | 52 +
...libaba.fluss.security.auth.AuthenticationPlugin | 19 -
.../services/org.apache.fluss.fs.FileSystemPlugin | 17 +
...apache.fluss.security.auth.AuthenticationPlugin | 19 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
.../plugin-a/com.alibaba.fluss.plugin.TestSpi | 17 -
.../plugin-a/org.apache.fluss.plugin.TestSpi | 17 +
.../plugin-b/com.alibaba.fluss.plugin.OtherTestSpi | 17 -
.../plugin-b/com.alibaba.fluss.plugin.TestSpi | 17 -
.../plugin-b/org.apache.fluss.plugin.OtherTestSpi | 17 +
.../plugin-b/org.apache.fluss.plugin.TestSpi | 17 +
fluss-dist/pom.xml | 18 +-
.../java/com/alibaba/fluss/dist/DummyClass.java | 21 -
.../java/org/apache/fluss/dist/DummyClass.java | 21 +
fluss-dist/src/main/resources/bin/fluss-console.sh | 4 +-
fluss-dist/src/main/resources/bin/fluss-daemon.sh | 4 +-
.../main/resources/conf/log4j-console.properties | 2 +-
.../src/main/resources/conf/log4j.properties | 2 +-
fluss-dist/src/main/resources/conf/logback.xml | 2 +-
fluss-filesystems/fluss-fs-gs/pom.xml | 10 +-
.../java/com/alibaba/fluss/fs/gs/GSFileSystem.java | 51 -
.../alibaba/fluss/fs/gs/GSFileSystemPlugin.java | 92 -
.../java/org/apache/fluss/fs/gs/GSFileSystem.java | 51 +
.../org/apache/fluss/fs/gs/GSFileSystemPlugin.java | 92 +
.../services/com.alibaba.fluss.fs.FileSystemPlugin | 2 +-
.../fluss/fs/gs/GSFileSystemBehaviorITCase.java | 12 +-
.../com/alibaba/fluss/fs/gs/MockAuthServer.java | 2 +-
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-filesystems/fluss-fs-hadoop-shaded/pom.xml | 12 +-
fluss-filesystems/fluss-fs-hadoop/pom.xml | 10 +-
.../fluss/fs/hdfs/HadoopDataInputStream.java | 137 --
.../fluss/fs/hdfs/HadoopDataOutputStream.java | 67 -
.../alibaba/fluss/fs/hdfs/HadoopFileStatus.java | 64 -
.../alibaba/fluss/fs/hdfs/HadoopFileSystem.java | 134 --
.../com/alibaba/fluss/fs/hdfs/HadoopFsPlugin.java | 179 --
.../fluss/fs/hdfs/HadoopSecurityTokenReceiver.java | 35 -
.../alibaba/fluss/fs/hdfs/utils/HadoopUtils.java | 191 --
.../fluss/fs/hdfs/HadoopDataInputStream.java | 137 ++
.../fluss/fs/hdfs/HadoopDataOutputStream.java | 67 +
.../org/apache/fluss/fs/hdfs/HadoopFileStatus.java | 64 +
.../org/apache/fluss/fs/hdfs/HadoopFileSystem.java | 134 ++
.../org/apache/fluss/fs/hdfs/HadoopFsPlugin.java | 179 ++
.../fluss/fs/hdfs/HadoopSecurityTokenReceiver.java | 35 +
.../apache/fluss/fs/hdfs/utils/HadoopUtils.java | 191 ++
.../services/com.alibaba.fluss.fs.FileSystemPlugin | 2 +-
...om.alibaba.fluss.fs.token.SecurityTokenReceiver | 2 +-
.../fluss/fs/hdfs/HadoopConfigLoadingTest.java | 8 +-
.../fluss/fs/hdfs/HadoopDataInputStreamTest.java | 4 +-
.../fluss/fs/hdfs/HadoopFreeFsPluginTest.java | 6 +-
.../com/alibaba/fluss/fs/hdfs/HadoopFreeTests.java | 6 +-
.../alibaba/fluss/fs/hdfs/HadoopFsPluginTest.java | 6 +-
.../fs/hdfs/HadoopLocalFileSystemBehaviorTest.java | 10 +-
.../alibaba/fluss/fs/hdfs/HdfsBehaviorTest.java | 16 +-
.../fluss/fs/hdfs/utils/HadoopUtilsTest.java | 18 +-
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-filesystems/fluss-fs-oss/pom.xml | 12 +-
.../com/alibaba/fluss/fs/oss/OSSFileSystem.java | 68 -
.../alibaba/fluss/fs/oss/OSSFileSystemPlugin.java | 171 --
.../DynamicTemporaryOssCredentialsProvider.java | 60 -
.../fs/oss/token/OSSSecurityTokenProvider.java | 107 --
.../fs/oss/token/OSSSecurityTokenReceiver.java | 108 --
.../org/apache/fluss/fs/oss/OSSFileSystem.java | 68 +
.../apache/fluss/fs/oss/OSSFileSystemPlugin.java | 171 ++
.../DynamicTemporaryOssCredentialsProvider.java | 60 +
.../fs/oss/token/OSSSecurityTokenProvider.java | 107 ++
.../fs/oss/token/OSSSecurityTokenReceiver.java | 108 ++
.../services/com.alibaba.fluss.fs.FileSystemPlugin | 2 +-
...om.alibaba.fluss.fs.token.SecurityTokenReceiver | 2 +-
.../fluss/fs/oss/OSSFileSystemBehaviorITCase.java | 64 -
.../alibaba/fluss/fs/oss/OSSTestCredentials.java | 139 --
...redentialsProviderFileSystemBehaviorITCase.java | 65 -
.../OSSWithTokenFileSystemBehaviorBaseITCase.java | 41 -
.../oss/OSSWithTokenFileSystemBehaviorITCase.java | 72 -
.../fluss/fs/oss/OSSFileSystemBehaviorITCase.java | 64 +
.../apache/fluss/fs/oss/OSSTestCredentials.java | 139 ++
...redentialsProviderFileSystemBehaviorITCase.java | 65 +
.../OSSWithTokenFileSystemBehaviorBaseITCase.java | 41 +
.../oss/OSSWithTokenFileSystemBehaviorITCase.java | 72 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-filesystems/fluss-fs-s3/pom.xml | 10 +-
.../alibaba/fluss/fs/s3/S3AFileSystemPlugin.java | 27 -
.../java/com/alibaba/fluss/fs/s3/S3FileSystem.java | 65 -
.../alibaba/fluss/fs/s3/S3FileSystemPlugin.java | 141 --
.../DynamicTemporaryAWSCredentialsProvider.java | 62 -
.../fs/s3/token/S3ADelegationTokenReceiver.java | 26 -
.../fs/s3/token/S3DelegationTokenProvider.java | 100 --
.../fs/s3/token/S3DelegationTokenReceiver.java | 98 --
.../apache/fluss/fs/s3/S3AFileSystemPlugin.java | 27 +
.../java/org/apache/fluss/fs/s3/S3FileSystem.java | 65 +
.../org/apache/fluss/fs/s3/S3FileSystemPlugin.java | 141 ++
.../DynamicTemporaryAWSCredentialsProvider.java | 62 +
.../fs/s3/token/S3ADelegationTokenReceiver.java | 26 +
.../fs/s3/token/S3DelegationTokenProvider.java | 100 ++
.../fs/s3/token/S3DelegationTokenReceiver.java | 98 ++
...Plugin => org.apache.fluss.fs.FileSystemPlugin} | 0
...rg.apache.fluss.fs.token.SecurityTokenReceiver} | 0
.../fluss/fs/s3/S3FileSystemBehaviorITCase.java | 53 -
.../com/alibaba/fluss/fs/s3/S3TestCredentials.java | 125 --
.../fs/s3/S3WithTokenFileSystemBehaviorITCase.java | 74 -
.../fluss/fs/s3/S3FileSystemBehaviorITCase.java | 53 +
.../org/apache/fluss/fs/s3/S3TestCredentials.java | 125 ++
.../fs/s3/S3WithTokenFileSystemBehaviorITCase.java | 74 +
fluss-filesystems/pom.xml | 2 +-
fluss-flink/fluss-flink-1.18/pom.xml | 22 +-
.../org.apache.flink.table.factories.Factory | 2 +-
.../flink/catalog/Flink118CatalogFactoryTest.java | 21 -
.../fluss/flink/catalog/Flink118CatalogITCase.java | 21 -
.../flink/catalog/Flink118TableFactoryTest.java | 21 -
.../fluss/flink/metrics/Flink118MetricsITCase.java | 21 -
.../flink/procedure/Flink118ProcedureITCase.java | 42 -
.../security/acl/Flink118AuthorizationITCase.java | 21 -
.../fluss/flink/sink/Flink118TableSinkITCase.java | 21 -
.../source/Flink118TableSourceBatchITCase.java | 21 -
.../source/Flink118TableSourceFailOverITCase.java | 21 -
.../flink/source/Flink118TableSourceITCase.java | 21 -
.../flink/catalog/Flink118CatalogFactoryTest.java | 21 +
.../fluss/flink/catalog/Flink118CatalogITCase.java | 21 +
.../flink/catalog/Flink118TableFactoryTest.java | 21 +
.../fluss/flink/metrics/Flink118MetricsITCase.java | 21 +
.../flink/procedure/Flink118ProcedureITCase.java | 42 +
.../security/acl/Flink118AuthorizationITCase.java | 21 +
.../fluss/flink/sink/Flink118TableSinkITCase.java | 21 +
.../source/Flink118TableSourceBatchITCase.java | 21 +
.../source/Flink118TableSourceFailOverITCase.java | 21 +
.../flink/source/Flink118TableSourceITCase.java | 21 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-flink/fluss-flink-1.19/pom.xml | 22 +-
.../org.apache.flink.table.factories.Factory | 2 +-
.../flink/catalog/Flink119CatalogFactoryTest.java | 21 -
.../fluss/flink/catalog/Flink119CatalogITCase.java | 21 -
.../flink/catalog/Flink119TableFactoryTest.java | 21 -
.../fluss/flink/metrics/Flink119MetricsITCase.java | 21 -
.../flink/procedure/Flink119ProcedureITCase.java | 21 -
.../security/acl/Flink119AuthorizationITCase.java | 21 -
.../fluss/flink/sink/Flink119TableSinkITCase.java | 21 -
.../source/Flink119TableSourceBatchITCase.java | 21 -
.../source/Flink119TableSourceFailOverITCase.java | 21 -
.../flink/source/Flink119TableSourceITCase.java | 21 -
.../flink/catalog/Flink119CatalogFactoryTest.java | 21 +
.../fluss/flink/catalog/Flink119CatalogITCase.java | 21 +
.../flink/catalog/Flink119TableFactoryTest.java | 21 +
.../fluss/flink/metrics/Flink119MetricsITCase.java | 21 +
.../flink/procedure/Flink119ProcedureITCase.java | 21 +
.../security/acl/Flink119AuthorizationITCase.java | 21 +
.../fluss/flink/sink/Flink119TableSinkITCase.java | 21 +
.../source/Flink119TableSourceBatchITCase.java | 21 +
.../source/Flink119TableSourceFailOverITCase.java | 21 +
.../flink/source/Flink119TableSourceITCase.java | 21 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-flink/fluss-flink-1.20/pom.xml | 22 +-
.../com/alibaba/fluss/flink/DummyClass120.java | 21 -
.../java/org/apache/fluss/flink/DummyClass120.java | 21 +
.../org.apache.flink.table.factories.Factory | 2 +-
.../flink/catalog/Flink120CatalogFactoryTest.java | 21 -
.../fluss/flink/catalog/Flink120CatalogITCase.java | 21 -
.../flink/catalog/Flink120TableFactoryTest.java | 21 -
.../fluss/flink/metrics/Flink120MetricsITCase.java | 21 -
.../flink/procedure/Flink120ProcedureITCase.java | 21 -
.../security/acl/Flink120AuthorizationITCase.java | 21 -
.../fluss/flink/sink/Flink120TableSinkITCase.java | 21 -
.../source/Flink120TableSourceBatchITCase.java | 21 -
.../source/Flink120TableSourceFailOverITCase.java | 21 -
.../flink/source/Flink120TableSourceITCase.java | 21 -
.../flink/catalog/Flink120CatalogFactoryTest.java | 21 +
.../fluss/flink/catalog/Flink120CatalogITCase.java | 21 +
.../flink/catalog/Flink120TableFactoryTest.java | 21 +
.../fluss/flink/metrics/Flink120MetricsITCase.java | 21 +
.../flink/procedure/Flink120ProcedureITCase.java | 21 +
.../security/acl/Flink120AuthorizationITCase.java | 21 +
.../fluss/flink/sink/Flink120TableSinkITCase.java | 21 +
.../source/Flink120TableSourceBatchITCase.java | 21 +
.../source/Flink120TableSourceFailOverITCase.java | 21 +
.../flink/source/Flink120TableSourceITCase.java | 21 +
.../fluss/flink/catalog/Flink21CatalogITCase.java | 4 +
fluss-flink/fluss-flink-common/pom.xml | 14 +-
.../alibaba/fluss/flink/FlinkConnectorOptions.java | 170 --
.../fluss/flink/catalog/FlinkCatalogFactory.java | 68 -
.../fluss/flink/catalog/FlinkCatalogOptions.java | 33 -
.../com/alibaba/fluss/flink/lake/LakeCatalog.java | 4 +
.../fluss/flink/lake/LakeRecordRecordEmitter.java | 10 +
.../fluss/flink/lake/LakeSplitGenerator.java | 21 +
.../flink/lake/LakeSplitStateInitializer.java | 11 +
.../alibaba/fluss/flink/lake/LakeTableFactory.java | 4 +
.../fluss/flink/lake/reader/SortMergeReader.java | 52 +
.../flink/lake/state/LakeSnapshotSplitState.java | 6 +
.../alibaba/fluss/flink/metrics/FlinkCounter.java | 55 -
.../alibaba/fluss/flink/metrics/FlinkGauge.java | 35 -
.../fluss/flink/metrics/FlinkHistogram.java | 93 -
.../alibaba/fluss/flink/metrics/FlinkMeter.java | 50 -
.../fluss/flink/metrics/FlinkMetricRegistry.java | 151 --
.../flink/procedure/AbstractAclProcedure.java | 140 --
.../fluss/flink/procedure/AddAclProcedure.java | 85 -
.../fluss/flink/procedure/DropAclProcedure.java | 76 -
.../fluss/flink/procedure/ListAclProcedure.java | 135 --
.../fluss/flink/procedure/ProcedureBase.java | 31 -
.../fluss/flink/procedure/ProcedureManager.java | 90 -
.../alibaba/fluss/flink/row/FlinkAsFlussRow.java | 135 --
.../com/alibaba/fluss/flink/row/OperationType.java | 48 -
.../com/alibaba/fluss/flink/row/RowWithOp.java | 100 --
.../alibaba/fluss/flink/sink/ChannelComputer.java | 41 -
.../flink/sink/FlinkRowDataChannelComputer.java | 134 --
.../com/alibaba/fluss/flink/sink/FlinkSink.java | 221 ---
.../fluss/flink/sink/FlinkStreamPartitioner.java | 77 -
.../alibaba/fluss/flink/sink/FlinkTableSink.java | 385 ----
.../com/alibaba/fluss/flink/sink/FlussSink.java | 55 -
.../alibaba/fluss/flink/sink/FlussSinkBuilder.java | 196 ---
.../sink/serializer/FlussSerializationSchema.java | 71 -
.../serializer/RowDataSerializationSchema.java | 120 --
.../sink/serializer/SerializerInitContextImpl.java | 40 -
.../fluss/flink/sink/writer/AppendSinkWriter.java | 75 -
.../fluss/flink/sink/writer/FlinkSinkWriter.java | 258 ---
.../fluss/flink/sink/writer/UpsertSinkWriter.java | 91 -
.../alibaba/fluss/flink/source/FlussSource.java | 101 --
.../fluss/flink/source/FlussSourceBuilder.java | 305 ----
.../deserializer/DeserializerInitContextImpl.java | 57 -
.../deserializer/FlussDeserializationSchema.java | 107 --
.../deserializer/RowDataDeserializationSchema.java | 94 -
.../initializer/BucketOffsetsRetrieverImpl.java | 90 -
.../initializer/EarliestOffsetsInitializer.java | 52 -
.../initializer/LatestOffsetsInitializer.java | 41 -
.../initializer/NoStoppingOffsetsInitializer.java | 42 -
.../enumerator/initializer/OffsetsInitializer.java | 116 --
.../initializer/SnapshotOffsetsInitializer.java | 46 -
.../initializer/TimestampOffsetsInitializer.java | 46 -
.../event/PartitionBucketsUnsubscribedEvent.java | 66 -
.../flink/source/event/PartitionsRemovedEvent.java | 48 -
.../source/lookup/FlinkAsyncLookupFunction.java | 229 ---
.../flink/source/lookup/FlinkLookupFunction.java | 182 --
.../flink/source/lookup/LookupNormalizer.java | 339 ----
.../source/metrics/FlinkSourceReaderMetrics.java | 129 --
.../flink/source/reader/BoundedSplitReader.java | 189 --
.../source/reader/FlinkRecordsWithSplitIds.java | 160 --
.../flink/source/reader/MutableRecordAndPos.java | 38 -
.../fluss/flink/source/reader/RecordAndPos.java | 92 -
.../fluss/flink/source/reader/SplitScanner.java | 33 -
.../flink/source/split/HybridSnapshotLogSplit.java | 110 --
.../source/split/HybridSnapshotLogSplitState.java | 59 -
.../alibaba/fluss/flink/source/split/LogSplit.java | 104 --
.../fluss/flink/source/split/LogSplitState.java | 46 -
.../fluss/flink/source/split/SnapshotSplit.java | 91 -
.../fluss/flink/source/split/SourceSplitBase.java | 120 --
.../fluss/flink/source/split/SourceSplitState.java | 54 -
.../FlussSourceEnumeratorStateSerializer.java | 112 --
.../flink/source/state/SourceEnumeratorState.java | 77 -
.../fluss/flink/tiering/LakeTieringJobBuilder.java | 115 --
.../tiering/committer/CommittableMessage.java | 35 -
.../committer/CommittableMessageTypeInfo.java | 144 --
.../committer/TieringCommitOperatorFactory.java | 63 -
.../committer/TieringCommitterInitContext.java | 37 -
.../flink/tiering/event/FailedTieringEvent.java | 43 -
.../flink/tiering/event/FinishedTieringEvent.java | 36 -
.../tiering/source/TableBucketWriteResult.java | 96 -
.../source/TableBucketWriteResultEmitter.java | 39 -
.../source/TableBucketWriteResultSerializer.java | 142 --
.../source/TableBucketWriteResultTypeInfo.java | 120 --
.../flink/tiering/source/TieringSourceOptions.java | 37 -
.../flink/tiering/source/TieringSourceReader.java | 88 -
.../flink/tiering/source/TieringSplitReader.java | 544 ------
.../tiering/source/TieringWriterInitContext.java | 76 -
.../source/enumerator/TieringSourceEnumerator.java | 468 -----
.../tiering/source/split/TieringLogSplit.java | 121 --
.../tiering/source/split/TieringSnapshotSplit.java | 123 --
.../flink/tiering/source/split/TieringSplit.java | 138 --
.../source/split/TieringSplitGenerator.java | 326 ----
.../source/split/TieringSplitSerializer.java | 158 --
.../source/state/TieringSourceEnumeratorState.java | 41 -
.../TieringSourceEnumeratorStateSerializer.java | 51 -
.../tiering/source/state/TieringSplitState.java | 60 -
.../fluss/flink/utils/CatalogExceptionUtils.java | 75 -
.../fluss/flink/utils/CatalogPropertiesUtils.java | 378 ----
.../alibaba/fluss/flink/utils/DataLakeUtils.java | 65 -
.../flink/utils/FlinkConnectorOptionsUtils.java | 156 --
.../flink/utils/FlinkRowToFlussRowConverter.java | 183 --
.../fluss/flink/utils/FlinkTypeToFlussType.java | 176 --
.../com/alibaba/fluss/flink/utils/FlinkUtils.java | 41 -
.../flink/utils/FlussRowToFlinkRowConverter.java | 154 --
.../fluss/flink/utils/FlussTypeToFlinkType.java | 177 --
.../fluss/flink/utils/PojoToRowConverter.java | 352 ----
.../alibaba/fluss/flink/utils/PushdownUtils.java | 458 -----
.../com/alibaba/fluss/flink/utils/TimeFormats.java | 90 -
.../alibaba/fluss/flink/utils/TimestampFormat.java | 38 -
.../apache/fluss/flink/FlinkConnectorOptions.java | 170 ++
.../apache}/fluss/flink/catalog/FlinkCatalog.java | 0
.../fluss/flink/catalog/FlinkCatalogFactory.java | 68 +
.../fluss/flink/catalog/FlinkCatalogOptions.java | 33 +
.../fluss/flink/catalog/FlinkTableFactory.java | 0
.../apache/fluss/flink/metrics/FlinkCounter.java | 55 +
.../org/apache/fluss/flink/metrics/FlinkGauge.java | 35 +
.../apache/fluss/flink/metrics/FlinkHistogram.java | 93 +
.../org/apache/fluss/flink/metrics/FlinkMeter.java | 50 +
.../fluss/flink/metrics/FlinkMetricRegistry.java | 151 ++
.../flink/procedure/AbstractAclProcedure.java | 140 ++
.../fluss/flink/procedure/AddAclProcedure.java | 85 +
.../fluss/flink/procedure/DropAclProcedure.java | 76 +
.../fluss/flink/procedure/ListAclProcedure.java | 135 ++
.../fluss/flink/procedure/ProcedureBase.java | 31 +
.../fluss/flink/procedure/ProcedureManager.java | 90 +
.../apache/fluss/flink/row/FlinkAsFlussRow.java | 135 ++
.../org/apache/fluss/flink/row/OperationType.java | 48 +
.../java/org/apache/fluss/flink/row/RowWithOp.java | 100 ++
.../apache/fluss/flink/sink/ChannelComputer.java | 41 +
.../flink/sink/FlinkRowDataChannelComputer.java | 134 ++
.../org/apache/fluss/flink/sink/FlinkSink.java | 221 +++
.../fluss/flink/sink/FlinkStreamPartitioner.java | 77 +
.../apache/fluss/flink/sink/FlinkTableSink.java | 385 ++++
.../org/apache/fluss/flink/sink/FlussSink.java | 55 +
.../apache/fluss/flink/sink/FlussSinkBuilder.java | 196 +++
.../sink/serializer/FlussSerializationSchema.java | 71 +
.../serializer/RowDataSerializationSchema.java | 120 ++
.../sink/serializer/SerializerInitContextImpl.java | 40 +
.../fluss/flink/sink/writer/AppendSinkWriter.java | 75 +
.../fluss/flink/sink/writer/FlinkSinkWriter.java | 258 +++
.../fluss/flink/sink/writer/UpsertSinkWriter.java | 91 +
.../apache}/fluss/flink/source/FlinkSource.java | 0
.../fluss/flink/source/FlinkTableSource.java | 0
.../org/apache/fluss/flink/source/FlussSource.java | 101 ++
.../fluss/flink/source/FlussSourceBuilder.java | 305 ++++
.../deserializer/DeserializerInitContextImpl.java | 57 +
.../deserializer/FlussDeserializationSchema.java | 107 ++
.../JsonStringDeserializationSchema.java | 0
.../deserializer/RowDataDeserializationSchema.java | 94 +
.../flink/source/emitter/FlinkRecordEmitter.java | 0
.../source/enumerator/FlinkSourceEnumerator.java | 0
.../initializer/BucketOffsetsRetrieverImpl.java | 90 +
.../initializer/EarliestOffsetsInitializer.java | 52 +
.../initializer/LatestOffsetsInitializer.java | 41 +
.../initializer/NoStoppingOffsetsInitializer.java | 42 +
.../enumerator/initializer/OffsetsInitializer.java | 116 ++
.../initializer/SnapshotOffsetsInitializer.java | 46 +
.../initializer/TimestampOffsetsInitializer.java | 46 +
.../event/PartitionBucketsUnsubscribedEvent.java | 66 +
.../flink/source/event/PartitionsRemovedEvent.java | 48 +
.../source/lookup/FlinkAsyncLookupFunction.java | 229 +++
.../flink/source/lookup/FlinkLookupFunction.java | 182 ++
.../flink/source/lookup/LookupNormalizer.java | 339 ++++
.../source/metrics/FlinkSourceReaderMetrics.java | 129 ++
.../flink/source/reader/BoundedSplitReader.java | 189 ++
.../source/reader/FlinkRecordsWithSplitIds.java | 160 ++
.../flink/source/reader/FlinkSourceReader.java | 0
.../source/reader/FlinkSourceSplitReader.java | 0
.../flink/source/reader/MutableRecordAndPos.java | 38 +
.../fluss/flink/source/reader/RecordAndPos.java | 92 +
.../fluss/flink/source/reader/SplitScanner.java | 33 +
.../reader/fetcher/FlinkSourceFetcherManager.java | 0
.../flink/source/split/HybridSnapshotLogSplit.java | 110 ++
.../source/split/HybridSnapshotLogSplitState.java | 59 +
.../apache/fluss/flink/source/split/LogSplit.java | 104 ++
.../fluss/flink/source/split/LogSplitState.java | 46 +
.../fluss/flink/source/split/SnapshotSplit.java | 91 +
.../fluss/flink/source/split/SourceSplitBase.java | 120 ++
.../flink/source/split/SourceSplitSerializer.java | 0
.../fluss/flink/source/split/SourceSplitState.java | 54 +
.../FlussSourceEnumeratorStateSerializer.java | 112 ++
.../flink/source/state/SourceEnumeratorState.java | 77 +
.../fluss/flink/tiering/LakeTieringJobBuilder.java | 115 ++
.../tiering/committer/CommittableMessage.java | 35 +
.../committer/CommittableMessageTypeInfo.java | 144 ++
.../tiering/committer/FlussTableLakeSnapshot.java | 0
.../committer/FlussTableLakeSnapshotCommitter.java | 0
.../tiering/committer/TieringCommitOperator.java | 0
.../committer/TieringCommitOperatorFactory.java | 63 +
.../committer/TieringCommitterInitContext.java | 37 +
.../flink/tiering/event/FailedTieringEvent.java | 43 +
.../flink/tiering/event/FinishedTieringEvent.java | 36 +
.../tiering/source/TableBucketWriteResult.java | 96 +
.../source/TableBucketWriteResultEmitter.java | 39 +
.../source/TableBucketWriteResultSerializer.java | 142 ++
.../source/TableBucketWriteResultTypeInfo.java | 120 ++
.../fluss/flink/tiering/source/TieringSource.java | 0
.../flink/tiering/source/TieringSourceOptions.java | 37 +
.../flink/tiering/source/TieringSourceReader.java | 88 +
.../flink/tiering/source/TieringSplitReader.java | 544 ++++++
.../tiering/source/TieringWriterInitContext.java | 76 +
.../source/enumerator/TieringSourceEnumerator.java | 468 +++++
.../tiering/source/split/TieringLogSplit.java | 121 ++
.../tiering/source/split/TieringSnapshotSplit.java | 123 ++
.../flink/tiering/source/split/TieringSplit.java | 138 ++
.../source/split/TieringSplitGenerator.java | 326 ++++
.../source/split/TieringSplitSerializer.java | 158 ++
.../source/state/TieringSourceEnumeratorState.java | 41 +
.../TieringSourceEnumeratorStateSerializer.java | 51 +
.../tiering/source/state/TieringSplitState.java | 60 +
.../fluss/flink/utils/CatalogExceptionUtils.java | 75 +
.../fluss/flink/utils/CatalogPropertiesUtils.java | 378 ++++
.../apache/fluss/flink/utils/DataLakeUtils.java | 65 +
.../flink/utils/FlinkConnectorOptionsUtils.java | 156 ++
.../fluss/flink/utils/FlinkConversions.java | 0
.../flink/utils/FlinkRowToFlussRowConverter.java | 183 ++
.../fluss/flink/utils/FlinkTypeToFlussType.java | 176 ++
.../org/apache/fluss/flink/utils/FlinkUtils.java | 41 +
.../flink/utils/FlussRowToFlinkRowConverter.java | 154 ++
.../flink/utils/FlussRowToJsonConverters.java | 0
.../fluss/flink/utils/FlussTypeToFlinkType.java | 177 ++
.../apache}/fluss/flink/utils/LakeSourceUtils.java | 0
.../fluss/flink/utils/PojoToRowConverter.java | 352 ++++
.../apache/fluss/flink/utils/PushdownUtils.java | 458 +++++
.../org/apache/fluss/flink/utils/TimeFormats.java | 90 +
.../apache/fluss/flink/utils/TimestampFormat.java | 38 +
.../flink/catalog/FlinkCatalogFactoryTest.java | 142 --
.../fluss/flink/catalog/FlinkCatalogITCase.java | 667 -------
.../fluss/flink/catalog/FlinkCatalogTest.java | 801 ---------
.../fluss/flink/catalog/FlinkTableFactoryTest.java | 283 ---
.../fluss/flink/catalog/TestSchemaResolver.java | 139 --
.../fluss/flink/metrics/FlinkMetricsITCase.java | 200 ---
.../flink/procedure/FlinkProcedureITCase.java | 287 ---
.../fluss/flink/row/FlinkAsFlussRowTest.java | 156 --
.../com/alibaba/fluss/flink/row/RowWithOpTest.java | 108 --
.../sink/FlinkRowDataChannelComputerTest.java | 122 --
.../fluss/flink/sink/FlinkTableSinkITCase.java | 1094 ------------
.../fluss/flink/sink/FlussSinkBuilderTest.java | 187 --
.../alibaba/fluss/flink/sink/FlussSinkITCase.java | 393 -----
.../sink/serializer/OrderSerializationSchema.java | 93 -
.../serializer/OrderSerializationSchemaTest.java | 161 --
.../flink/sink/writer/FlinkSinkWriterTest.java | 233 ---
.../flink/sink/writer/MockWriterInitContext.java | 38 -
.../flink/source/FlinkTableSourceBatchITCase.java | 439 -----
.../source/FlinkTableSourceFailOverITCase.java | 232 ---
.../fluss/flink/source/FlussSourceBuilderTest.java | 306 ----
.../fluss/flink/source/FlussSourceITCase.java | 302 ----
.../FlussDeserializationSchemaTest.java | 265 ---
.../RowDataDeserializationSchemaTest.java | 173 --
.../source/emitter/FlinkRecordEmitterTest.java | 172 --
.../enumerator/FlinkSourceEnumeratorTest.java | 674 -------
.../source/lookup/FlinkLookupFunctionTest.java | 168 --
.../metrics/FlinkSourceReaderMetricsTest.java | 95 -
.../source/reader/BoundedSplitReaderTest.java | 139 --
.../flink/source/reader/FlinkSourceReaderTest.java | 186 --
.../source/reader/FlinkSourceSplitReaderTest.java | 473 -----
.../flink/source/reader/RecordAndPosTest.java | 56 -
.../source/split/SourceSplitSerializerTest.java | 74 -
.../state/SourceEnumeratorStateSerializerTest.java | 60 -
.../flink/source/state/SourceSplitStateTest.java | 97 --
.../source/testutils/FlinkRowAssertionsUtils.java | 125 --
.../flink/source/testutils/MockDataUtils.java | 146 --
.../fluss/flink/source/testutils/Order.java | 178 --
.../testutils/OrderDeserializationSchema.java | 99 --
.../fluss/flink/source/testutils/OrderPartial.java | 68 -
.../OrderPartialDeserializationSchema.java | 58 -
.../flink/source/testutils/RecordAndPosAssert.java | 62 -
.../flink/tiering/TestingLakeTieringFactory.java | 145 --
.../fluss/flink/tiering/TestingWriteResult.java | 32 -
.../committer/CommittableMessageTypeInfoTest.java | 34 -
.../tiering/committer/TestingCommittable.java | 36 -
.../committer/TestingCommittableSerializer.java | 57 -
.../TableBucketWriteResultSerializerTest.java | 77 -
.../source/TableBucketWriteResultTypeInfoTest.java | 34 -
.../source/TestingWriteResultSerializer.java | 48 -
.../tiering/source/TieringSplitReaderTest.java | 370 ----
.../flink/tiering/source/TieringTestBase.java | 350 ----
.../enumerator/TieringSourceEnumeratorTest.java | 700 --------
.../source/split/TieringSplitSerializerTest.java | 110 --
...TieringSourceEnumeratorStateSerializerTest.java | 42 -
.../source/state/TieringSplitStateTest.java | 55 -
.../fluss/flink/utils/CatalogTableTestUtils.java | 85 -
.../flink/utils/FlinkConnectorOptionsUtilTest.java | 61 -
.../fluss/flink/utils/FlinkConversionsTest.java | 290 ---
.../utils/FlinkRowToFlussRowConverterTest.java | 92 -
.../alibaba/fluss/flink/utils/FlinkTestBase.java | 309 ----
.../utils/FlussRowToFlinkRowConverterTest.java | 96 -
.../fluss/flink/utils/PojoToRowConverterTest.java | 478 -----
.../flink/catalog/FlinkCatalogFactoryTest.java | 142 ++
.../fluss/flink/catalog/FlinkCatalogITCase.java | 667 +++++++
.../fluss/flink/catalog/FlinkCatalogTest.java | 801 +++++++++
.../fluss/flink/catalog/FlinkTableFactoryTest.java | 283 +++
.../fluss/flink/catalog/TestSchemaResolver.java | 139 ++
.../fluss/flink/metrics/FlinkMetricsITCase.java | 200 +++
.../flink/procedure/FlinkProcedureITCase.java | 287 +++
.../fluss/flink/row/FlinkAsFlussRowTest.java | 156 ++
.../org/apache/fluss/flink/row/RowWithOpTest.java | 108 ++
.../security/acl/FlinkAuthorizationITCase.java | 0
.../sink/FlinkRowDataChannelComputerTest.java | 122 ++
.../fluss/flink/sink/FlinkTableSinkITCase.java | 1094 ++++++++++++
.../fluss/flink/sink/FlussSinkBuilderTest.java | 187 ++
.../apache/fluss/flink/sink/FlussSinkITCase.java | 393 +++++
.../sink/serializer/OrderSerializationSchema.java | 93 +
.../serializer/OrderSerializationSchemaTest.java | 161 ++
.../flink/sink/writer/FlinkSinkWriterTest.java | 233 +++
.../flink/sink/writer/MockWriterInitContext.java | 38 +
.../flink/source/FlinkTableSourceBatchITCase.java | 439 +++++
.../source/FlinkTableSourceFailOverITCase.java | 232 +++
.../fluss/flink/source/FlinkTableSourceITCase.java | 0
.../fluss/flink/source/FlussSourceBuilderTest.java | 306 ++++
.../fluss/flink/source/FlussSourceITCase.java | 302 ++++
.../FlussDeserializationSchemaTest.java | 265 +++
.../RowDataDeserializationSchemaTest.java | 173 ++
.../source/emitter/FlinkRecordEmitterTest.java | 172 ++
.../enumerator/FlinkSourceEnumeratorTest.java | 674 +++++++
.../source/lookup/FlinkLookupFunctionTest.java | 168 ++
.../metrics/FlinkSourceReaderMetricsTest.java | 95 +
.../source/reader/BoundedSplitReaderTest.java | 139 ++
.../flink/source/reader/FlinkSourceReaderTest.java | 186 ++
.../source/reader/FlinkSourceSplitReaderTest.java | 473 +++++
.../flink/source/reader/RecordAndPosTest.java | 56 +
.../source/split/SourceSplitSerializerTest.java | 74 +
.../state/SourceEnumeratorStateSerializerTest.java | 60 +
.../flink/source/state/SourceSplitStateTest.java | 97 ++
.../source/testutils/FlinkRowAssertionsUtils.java | 125 ++
.../flink/source/testutils/MockDataUtils.java | 146 ++
.../apache/fluss/flink/source/testutils/Order.java | 178 ++
.../testutils/OrderDeserializationSchema.java | 99 ++
.../fluss/flink/source/testutils/OrderPartial.java | 68 +
.../OrderPartialDeserializationSchema.java | 58 +
.../flink/source/testutils/RecordAndPosAssert.java | 62 +
.../flink/tiering/TestingLakeTieringFactory.java | 145 ++
.../fluss/flink/tiering/TestingWriteResult.java | 32 +
.../committer/CommittableMessageTypeInfoTest.java | 34 +
.../FlussTableLakeSnapshotCommitterTest.java | 0
.../tiering/committer/TestingCommittable.java | 36 +
.../committer/TestingCommittableSerializer.java | 57 +
.../committer/TieringCommitOperatorTest.java | 0
.../TableBucketWriteResultSerializerTest.java | 77 +
.../source/TableBucketWriteResultTypeInfoTest.java | 34 +
.../source/TestingWriteResultSerializer.java | 48 +
.../tiering/source/TieringSplitReaderTest.java | 370 ++++
.../flink/tiering/source/TieringTestBase.java | 350 ++++
.../enumerator/TieringSourceEnumeratorTest.java | 700 ++++++++
.../source/split/TieringSplitSerializerTest.java | 110 ++
...TieringSourceEnumeratorStateSerializerTest.java | 42 +
.../source/state/TieringSplitStateTest.java | 55 +
.../fluss/flink/utils/CatalogTableTestUtils.java | 85 +
.../flink/utils/FlinkConnectorOptionsUtilTest.java | 61 +
.../fluss/flink/utils/FlinkConversionsTest.java | 290 +++
.../utils/FlinkRowToFlussRowConverterTest.java | 92 +
.../apache/fluss/flink/utils/FlinkTestBase.java | 309 ++++
.../utils/FlussRowToFlinkRowConverterTest.java | 96 +
.../fluss/flink/utils/PojoToRowConverterTest.java | 478 +++++
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-flink/fluss-flink-tiering/pom.xml | 6 +-
.../flink/tiering/FlussLakeTieringEntrypoint.java | 93 -
.../flink/tiering/FlussLakeTieringEntrypoint.java | 93 +
fluss-flink/pom.xml | 2 +-
fluss-jmh/pom.xml | 12 +-
.../fluss/jmh/ArrowReadableChannelBenchmark.java | 26 +-
.../fluss/jmh/ArrowWritableChannelBenchmark.java | 22 +
.../com/alibaba/fluss/jmh/LogScannerBenchmark.java | 38 +-
.../alibaba/fluss/kafka/KafkaRequestHandler.java | 246 ---
.../fluss/kafka/KafkaChannelInitializer.java | 0
.../apache}/fluss/kafka/KafkaCommandDecoder.java | 0
.../apache}/fluss/kafka/KafkaProtocolPlugin.java | 0
.../apache}/fluss/kafka/KafkaRequest.java | 0
.../apache/fluss/kafka/KafkaRequestHandler.java | 246 +++
...libaba.fluss.rpc.protocol.NetworkProtocolPlugin | 19 -
...apache.fluss.rpc.protocol.NetworkProtocolPlugin | 19 +
.../com/alibaba/fluss/kafka/KafkaConfigsTest.java | 56 -
.../alibaba/fluss/kafka/KafkaRequestITCase.java | 162 --
.../fluss/kafka/TestingChannelHandlerContext.java | 241 ---
.../org/apache/fluss/kafka/KafkaConfigsTest.java | 56 +
.../fluss/kafka/KafkaRequestHandlerTest.java | 0
.../org/apache/fluss/kafka/KafkaRequestITCase.java | 162 ++
.../fluss/kafka/TestingChannelHandlerContext.java | 241 +++
.../org.junit.jupiter.api.extension.Extension | 2 +-
.../fluss/lake/lance/tiering/LanceWriteResult.java | 4 +
fluss-lake/fluss-lake-paimon/pom.xml | 18 +-
.../lake/paimon/FlussDataTypeToPaimonDataType.java | 169 --
.../fluss/lake/paimon/PaimonLakeCatalog.java | 197 ---
.../fluss/lake/paimon/PaimonLakeStoragePlugin.java | 38 -
.../lake/paimon/source/FlussRowAsPaimonRow.java | 15 +
.../lake/paimon/tiering/PaimonCatalogProvider.java | 44 -
.../lake/paimon/tiering/PaimonCommittable.java | 34 -
.../tiering/PaimonCommittableSerializer.java | 61 -
.../paimon/tiering/PaimonLakeTieringFactory.java | 63 -
.../lake/paimon/tiering/PaimonLakeWriter.java | 105 --
.../lake/paimon/tiering/PaimonWriteResult.java | 38 -
.../tiering/PaimonWriteResultSerializer.java | 58 -
.../fluss/lake/paimon/tiering/RecordWriter.java | 69 -
.../paimon/tiering/append/AppendOnlyWriter.java | 61 -
.../paimon/tiering/mergetree/MergeTreeWriter.java | 76 -
.../lake/paimon/utils/PaimonRowAsFlussRow.java | 141 --
.../lake/paimon/FlussDataTypeToPaimonDataType.java | 169 ++
.../fluss/lake/paimon/PaimonLakeCatalog.java | 197 +++
.../fluss/lake/paimon/PaimonLakeStorage.java | 0
.../fluss/lake/paimon/PaimonLakeStoragePlugin.java | 38 +
.../paimon/tiering/FlussRecordAsPaimonRow.java | 0
.../lake/paimon/tiering/PaimonCatalogProvider.java | 44 +
.../lake/paimon/tiering/PaimonCommittable.java | 34 +
.../tiering/PaimonCommittableSerializer.java | 61 +
.../lake/paimon/tiering/PaimonLakeCommitter.java | 0
.../paimon/tiering/PaimonLakeTieringFactory.java | 63 +
.../lake/paimon/tiering/PaimonLakeWriter.java | 105 ++
.../lake/paimon/tiering/PaimonWriteResult.java | 38 +
.../tiering/PaimonWriteResultSerializer.java | 58 +
.../fluss/lake/paimon/tiering/RecordWriter.java | 69 +
.../paimon/tiering/append/AppendOnlyWriter.java | 61 +
.../paimon/tiering/mergetree/MergeTreeWriter.java | 76 +
.../utils/FlussToPaimonPredicateConverter.java | 0
.../fluss/lake/paimon/utils/PaimonConversions.java | 0
.../lake/paimon/utils/PaimonRowAsFlussRow.java | 145 ++
...libaba.fluss.lake.lakestorage.LakeStoragePlugin | 19 -
...apache.fluss.lake.lakestorage.LakeStoragePlugin | 19 +
.../lake/paimon/LakeEnabledTableCreateITCase.java | 438 -----
.../paimon/flink/FlinkUnionReadLogTableITCase.java | 250 ---
.../flink/FlinkUnionReadPrimaryKeyTableITCase.java | 568 ------
.../lake/paimon/flink/FlinkUnionReadTestBase.java | 55 -
.../paimon/tiering/FlussRecordAsPaimonRowTest.java | 166 --
.../tiering/ReCreateSameTableAfterTieringTest.java | 85 -
.../lake/paimon/LakeEnabledTableCreateITCase.java | 438 +++++
.../paimon/flink/FlinkUnionReadLogTableITCase.java | 250 +++
.../flink/FlinkUnionReadPrimaryKeyTableITCase.java | 568 ++++++
.../lake/paimon/flink/FlinkUnionReadTestBase.java | 55 +
.../testutils/FlinkPaimonTieringTestBase.java | 0
.../paimon/tiering/FlussRecordAsPaimonRowTest.java | 166 ++
.../lake/paimon/tiering/PaimonTieringITCase.java | 0
.../lake/paimon/tiering/PaimonTieringTest.java | 0
.../tiering/ReCreateSameTableAfterTieringTest.java | 85 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-lake/pom.xml | 2 +-
fluss-metrics/fluss-metrics-jmx/pom.xml | 8 +-
.../com/alibaba/fluss/metrics/jmx/JMXReporter.java | 418 -----
.../fluss/metrics/jmx/JMXReporterPlugin.java | 39 -
.../com/alibaba/fluss/metrics/jmx/JMXServer.java | 167 --
.../com/alibaba/fluss/metrics/jmx/JMXService.java | 104 --
.../org/apache/fluss/metrics/jmx/JMXReporter.java | 418 +++++
.../fluss/metrics/jmx/JMXReporterPlugin.java | 39 +
.../org/apache/fluss/metrics/jmx/JMXServer.java | 167 ++
.../org/apache/fluss/metrics/jmx/JMXService.java | 104 ++
...aba.fluss.metrics.reporter.MetricReporterPlugin | 20 -
...che.fluss.metrics.reporter.MetricReporterPlugin | 20 +
.../fluss/metrics/jmx/JMXReporterPluginTest.java | 73 -
.../alibaba/fluss/metrics/jmx/JMXReporterTest.java | 275 ---
.../alibaba/fluss/metrics/jmx/JMXServerTest.java | 95 -
.../alibaba/fluss/metrics/jmx/JMXServiceTest.java | 48 -
.../fluss/metrics/jmx/JMXReporterPluginTest.java | 73 +
.../apache/fluss/metrics/jmx/JMXReporterTest.java | 275 +++
.../apache/fluss/metrics/jmx/JMXServerTest.java | 95 +
.../apache/fluss/metrics/jmx/JMXServiceTest.java | 48 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-metrics/fluss-metrics-prometheus/pom.xml | 8 +-
.../metrics/prometheus/PrometheusReporter.java | 406 -----
.../prometheus/PrometheusReporterPlugin.java | 49 -
.../metrics/prometheus/PrometheusReporter.java | 406 +++++
.../prometheus/PrometheusReporterPlugin.java | 49 +
...aba.fluss.metrics.reporter.MetricReporterPlugin | 20 -
...che.fluss.metrics.reporter.MetricReporterPlugin | 20 +
.../PrometheusReporterDifferentLabelValueTest.java | 272 ---
.../fluss/metrics/prometheus/TestUtils.java | 48 -
.../PrometheusReporterDifferentLabelValueTest.java | 272 +++
.../metrics/prometheus/PrometheusReporterTest.java | 0
.../apache/fluss/metrics/prometheus/TestUtils.java | 48 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-metrics/pom.xml | 2 +-
fluss-protogen/fluss-protogen-generator/pom.xml | 4 +-
.../generator/generator/NameUtilities.java | 77 -
.../protogen/generator/generator/ProtoGen.java | 133 --
.../generator/ProtobufAbstractRepeated.java | 47 -
.../generator/generator/ProtobufBooleanField.java | 46 -
.../generator/generator/ProtobufBytesField.java | 106 --
.../protogen/generator/generator/ProtobufEnum.java | 69 -
.../generator/generator/ProtobufEnumField.java | 39 -
.../generator/generator/ProtobufField.java | 174 --
.../generator/generator/ProtobufMessage.java | 376 ----
.../generator/generator/ProtobufMessageField.java | 116 --
.../generator/generator/ProtobufRecordsField.java | 197 ---
.../generator/ProtobufRepeatedBytesField.java | 162 --
.../generator/ProtobufRepeatedEnumField.java | 60 -
.../generator/ProtobufRepeatedMessageField.java | 186 --
.../generator/ProtobufRepeatedNumberField.java | 208 ---
.../generator/ProtobufRepeatedStringField.java | 184 --
.../generator/generator/ProtobufStringField.java | 129 --
.../generator/generator/RecordsFieldFinder.java | 42 -
.../generator/generator/NameUtilities.java | 77 +
.../generator/generator/ProtoCodeGenerator.java | 0
.../protogen/generator/generator/ProtoGen.java | 133 ++
.../protogen/generator/generator/ProtoGenUtil.java | 0
.../generator/ProtobufAbstractRepeated.java | 47 +
.../generator/generator/ProtobufBooleanField.java | 46 +
.../generator/generator/ProtobufBytesField.java | 106 ++
.../protogen/generator/generator/ProtobufEnum.java | 69 +
.../generator/generator/ProtobufEnumField.java | 39 +
.../generator/generator/ProtobufField.java | 174 ++
.../generator/generator/ProtobufMessage.java | 376 ++++
.../generator/generator/ProtobufMessageField.java | 116 ++
.../generator/generator/ProtobufNumberField.java | 0
.../generator/generator/ProtobufRecordsField.java | 197 +++
.../generator/ProtobufRepeatedBytesField.java | 162 ++
.../generator/ProtobufRepeatedEnumField.java | 60 +
.../generator/ProtobufRepeatedMessageField.java | 186 ++
.../generator/ProtobufRepeatedNumberField.java | 208 +++
.../generator/ProtobufRepeatedStringField.java | 184 ++
.../generator/generator/ProtobufStringField.java | 129 ++
.../generator/generator/RecordsFieldFinder.java | 42 +
fluss-protogen/fluss-protogen-maven-plugin/pom.xml | 4 +-
.../fluss/protogen/maven/plugin/ProtoGenMojo.java | 112 --
.../fluss/protogen/maven/plugin/ProtoGenMojo.java | 112 ++
fluss-protogen/fluss-protogen-tests/pom.xml | 10 +-
.../fluss/protogen/benchmark/ProtoBenchmark.java | 0
.../fluss/protogen/benchmark/SimpleBenchmark.java | 0
.../benchmark/StringEncodingBenchmark.java | 0
.../src/main/proto/addressbook.proto | 2 +-
.../src/main/proto/bytes.proto | 2 +-
.../src/main/proto/enums.proto | 2 +-
.../src/main/proto/messages.proto | 2 +-
.../src/main/proto/numbers.proto | 2 +-
.../src/main/proto/point_frame.proto | 2 +-
.../src/main/proto/repeated_numbers.proto | 2 +-
.../src/main/proto/required.proto | 2 +-
.../src/main/proto/strings.proto | 2 +-
.../fluss/protogen/tests/AddressBookTest.java | 0
.../apache}/fluss/protogen/tests/BytesTest.java | 0
.../apache}/fluss/protogen/tests/EnumsTest.java | 0
.../apache}/fluss/protogen/tests/MessagesTest.java | 0
.../apache}/fluss/protogen/tests/NumbersTest.java | 0
.../fluss/protogen/tests/RepeatedNumbersTest.java | 0
.../apache}/fluss/protogen/tests/RequiredTest.java | 0
.../apache}/fluss/protogen/tests/StringsTest.java | 0
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-protogen/pom.xml | 2 +-
fluss-rpc/pom.xml | 10 +-
.../com/alibaba/fluss/rpc/GatewayClientProxy.java | 82 -
.../main/java/com/alibaba/fluss/rpc/RpcClient.java | 81 -
.../com/alibaba/fluss/rpc/RpcGatewayService.java | 88 -
.../main/java/com/alibaba/fluss/rpc/RpcServer.java | 82 -
.../fluss/rpc/entity/FetchLogResultForBucket.java | 105 --
.../fluss/rpc/entity/LimitScanResultForBucket.java | 72 -
.../rpc/entity/ListOffsetsResultForBucket.java | 78 -
.../fluss/rpc/entity/LookupResultForBucket.java | 47 -
.../rpc/entity/PrefixLookupResultForBucket.java | 48 -
.../rpc/entity/ProduceLogResultForBucket.java | 71 -
.../fluss/rpc/entity/PutKvResultForBucket.java | 42 -
.../alibaba/fluss/rpc/entity/ResultForBucket.java | 104 --
.../fluss/rpc/entity/WriteResultForBucket.java | 64 -
.../alibaba/fluss/rpc/gateway/AdminGateway.java | 109 --
.../fluss/rpc/gateway/AdminReadOnlyGateway.java | 190 --
.../fluss/rpc/gateway/CoordinatorGateway.java | 81 -
.../fluss/rpc/gateway/TabletServerGateway.java | 175 --
.../fluss/rpc/metrics/ClientMetricGroup.java | 55 -
.../fluss/rpc/metrics/ConnectionMetricGroup.java | 128 --
.../fluss/rpc/netty/NettyChannelInitializer.java | 60 -
.../com/alibaba/fluss/rpc/netty/NettyUtils.java | 121 --
.../rpc/netty/client/ClientHandlerCallback.java | 57 -
.../fluss/rpc/netty/client/ServerApiVersions.java | 93 -
.../rpc/netty/server/FlussRequestHandler.java | 86 -
.../fluss/rpc/netty/server/RequestChannel.java | 75 -
.../fluss/rpc/netty/server/RequestHandler.java | 34 -
.../fluss/rpc/netty/server/RequestProcessor.java | 117 --
.../rpc/netty/server/RequestProcessorPool.java | 129 --
.../fluss/rpc/netty/server/RequestsMetrics.java | 187 --
.../alibaba/fluss/rpc/netty/server/RpcRequest.java | 30 -
.../alibaba/fluss/rpc/netty/server/Session.java | 65 -
.../fluss/rpc/netty/server/ShutdownRequest.java | 38 -
.../com/alibaba/fluss/rpc/protocol/ApiError.java | 154 --
.../com/alibaba/fluss/rpc/protocol/ApiKeys.java | 117 --
.../com/alibaba/fluss/rpc/protocol/Errors.java | 341 ----
.../java/com/alibaba/fluss/rpc/protocol/RPC.java | 35 -
.../alibaba/fluss/rpc/protocol/RequestType.java | 31 -
.../alibaba/fluss/rpc/protocol/ResponseType.java | 54 -
.../org/apache/fluss/rpc/GatewayClientProxy.java | 82 +
.../main/java/org/apache/fluss/rpc/RpcClient.java | 81 +
.../apache}/fluss/rpc/RpcGateway.java | 0
.../org/apache/fluss/rpc/RpcGatewayService.java | 88 +
.../main/java/org/apache/fluss/rpc/RpcServer.java | 82 +
.../fluss/rpc/entity/FetchLogResultForBucket.java | 105 ++
.../fluss/rpc/entity/LimitScanResultForBucket.java | 72 +
.../rpc/entity/ListOffsetsResultForBucket.java | 78 +
.../fluss/rpc/entity/LookupResultForBucket.java | 47 +
.../rpc/entity/PrefixLookupResultForBucket.java | 48 +
.../rpc/entity/ProduceLogResultForBucket.java | 71 +
.../fluss/rpc/entity/PutKvResultForBucket.java | 42 +
.../apache/fluss/rpc/entity/ResultForBucket.java | 104 ++
.../fluss/rpc/entity/WriteResultForBucket.java | 64 +
.../org/apache/fluss/rpc/gateway/AdminGateway.java | 109 ++
.../fluss/rpc/gateway/AdminReadOnlyGateway.java | 190 ++
.../fluss/rpc/gateway/CoordinatorGateway.java | 81 +
.../fluss/rpc/gateway/TabletServerGateway.java | 175 ++
.../fluss/rpc/metrics/ClientMetricGroup.java | 55 +
.../fluss/rpc/metrics/ConnectionMetricGroup.java | 128 ++
.../fluss/rpc/netty/NettyChannelInitializer.java | 60 +
.../apache}/fluss/rpc/netty/NettyLogger.java | 0
.../apache}/fluss/rpc/netty/NettyMetrics.java | 0
.../org/apache/fluss/rpc/netty/NettyUtils.java | 121 ++
.../rpc/netty/client/ClientChannelInitializer.java | 0
.../rpc/netty/client/ClientHandlerCallback.java | 57 +
.../fluss/rpc/netty/client/NettyClient.java | 0
.../fluss/rpc/netty/client/NettyClientHandler.java | 0
.../fluss/rpc/netty/client/ServerApiVersions.java | 93 +
.../fluss/rpc/netty/client/ServerConnection.java | 0
.../rpc/netty/server/FlussProtocolPlugin.java | 0
.../fluss/rpc/netty/server/FlussRequest.java | 0
.../rpc/netty/server/FlussRequestHandler.java | 86 +
.../fluss/rpc/netty/server/NettyServer.java | 0
.../fluss/rpc/netty/server/NettyServerHandler.java | 0
.../fluss/rpc/netty/server/RequestChannel.java | 75 +
.../fluss/rpc/netty/server/RequestHandler.java | 34 +
.../fluss/rpc/netty/server/RequestProcessor.java | 117 ++
.../rpc/netty/server/RequestProcessorPool.java | 129 ++
.../fluss/rpc/netty/server/RequestsMetrics.java | 187 ++
.../apache/fluss/rpc/netty/server/RpcRequest.java | 30 +
.../rpc/netty/server/ServerChannelInitializer.java | 0
.../org/apache/fluss/rpc/netty/server/Session.java | 65 +
.../fluss/rpc/netty/server/ShutdownRequest.java | 38 +
.../org/apache/fluss/rpc/protocol/ApiError.java | 154 ++
.../org/apache/fluss/rpc/protocol/ApiKeys.java | 117 ++
.../apache}/fluss/rpc/protocol/ApiManager.java | 0
.../apache}/fluss/rpc/protocol/ApiMethod.java | 0
.../java/org/apache/fluss/rpc/protocol/Errors.java | 341 ++++
.../apache}/fluss/rpc/protocol/MessageCodec.java | 0
.../fluss/rpc/protocol/NetworkProtocolPlugin.java | 0
.../java/org/apache/fluss/rpc/protocol/RPC.java | 35 +
.../org/apache/fluss/rpc/protocol/RequestType.java | 31 +
.../apache/fluss/rpc/protocol/ResponseType.java | 54 +
.../fluss/rpc/util/CommonRpcMessageUtils.java | 0
fluss-rpc/src/main/proto/FlussApi.proto | 4 +-
.../alibaba/fluss/rpc/TestingGatewayService.java | 75 -
.../fluss/rpc/TestingTabletGatewayService.java | 244 ---
.../rpc/metrics/TestingClientMetricGroup.java | 34 -
.../alibaba/fluss/rpc/netty/NettyMetricsTest.java | 102 --
.../rpc/netty/authenticate/AuthenticationTest.java | 271 ---
.../authenticate/MutualAuthenticationPlugin.java | 238 ---
.../authenticate/SaslAuthenticationITCase.java | 245 ---
.../fluss/rpc/netty/client/NettyClientTest.java | 254 ---
.../rpc/netty/client/ServerApiVersionsTest.java | 57 -
.../fluss/rpc/netty/server/NettyServerTest.java | 53 -
.../rpc/netty/server/TestingRequestChannel.java | 54 -
.../alibaba/fluss/rpc/protocol/ApiErrorTest.java | 85 -
.../alibaba/fluss/rpc/protocol/ApiKeysTest.java | 41 -
.../alibaba/fluss/rpc/protocol/ApiManagerTest.java | 156 --
.../apache/fluss/rpc/TestingGatewayService.java | 75 +
.../fluss/rpc/TestingTabletGatewayService.java | 244 +++
.../rpc/metrics/TestingClientMetricGroup.java | 34 +
.../apache/fluss/rpc/netty/NettyMetricsTest.java | 102 ++
.../rpc/netty/authenticate/AuthenticationTest.java | 271 +++
.../authenticate/MutualAuthenticationPlugin.java | 236 +++
.../authenticate/SaslAuthenticationITCase.java | 245 +++
.../fluss/rpc/netty/client/NettyClientTest.java | 254 +++
.../rpc/netty/client/ServerApiVersionsTest.java | 57 +
.../rpc/netty/server/NettyServerHandlerTest.java | 0
.../fluss/rpc/netty/server/NettyServerTest.java | 53 +
.../rpc/netty/server/TestingRequestChannel.java | 54 +
.../apache/fluss/rpc/protocol/ApiErrorTest.java | 85 +
.../org/apache/fluss/rpc/protocol/ApiKeysTest.java | 41 +
.../apache/fluss/rpc/protocol/ApiManagerTest.java | 156 ++
.../fluss/rpc/protocol/MessageCodecTest.java | 0
.../fluss/rpc/protocol/RequestChannelTest.java | 0
...libaba.fluss.security.auth.AuthenticationPlugin | 18 -
...apache.fluss.security.auth.AuthenticationPlugin | 18 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-server/pom.xml | 12 +-
.../com/alibaba/fluss/server/RpcServiceBase.java | 696 --------
.../alibaba/fluss/server/SequenceIDCounter.java | 29 -
.../alibaba/fluss/server/TabletManagerBase.java | 254 ---
.../server/authorizer/AbstractAuthorizer.java | 94 -
.../fluss/server/authorizer/AclCreateResult.java | 54 -
.../fluss/server/authorizer/AclDeleteResult.java | 84 -
.../alibaba/fluss/server/authorizer/Action.java | 40 -
.../server/authorizer/AuthorizationPlugin.java | 44 -
.../fluss/server/authorizer/Authorizer.java | 111 --
.../fluss/server/authorizer/AuthorizerLoader.java | 114 --
.../authorizer/DefaultAuthorizationPlugin.java | 32 -
.../fluss/server/cli/CommandLineOptions.java | 47 -
.../fluss/server/cli/CommandLineParser.java | 59 -
.../fluss/server/cli/ParserResultFactory.java | 49 -
.../fluss/server/cli/ServerConfiguration.java | 59 -
.../cli/ServerConfigurationParserFactory.java | 57 -
.../server/coordinator/AutoPartitionManager.java | 494 ------
.../coordinator/CompletedSnapshotStoreManager.java | 143 --
.../coordinator/CoordinatorChannelManager.java | 200 ---
.../server/coordinator/CoordinatorContext.java | 640 -------
.../coordinator/CoordinatorRequestBatch.java | 706 --------
.../server/coordinator/CoordinatorService.java | 653 -------
.../coordinator/LakeTableTieringManager.java | 540 ------
.../server/coordinator/RemoteStorageCleaner.java | 89 -
.../fluss/server/coordinator/TableManager.java | 317 ----
.../coordinator/event/AccessContextEvent.java | 49 -
.../coordinator/event/AdjustIsrReceivedEvent.java | 46 -
.../coordinator/event/CommitKvSnapshotEvent.java | 62 -
.../event/CommitLakeTableSnapshotEvent.java | 46 -
.../event/CommitRemoteLogManifestEvent.java | 60 -
.../server/coordinator/event/CoordinatorEvent.java | 21 -
.../coordinator/event/CreatePartitionEvent.java | 105 --
.../server/coordinator/event/CreateTableEvent.java | 75 -
.../coordinator/event/DeadTabletServerEvent.java | 56 -
.../event/DeleteReplicaResponseReceivedEvent.java | 37 -
.../coordinator/event/DropPartitionEvent.java | 79 -
.../server/coordinator/event/DropTableEvent.java | 79 -
.../server/coordinator/event/EventManager.java | 24 -
.../server/coordinator/event/EventProcessor.java | 23 -
.../coordinator/event/FencedCoordinatorEvent.java | 45 -
.../coordinator/event/NewTabletServerEvent.java | 58 -
.../NotifyLeaderAndIsrResponseReceivedEvent.java | 47 -
.../event/ShutdownEventThreadEvent.java | 21 -
.../server/coordinator/statemachine/BaseState.java | 25 -
.../coordinator/statemachine/BucketState.java | 51 -
.../ReplicaLeaderElectionAlgorithms.java | 37 -
.../coordinator/statemachine/ReplicaState.java | 65 -
.../statemachine/ReplicaStateMachine.java | 480 -----
.../server/entity/AdjustIsrResultForBucket.java | 47 -
.../server/entity/BatchRegisterLeadAndIsr.java | 73 -
.../fluss/server/entity/CommitKvSnapshotData.java | 53 -
.../server/entity/CommitLakeTableSnapshotData.java | 60 -
.../server/entity/CommitRemoteLogManifestData.java | 127 --
.../entity/DeleteReplicaResultForBucket.java | 50 -
.../alibaba/fluss/server/entity/FetchReqInfo.java | 107 --
.../fluss/server/entity/LakeBucketOffset.java | 46 -
.../fluss/server/entity/LakeTieringTableInfo.java | 76 -
.../server/entity/NotifyKvSnapshotOffsetData.java | 59 -
.../server/entity/NotifyLakeTableOffsetData.java | 45 -
.../server/entity/NotifyLeaderAndIsrData.java | 88 -
.../entity/NotifyLeaderAndIsrResultForBucket.java | 38 -
.../server/entity/NotifyRemoteLogOffsetsData.java | 68 -
.../entity/RegisterTableBucketLeadAndIsrInfo.java | 61 -
.../fluss/server/entity/StopReplicaData.java | 53 -
.../server/entity/StopReplicaResultForBucket.java | 42 -
.../server/exception/CorruptIndexException.java | 33 -
.../exception/EndpointNotAvailableException.java | 25 -
.../server/exception/FlussParseException.java | 30 -
.../server/exception/KvBuildingException.java | 28 -
.../com/alibaba/fluss/server/kv/KvBatchWriter.java | 38 -
.../alibaba/fluss/server/kv/KvRecoverHelper.java | 251 ---
.../fluss/server/kv/KvSnapshotResource.java | 136 --
.../server/kv/partialupdate/PartialUpdater.java | 156 --
.../kv/partialupdate/PartialUpdaterCache.java | 54 -
.../fluss/server/kv/prewrite/KvPreWriteBuffer.java | 471 -----
.../alibaba/fluss/server/kv/rocksdb/RocksDBKv.java | 209 ---
.../fluss/server/kv/rocksdb/RocksDBKvBuilder.java | 226 ---
.../kv/rocksdb/RocksDBResourceContainer.java | 368 ----
.../kv/rocksdb/RocksDBWriteBatchWrapper.java | 141 --
.../server/kv/rowmerger/DefaultRowMerger.java | 108 --
.../server/kv/rowmerger/FirstRowRowMerger.java | 60 -
.../fluss/server/kv/rowmerger/RowMerger.java | 89 -
.../server/kv/rowmerger/VersionedRowMerger.java | 127 --
.../server/kv/snapshot/AsyncSnapshotCallable.java | 180 --
.../kv/snapshot/CompletedKvSnapshotCommitter.java | 33 -
.../server/kv/snapshot/CompletedSnapshot.java | 196 ---
.../kv/snapshot/CompletedSnapshotHandle.java | 125 --
.../kv/snapshot/CompletedSnapshotHandleStore.java | 85 -
.../server/kv/snapshot/CompletedSnapshotStore.java | 235 ---
.../DefaultCompletedKvSnapshotCommitter.java | 99 --
.../server/kv/snapshot/DefaultSnapshotContext.java | 158 --
.../fluss/server/kv/snapshot/KvFileHandle.java | 101 --
.../kv/snapshot/KvFileHandleAndLocalPath.java | 80 -
.../kv/snapshot/KvSnapshotDataDownloader.java | 87 -
.../server/kv/snapshot/KvSnapshotDataTransfer.java | 29 -
.../server/kv/snapshot/KvSnapshotDataUploader.java | 163 --
.../server/kv/snapshot/KvSnapshotDownloadSpec.java | 46 -
.../fluss/server/kv/snapshot/KvSnapshotHandle.java | 158 --
.../server/kv/snapshot/KvTabletSnapshotTarget.java | 255 ---
.../kv/snapshot/PeriodicSnapshotManager.java | 403 -----
.../kv/snapshot/PlaceholderKvFileHandler.java | 36 -
.../kv/snapshot/RocksIncrementalSnapshot.java | 364 ----
.../server/kv/snapshot/SharedKvFileRegistry.java | 231 ---
.../kv/snapshot/SharedKvFileRegistryKey.java | 74 -
.../fluss/server/kv/snapshot/SnapshotContext.java | 72 -
.../server/kv/snapshot/SnapshotFileScope.java | 31 -
.../fluss/server/kv/snapshot/SnapshotLocation.java | 345 ----
.../server/kv/snapshot/SnapshotResources.java | 28 -
.../fluss/server/kv/snapshot/SnapshotResult.java | 59 -
.../server/kv/snapshot/SnapshotResultSupplier.java | 36 -
.../fluss/server/kv/snapshot/SnapshotRunner.java | 86 -
.../fluss/server/kv/snapshot/SnapshotsCleaner.java | 102 --
.../ZooKeeperCompletedSnapshotHandleStore.java | 124 --
.../fluss/server/kv/wal/ArrowWalBuilder.java | 71 -
.../fluss/server/kv/wal/IndexWalBuilder.java | 76 -
.../alibaba/fluss/server/kv/wal/WalBuilder.java | 34 -
.../alibaba/fluss/server/log/FetchDataInfo.java | 45 -
.../alibaba/fluss/server/log/FetchIsolation.java | 36 -
.../com/alibaba/fluss/server/log/FetchParams.java | 211 ---
.../com/alibaba/fluss/server/log/IndexEntry.java | 31 -
.../alibaba/fluss/server/log/IndexSearchType.java | 27 -
.../com/alibaba/fluss/server/log/LazyIndex.java | 239 ---
.../alibaba/fluss/server/log/ListOffsetsParam.java | 82 -
.../alibaba/fluss/server/log/LoadedLogOffsets.java | 73 -
.../com/alibaba/fluss/server/log/LocalLog.java | 664 -------
.../alibaba/fluss/server/log/LogAppendInfo.java | 172 --
.../com/alibaba/fluss/server/log/LogLoader.java | 166 --
.../com/alibaba/fluss/server/log/LogManager.java | 483 -----
.../fluss/server/log/LogOffsetMetadata.java | 150 --
.../fluss/server/log/LogOffsetSnapshot.java | 80 -
.../com/alibaba/fluss/server/log/LogReadInfo.java | 59 -
.../com/alibaba/fluss/server/log/LogSegments.java | 258 ---
.../com/alibaba/fluss/server/log/LogTablet.java | 1267 --------------
.../alibaba/fluss/server/log/OffsetPosition.java | 76 -
.../com/alibaba/fluss/server/log/RollParams.java | 47 -
.../com/alibaba/fluss/server/log/SnapshotFile.java | 65 -
.../alibaba/fluss/server/log/StorageAction.java | 29 -
.../alibaba/fluss/server/log/TimestampOffset.java | 70 -
.../alibaba/fluss/server/log/WriterAppendInfo.java | 109 --
.../alibaba/fluss/server/log/WriterStateEntry.java | 157 --
.../server/log/checkpoint/CheckpointFile.java | 244 ---
.../log/checkpoint/OffsetCheckpointFile.java | 160 --
.../server/log/remote/DefaultRemoteLogStorage.java | 340 ----
.../server/log/remote/FsRemoteLogOutputStream.java | 217 ---
.../fluss/server/log/remote/LogSegmentFiles.java | 106 --
.../fluss/server/log/remote/LogTieringTask.java | 517 ------
.../server/log/remote/RemoteLogIndexCache.java | 722 --------
.../fluss/server/log/remote/RemoteLogManager.java | 379 ----
.../fluss/server/log/remote/RemoteLogManifest.java | 141 --
.../fluss/server/log/remote/RemoteLogStorage.java | 164 --
.../fluss/server/log/remote/RemoteLogTablet.java | 363 ----
.../fluss/server/metadata/BucketMetadata.java | 93 -
.../fluss/server/metadata/ClusterMetadata.java | 78 -
.../server/metadata/CoordinatorMetadataCache.java | 119 --
.../fluss/server/metadata/PartitionMetadata.java | 70 -
.../alibaba/fluss/server/metadata/ServerInfo.java | 129 --
.../fluss/server/metadata/ServerMetadataCache.java | 76 -
.../server/metadata/ServerMetadataSnapshot.java | 182 --
.../fluss/server/metadata/TableMetadata.java | 97 --
.../server/metadata/TabletServerMetadataCache.java | 289 ---
.../fluss/server/metrics/ServerMetricUtils.java | 275 ---
.../server/metrics/group/BucketMetricGroup.java | 51 -
.../metrics/group/CoordinatorMetricGroup.java | 54 -
.../metrics/group/PhysicalTableMetricGroup.java | 404 -----
.../metrics/group/TabletServerMetricGroup.java | 145 --
.../fluss/server/replica/AdjustIsrManager.java | 203 ---
.../fluss/server/replica/FollowerReplica.java | 233 ---
.../com/alibaba/fluss/server/replica/IsrState.java | 244 ---
.../com/alibaba/fluss/server/replica/Replica.java | 1842 --------------------
.../fluss/server/replica/ReplicaManager.java | 1597 -----------------
.../server/replica/delay/DelayedFetchLog.java | 242 ---
.../server/replica/delay/DelayedOperation.java | 132 --
.../server/replica/delay/DelayedOperationKey.java | 28 -
.../replica/delay/DelayedOperationManager.java | 368 ----
.../replica/delay/DelayedTableBucketKey.java | 58 -
.../fluss/server/replica/delay/DelayedWrite.java | 262 ---
.../server/replica/fetcher/BucketFetchStatus.java | 81 -
.../fluss/server/replica/fetcher/DelayedItem.java | 52 -
.../server/replica/fetcher/FetchLogContext.java | 43 -
.../server/replica/fetcher/InitialFetchStatus.java | 87 -
.../server/replica/fetcher/LeaderEndpoint.java | 82 -
.../replica/fetcher/RemoteLeaderEndpoint.java | 218 ---
.../replica/fetcher/ReplicaFetcherManager.java | 307 ----
.../alibaba/fluss/server/tablet/TabletService.java | 483 -----
.../server/utils/ConfigurationParserUtils.java | 66 -
.../fluss/server/utils/FatalErrorHandler.java | 34 -
.../fluss/server/utils/LakeStorageUtils.java | 63 -
.../alibaba/fluss/server/utils/ResourceGuard.java | 167 --
.../fluss/server/utils/RpcGatewayManager.java | 120 --
.../fluss/server/utils/ServerRpcMessageUtils.java | 1647 -----------------
.../fluss/server/utils/ShutdownHookUtil.java | 109 --
.../alibaba/fluss/server/utils/SnapshotUtil.java | 93 -
.../fluss/server/utils/TableAssignmentUtils.java | 316 ----
.../server/utils/TableDescriptorValidation.java | 292 ----
.../fluss/server/utils/timer/DefaultTimer.java | 129 --
.../alibaba/fluss/server/utils/timer/Timer.java | 60 -
.../fluss/server/utils/timer/TimerTask.java | 69 -
.../fluss/server/utils/timer/TimerTaskEntry.java | 76 -
.../fluss/server/utils/timer/TimerTaskList.java | 143 --
.../fluss/server/utils/timer/TimingWheel.java | 208 ---
...CuratorFrameworkWithUnhandledErrorListener.java | 52 -
.../fluss/server/zk/data/BucketAssignment.java | 66 -
.../fluss/server/zk/data/BucketSnapshot.java | 73 -
.../fluss/server/zk/data/CoordinatorAddress.java | 65 -
.../fluss/server/zk/data/DatabaseRegistration.java | 96 -
.../fluss/server/zk/data/LakeTableSnapshot.java | 131 --
.../alibaba/fluss/server/zk/data/LeaderAndIsr.java | 145 --
.../fluss/server/zk/data/PartitionAssignment.java | 66 -
.../server/zk/data/RemoteLogManifestHandle.java | 70 -
.../alibaba/fluss/server/zk/data/ResourceAcl.java | 60 -
.../fluss/server/zk/data/TableAssignment.java | 99 --
.../fluss/server/zk/data/TableRegistration.java | 194 ---
.../server/zk/data/TabletServerRegistration.java | 86 -
.../com/alibaba/fluss/server/zk/data/ZkData.java | 652 -------
.../org/apache/fluss/server/RpcServiceBase.java | 696 ++++++++
.../org/apache/fluss/server/SequenceIDCounter.java | 29 +
.../apache}/fluss/server/ServerBase.java | 0
.../org/apache/fluss/server/TabletManagerBase.java | 254 +++
.../server/authorizer/AbstractAuthorizer.java | 94 +
.../fluss/server/authorizer/AclCreateResult.java | 54 +
.../fluss/server/authorizer/AclDeleteResult.java | 84 +
.../org/apache/fluss/server/authorizer/Action.java | 40 +
.../server/authorizer/AuthorizationPlugin.java | 44 +
.../apache/fluss/server/authorizer/Authorizer.java | 111 ++
.../fluss/server/authorizer/AuthorizerLoader.java | 114 ++
.../authorizer/DefaultAuthorizationPlugin.java | 32 +
.../fluss/server/authorizer/DefaultAuthorizer.java | 0
.../ZkNodeChangeNotificationWatcher.java | 0
.../fluss/server/cli/CommandLineOptions.java | 47 +
.../apache/fluss/server/cli/CommandLineParser.java | 59 +
.../fluss/server/cli/ParserResultFactory.java | 49 +
.../fluss/server/cli/ServerConfiguration.java | 59 +
.../cli/ServerConfigurationParserFactory.java | 57 +
.../server/coordinator/AutoPartitionManager.java | 494 ++++++
.../coordinator/CompletedSnapshotStoreManager.java | 143 ++
.../coordinator/CoordinatorChannelManager.java | 200 +++
.../server/coordinator/CoordinatorContext.java | 640 +++++++
.../coordinator/CoordinatorEventProcessor.java | 0
.../coordinator/CoordinatorRequestBatch.java | 706 ++++++++
.../server/coordinator/CoordinatorServer.java | 0
.../server/coordinator/CoordinatorService.java | 653 +++++++
.../coordinator/LakeTableTieringManager.java | 540 ++++++
.../fluss/server/coordinator/MetadataManager.java | 0
.../server/coordinator/RemoteStorageCleaner.java | 89 +
.../fluss/server/coordinator/TableManager.java | 317 ++++
.../coordinator/event/AccessContextEvent.java | 49 +
.../coordinator/event/AdjustIsrReceivedEvent.java | 46 +
.../coordinator/event/CommitKvSnapshotEvent.java | 62 +
.../event/CommitLakeTableSnapshotEvent.java | 46 +
.../event/CommitRemoteLogManifestEvent.java | 60 +
.../server/coordinator/event/CoordinatorEvent.java | 21 +
.../coordinator/event/CoordinatorEventManager.java | 0
.../coordinator/event/CreatePartitionEvent.java | 105 ++
.../server/coordinator/event/CreateTableEvent.java | 75 +
.../coordinator/event/DeadTabletServerEvent.java | 56 +
.../event/DeleteReplicaResponseReceivedEvent.java | 37 +
.../coordinator/event/DropPartitionEvent.java | 79 +
.../server/coordinator/event/DropTableEvent.java | 79 +
.../server/coordinator/event/EventManager.java | 24 +
.../server/coordinator/event/EventProcessor.java | 23 +
.../coordinator/event/FencedCoordinatorEvent.java | 45 +
.../coordinator/event/NewTabletServerEvent.java | 58 +
.../NotifyLeaderAndIsrResponseReceivedEvent.java | 47 +
.../event/ShutdownEventThreadEvent.java | 21 +
.../event/watcher/TableChangeWatcher.java | 0
.../event/watcher/TabletServerChangeWatcher.java | 0
.../server/coordinator/statemachine/BaseState.java | 25 +
.../coordinator/statemachine/BucketState.java | 51 +
.../ReplicaLeaderElectionAlgorithms.java | 37 +
.../coordinator/statemachine/ReplicaState.java | 65 +
.../statemachine/ReplicaStateMachine.java | 480 +++++
.../statemachine/TableBucketStateMachine.java | 0
.../server/entity/AdjustIsrResultForBucket.java | 47 +
.../server/entity/BatchRegisterLeadAndIsr.java | 73 +
.../fluss/server/entity/CommitKvSnapshotData.java | 53 +
.../server/entity/CommitLakeTableSnapshotData.java | 60 +
.../server/entity/CommitRemoteLogManifestData.java | 127 ++
.../entity/DeleteReplicaResultForBucket.java | 50 +
.../apache/fluss/server/entity/FetchReqInfo.java | 107 ++
.../fluss/server/entity/LakeBucketOffset.java | 46 +
.../fluss/server/entity/LakeTieringTableInfo.java | 76 +
.../server/entity/NotifyKvSnapshotOffsetData.java | 59 +
.../server/entity/NotifyLakeTableOffsetData.java | 45 +
.../server/entity/NotifyLeaderAndIsrData.java | 88 +
.../entity/NotifyLeaderAndIsrResultForBucket.java | 38 +
.../server/entity/NotifyRemoteLogOffsetsData.java | 68 +
.../entity/RegisterTableBucketLeadAndIsrInfo.java | 61 +
.../fluss/server/entity/StopReplicaData.java | 53 +
.../server/entity/StopReplicaResultForBucket.java | 42 +
.../server/exception/CorruptIndexException.java | 33 +
.../exception/EndpointNotAvailableException.java | 25 +
.../server/exception/FlussParseException.java | 30 +
.../server/exception/KvBuildingException.java | 28 +
.../org/apache/fluss/server/kv/KvBatchWriter.java | 38 +
.../apache}/fluss/server/kv/KvManager.java | 0
.../apache/fluss/server/kv/KvRecoverHelper.java | 251 +++
.../apache/fluss/server/kv/KvSnapshotResource.java | 136 ++
.../apache}/fluss/server/kv/KvTablet.java | 0
.../server/kv/partialupdate/PartialUpdater.java | 156 ++
.../kv/partialupdate/PartialUpdaterCache.java | 54 +
.../fluss/server/kv/prewrite/KvPreWriteBuffer.java | 471 +++++
.../apache/fluss/server/kv/rocksdb/RocksDBKv.java | 209 +++
.../fluss/server/kv/rocksdb/RocksDBKvBuilder.java | 226 +++
.../kv/rocksdb/RocksDBResourceContainer.java | 368 ++++
.../kv/rocksdb/RocksDBWriteBatchWrapper.java | 141 ++
.../server/kv/rowmerger/DefaultRowMerger.java | 108 ++
.../server/kv/rowmerger/FirstRowRowMerger.java | 60 +
.../fluss/server/kv/rowmerger/RowMerger.java | 89 +
.../server/kv/rowmerger/VersionedRowMerger.java | 127 ++
.../server/kv/snapshot/AsyncSnapshotCallable.java | 180 ++
.../kv/snapshot/CompletedKvSnapshotCommitter.java | 33 +
.../server/kv/snapshot/CompletedSnapshot.java | 196 +++
.../kv/snapshot/CompletedSnapshotHandle.java | 125 ++
.../kv/snapshot/CompletedSnapshotHandleStore.java | 85 +
.../kv/snapshot/CompletedSnapshotJsonSerde.java | 0
.../server/kv/snapshot/CompletedSnapshotStore.java | 235 +++
.../DefaultCompletedKvSnapshotCommitter.java | 99 ++
.../server/kv/snapshot/DefaultSnapshotContext.java | 158 ++
.../fluss/server/kv/snapshot/KvFileHandle.java | 101 ++
.../kv/snapshot/KvFileHandleAndLocalPath.java | 80 +
.../kv/snapshot/KvSnapshotDataDownloader.java | 87 +
.../server/kv/snapshot/KvSnapshotDataTransfer.java | 29 +
.../server/kv/snapshot/KvSnapshotDataUploader.java | 163 ++
.../server/kv/snapshot/KvSnapshotDownloadSpec.java | 46 +
.../fluss/server/kv/snapshot/KvSnapshotHandle.java | 158 ++
.../server/kv/snapshot/KvTabletSnapshotTarget.java | 255 +++
.../kv/snapshot/PeriodicSnapshotManager.java | 403 +++++
.../kv/snapshot/PlaceholderKvFileHandler.java | 36 +
.../kv/snapshot/RocksIncrementalSnapshot.java | 364 ++++
.../server/kv/snapshot/SharedKvFileRegistry.java | 231 +++
.../kv/snapshot/SharedKvFileRegistryKey.java | 74 +
.../fluss/server/kv/snapshot/SnapshotContext.java | 72 +
.../server/kv/snapshot/SnapshotFileScope.java | 31 +
.../fluss/server/kv/snapshot/SnapshotLocation.java | 345 ++++
.../server/kv/snapshot/SnapshotResources.java | 28 +
.../fluss/server/kv/snapshot/SnapshotResult.java | 59 +
.../server/kv/snapshot/SnapshotResultSupplier.java | 36 +
.../fluss/server/kv/snapshot/SnapshotRunner.java | 86 +
.../fluss/server/kv/snapshot/SnapshotsCleaner.java | 102 ++
.../ZooKeeperCompletedSnapshotHandleStore.java | 124 ++
.../fluss/server/kv/wal/ArrowWalBuilder.java | 71 +
.../fluss/server/kv/wal/IndexWalBuilder.java | 76 +
.../org/apache/fluss/server/kv/wal/WalBuilder.java | 34 +
.../apache}/fluss/server/log/AbstractIndex.java | 0
.../org/apache/fluss/server/log/FetchDataInfo.java | 45 +
.../apache/fluss/server/log/FetchIsolation.java | 36 +
.../org/apache/fluss/server/log/FetchParams.java | 211 +++
.../org/apache/fluss/server/log/IndexEntry.java | 31 +
.../apache/fluss/server/log/IndexSearchType.java | 27 +
.../org/apache/fluss/server/log/LazyIndex.java | 239 +++
.../apache/fluss/server/log/ListOffsetsParam.java | 82 +
.../apache/fluss/server/log/LoadedLogOffsets.java | 73 +
.../java/org/apache/fluss/server/log/LocalLog.java | 664 +++++++
.../org/apache/fluss/server/log/LogAppendInfo.java | 172 ++
.../org/apache/fluss/server/log/LogLoader.java | 166 ++
.../org/apache/fluss/server/log/LogManager.java | 483 +++++
.../apache/fluss/server/log/LogOffsetMetadata.java | 150 ++
.../apache/fluss/server/log/LogOffsetSnapshot.java | 80 +
.../org/apache/fluss/server/log/LogReadInfo.java | 59 +
.../apache}/fluss/server/log/LogSegment.java | 0
.../org/apache/fluss/server/log/LogSegments.java | 258 +++
.../org/apache/fluss/server/log/LogTablet.java | 1267 ++++++++++++++
.../apache}/fluss/server/log/OffsetIndex.java | 0
.../apache/fluss/server/log/OffsetPosition.java | 76 +
.../org/apache/fluss/server/log/RollParams.java | 47 +
.../org/apache/fluss/server/log/SnapshotFile.java | 65 +
.../org/apache/fluss/server/log/StorageAction.java | 29 +
.../apache}/fluss/server/log/TimeIndex.java | 0
.../apache/fluss/server/log/TimestampOffset.java | 70 +
.../apache/fluss/server/log/WriterAppendInfo.java | 109 ++
.../apache/fluss/server/log/WriterStateEntry.java | 157 ++
.../fluss/server/log/WriterStateManager.java | 0
.../server/log/checkpoint/CheckpointFile.java | 244 +++
.../log/checkpoint/OffsetCheckpointFile.java | 160 ++
.../server/log/remote/DefaultRemoteLogStorage.java | 340 ++++
.../server/log/remote/FsRemoteLogOutputStream.java | 217 +++
.../fluss/server/log/remote/LogSegmentFiles.java | 106 ++
.../fluss/server/log/remote/LogTieringTask.java | 517 ++++++
.../server/log/remote/RemoteLogIndexCache.java | 722 ++++++++
.../fluss/server/log/remote/RemoteLogManager.java | 379 ++++
.../fluss/server/log/remote/RemoteLogManifest.java | 141 ++
.../log/remote/RemoteLogManifestJsonSerde.java | 0
.../fluss/server/log/remote/RemoteLogStorage.java | 164 ++
.../fluss/server/log/remote/RemoteLogTablet.java | 363 ++++
.../fluss/server/metadata/BucketMetadata.java | 93 +
.../fluss/server/metadata/ClusterMetadata.java | 78 +
.../server/metadata/CoordinatorMetadataCache.java | 119 ++
.../fluss/server/metadata/PartitionMetadata.java | 70 +
.../apache/fluss/server/metadata/ServerInfo.java | 129 ++
.../fluss/server/metadata/ServerMetadataCache.java | 76 +
.../server/metadata/ServerMetadataSnapshot.java | 182 ++
.../fluss/server/metadata/TableMetadata.java | 97 ++
.../server/metadata/TabletServerMetadataCache.java | 289 +++
.../fluss/server/metrics/ServerMetricUtils.java | 275 +++
.../server/metrics/group/BucketMetricGroup.java | 51 +
.../metrics/group/CoordinatorMetricGroup.java | 54 +
.../metrics/group/PhysicalTableMetricGroup.java | 404 +++++
.../metrics/group/TabletServerMetricGroup.java | 145 ++
.../fluss/server/replica/AdjustIsrManager.java | 203 +++
.../fluss/server/replica/FollowerReplica.java | 233 +++
.../org/apache/fluss/server/replica/IsrState.java | 244 +++
.../org/apache/fluss/server/replica/Replica.java | 1842 ++++++++++++++++++++
.../fluss/server/replica/ReplicaManager.java | 1597 +++++++++++++++++
.../server/replica/delay/DelayedFetchLog.java | 242 +++
.../server/replica/delay/DelayedOperation.java | 132 ++
.../server/replica/delay/DelayedOperationKey.java | 28 +
.../replica/delay/DelayedOperationManager.java | 368 ++++
.../replica/delay/DelayedTableBucketKey.java | 58 +
.../fluss/server/replica/delay/DelayedWrite.java | 262 +++
.../server/replica/fetcher/BucketFetchStatus.java | 81 +
.../fluss/server/replica/fetcher/DelayedItem.java | 52 +
.../server/replica/fetcher/FetchLogContext.java | 43 +
.../server/replica/fetcher/InitialFetchStatus.java | 87 +
.../server/replica/fetcher/LeaderEndpoint.java | 82 +
.../replica/fetcher/RemoteLeaderEndpoint.java | 218 +++
.../replica/fetcher/ReplicaFetcherManager.java | 307 ++++
.../replica/fetcher/ReplicaFetcherThread.java | 0
.../apache}/fluss/server/tablet/TabletServer.java | 0
.../apache/fluss/server/tablet/TabletService.java | 483 +++++
.../server/utils/ConfigurationParserUtils.java | 66 +
.../fluss/server/utils/FatalErrorHandler.java | 34 +
.../fluss/server/utils/LakeStorageUtils.java | 63 +
.../apache/fluss/server/utils/ResourceGuard.java | 167 ++
.../fluss/server/utils/RpcGatewayManager.java | 120 ++
.../fluss/server/utils/ServerRpcMessageUtils.java | 1647 +++++++++++++++++
.../fluss/server/utils/ShutdownHookUtil.java | 109 ++
.../apache/fluss/server/utils/SnapshotUtil.java | 93 +
.../fluss/server/utils/TableAssignmentUtils.java | 316 ++++
.../server/utils/TableDescriptorValidation.java | 292 ++++
.../fluss/server/utils/timer/DefaultTimer.java | 129 ++
.../org/apache/fluss/server/utils/timer/Timer.java | 60 +
.../apache/fluss/server/utils/timer/TimerTask.java | 69 +
.../fluss/server/utils/timer/TimerTaskEntry.java | 76 +
.../fluss/server/utils/timer/TimerTaskList.java | 143 ++
.../fluss/server/utils/timer/TimingWheel.java | 208 +++
...CuratorFrameworkWithUnhandledErrorListener.java | 52 +
.../fluss/server/zk/ZkSequenceIDCounter.java | 0
.../apache}/fluss/server/zk/ZooKeeperClient.java | 0
.../apache}/fluss/server/zk/ZooKeeperUtils.java | 0
.../fluss/server/zk/data/BucketAssignment.java | 66 +
.../fluss/server/zk/data/BucketSnapshot.java | 73 +
.../server/zk/data/BucketSnapshotJsonSerde.java | 0
.../fluss/server/zk/data/CoordinatorAddress.java | 65 +
.../zk/data/CoordinatorAddressJsonSerde.java | 0
.../fluss/server/zk/data/DatabaseRegistration.java | 96 +
.../zk/data/DatabaseRegistrationJsonSerde.java | 0
.../fluss/server/zk/data/LakeTableSnapshot.java | 131 ++
.../server/zk/data/LakeTableSnapshotJsonSerde.java | 0
.../apache/fluss/server/zk/data/LeaderAndIsr.java | 145 ++
.../server/zk/data/LeaderAndIsrJsonSerde.java | 0
.../fluss/server/zk/data/PartitionAssignment.java | 66 +
.../zk/data/PartitionAssignmentJsonSerde.java | 0
.../server/zk/data/RemoteLogManifestHandle.java | 70 +
.../zk/data/RemoteLogManifestHandleJsonSerde.java | 0
.../apache/fluss/server/zk/data/ResourceAcl.java | 60 +
.../fluss/server/zk/data/ResourceAclJsonSerde.java | 0
.../fluss/server/zk/data/TableAssignment.java | 99 ++
.../server/zk/data/TableAssignmentJsonSerde.java | 0
.../fluss/server/zk/data/TableRegistration.java | 194 +++
.../server/zk/data/TableRegistrationJsonSerde.java | 0
.../server/zk/data/TabletServerRegistration.java | 86 +
.../zk/data/TabletServerRegistrationJsonSerde.java | 0
.../org/apache/fluss/server/zk/data/ZkData.java | 652 +++++++
...aba.fluss.server.authorizer.AuthorizationPlugin | 19 -
...che.fluss.server.authorizer.AuthorizationPlugin | 19 +
.../com/alibaba/fluss/server/ServerITCaseBase.java | 153 --
.../server/authorizer/DefaultAuthorizerTest.java | 715 --------
.../ZkNodeChangeNotificationWatcherTest.java | 132 --
.../ServerBaseConfigurationParserFactoryTest.java | 73 -
.../coordinator/AutoPartitionManagerTest.java | 787 ---------
.../CompletedSnapshotStoreManagerTest.java | 223 ---
.../coordinator/CoordinatorChannelManagerTest.java | 119 --
.../coordinator/CoordinatorServerITCase.java | 72 -
.../server/coordinator/CoordinatorServerTest.java | 72 -
.../server/coordinator/CoordinatorTestUtils.java | 109 --
.../server/coordinator/LakeTableManagerITCase.java | 111 --
.../coordinator/LakeTableTieringManagerTest.java | 267 ---
.../coordinator/LakeTieringHeartbeatITCase.java | 332 ----
.../coordinator/NotifyLeaderAndIsrITCase.java | 114 --
.../server/coordinator/StopReplicaITCase.java | 200 ---
.../server/coordinator/TableManagerITCase.java | 801 ---------
.../fluss/server/coordinator/TableManagerTest.java | 374 ----
.../coordinator/TestCoordinatorChannelManager.java | 50 -
.../server/coordinator/TestCoordinatorGateway.java | 317 ----
.../coordinator/event/TestingEventManager.java | 41 -
.../event/watcher/TableChangeWatcherTest.java | 236 ---
.../watcher/TabletServerChangeWatcherTest.java | 102 --
.../statemachine/ReplicaStateMachineTest.java | 308 ----
.../com/alibaba/fluss/server/kv/KvManagerTest.java | 284 ---
.../server/kv/prewrite/KvPreWriteBufferTest.java | 234 ---
.../fluss/server/kv/rocksdb/RocksDBExtension.java | 84 -
.../server/kv/rocksdb/RocksDBKvBuilderTest.java | 71 -
.../fluss/server/kv/rocksdb/RocksDBKvTest.java | 67 -
.../kv/rocksdb/RocksDBOperationsUtilsTest.java | 64 -
.../kv/rocksdb/RocksDBResourceContainerTest.java | 194 ---
.../kv/rowmerger/VersionedRowMergerTest.java | 186 --
.../snapshot/CompletedSnapshotJsonSerdeTest.java | 94 -
.../kv/snapshot/CompletedSnapshotStoreTest.java | 251 ---
.../server/kv/snapshot/CompletedSnapshotTest.java | 191 --
.../kv/snapshot/KvSnapshotDataDownloaderTest.java | 169 --
.../kv/snapshot/KvSnapshotDataUploaderTest.java | 138 --
.../kv/snapshot/KvTabletSnapshotTargetTest.java | 470 -----
.../kv/snapshot/PeriodicSnapshotManagerTest.java | 261 ---
.../kv/snapshot/RocksIncrementalSnapshotTest.java | 197 ---
.../kv/snapshot/SharedKvFileRegistryTest.java | 95 -
.../server/kv/snapshot/SnapshotLocationTest.java | 114 --
.../server/kv/snapshot/SnapshotsCleanerTest.java | 165 --
.../snapshot/TestCompletedSnapshotHandleStore.java | 103 --
.../TestingCompletedKvSnapshotCommitter.java | 88 -
.../snapshot/TestingCompletedSnapshotHandle.java | 49 -
.../ZooKeeperCompletedSnapshotStoreTest.java | 144 --
.../alibaba/fluss/server/log/FetchParamsTest.java | 57 -
.../com/alibaba/fluss/server/log/LocalLogTest.java | 417 -----
.../alibaba/fluss/server/log/LogManagerTest.java | 313 ----
.../alibaba/fluss/server/log/LogSegmentTest.java | 452 -----
.../alibaba/fluss/server/log/LogSegmentsTest.java | 204 ---
.../alibaba/fluss/server/log/LogTabletTest.java | 627 -------
.../com/alibaba/fluss/server/log/LogTestUtils.java | 113 --
.../alibaba/fluss/server/log/OffsetIndexTest.java | 226 ---
.../alibaba/fluss/server/log/TimeIndexTest.java | 156 --
.../server/log/WriterSnapshotMapJsonSerdeTest.java | 54 -
.../log/remote/CommitRemoteLogManifestITCase.java | 134 --
.../fluss/server/log/remote/RemoteLogITCase.java | 217 ---
.../server/log/remote/RemoteLogIndexCacheTest.java | 269 ---
.../server/log/remote/RemoteLogManagerTest.java | 537 ------
.../log/remote/RemoteLogManifestJsonSerdeTest.java | 115 --
.../fluss/server/log/remote/RemoteLogTTLTest.java | 92 -
.../server/log/remote/RemoteLogTabletTest.java | 199 ---
.../fluss/server/log/remote/RemoteLogTestBase.java | 156 --
.../server/log/remote/TestingRemoteLogStorage.java | 47 -
.../metadata/CoordinatorMetadataCacheTest.java | 89 -
.../server/metadata/MetadataUpdateITCase.java | 516 ------
.../metadata/TabletServerMetadataCacheTest.java | 290 ---
.../server/metrics/ServerMetricUtilsTest.java | 312 ----
.../server/metrics/group/TestingMetricGroups.java | 42 -
.../fluss/server/replica/AdjustIsrITCase.java | 258 ---
.../fluss/server/replica/AdjustIsrManagerTest.java | 59 -
.../fluss/server/replica/AdjustIsrTest.java | 147 --
.../replica/CommitLakeTableSnapshotITCase.java | 178 --
.../fluss/server/replica/FollowerReplicaTest.java | 148 --
.../replica/HighWatermarkPersistenceTest.java | 202 ---
.../fluss/server/replica/KvSnapshotITCase.java | 215 ---
.../replica/NotifyReplicaLakeTableOffsetTest.java | 91 -
.../replica/RemoveOfflineReplicaFromIsrITCase.java | 152 --
.../fluss/server/replica/ReplicaManagerTest.java | 1810 -------------------
.../alibaba/fluss/server/replica/ReplicaTest.java | 629 -------
.../fluss/server/replica/ReplicaTestBase.java | 644 -------
.../server/replica/delay/DelayedFetchLogTest.java | 166 --
.../server/replica/delay/DelayedOperationTest.java | 370 ----
.../server/replica/delay/DelayedWriteTest.java | 189 --
.../replica/fetcher/RemoteLeaderEndpointTest.java | 150 --
.../replica/fetcher/ReplicaFetcherITCase.java | 347 ----
.../replica/fetcher/ReplicaFetcherManagerTest.java | 139 --
.../replica/fetcher/ReplicaFetcherThreadTest.java | 400 -----
.../replica/fetcher/TestingLeaderEndpoint.java | 137 --
.../server/tablet/TabletServerFailOverITCase.java | 188 --
.../fluss/server/tablet/TabletServerITCase.java | 74 -
.../fluss/server/tablet/TabletServerTest.java | 92 -
.../fluss/server/tablet/TabletServiceITCase.java | 953 ----------
.../server/tablet/TestTabletServerGateway.java | 410 -----
.../fluss/server/testutils/KvTestUtils.java | 195 ---
.../server/testutils/PartitionMetadataAssert.java | 51 -
.../server/testutils/RpcMessageTestUtils.java | 484 -----
.../server/testutils/TableMetadataAssert.java | 49 -
.../testutils/TestingServerMetadataCache.java | 70 -
.../fluss/server/utils/AvailablePortExtension.java | 53 -
.../server/utils/ConfigurationParserUtilsTest.java | 104 --
.../fluss/server/utils/ResourceGuardTest.java | 145 --
.../fluss/server/utils/RpcGatewayManagerTest.java | 70 -
.../server/utils/TableAssignmentUtilsTest.java | 629 -------
.../fluss/server/utils/TestProcessBuilder.java | 170 --
.../fluss/server/utils/timer/DefaultTimerTest.java | 137 --
.../server/utils/timer/TimerTaskListTest.java | 106 --
.../alibaba/fluss/server/zk/NOPErrorHandler.java | 31 -
.../fluss/server/zk/ZooKeeperTestUtils.java | 74 -
.../zk/data/BucketSnapshotJsonSerdeTest.java | 44 -
.../zk/data/LakeTableSnapshotJsonSerdeTest.java | 97 --
.../server/zk/data/LeaderAndIsrJsonSerdeTest.java | 46 -
.../zk/data/PartitionAssignmentJsonSerdeTest.java | 48 -
.../data/RemoteLogManifestHandleJsonSerdeTest.java | 47 -
.../server/zk/data/ResourceAclJsonSerdeTest.java | 72 -
.../zk/data/TableAssignmentJsonSerdeTest.java | 43 -
.../alibaba/fluss/server/zk/data/ZkDataTest.java | 64 -
.../org/apache/fluss/server/ServerITCaseBase.java | 153 ++
.../apache}/fluss/server/ServerTestBase.java | 0
.../server/authorizer/DefaultAuthorizerTest.java | 715 ++++++++
.../ZkNodeChangeNotificationWatcherTest.java | 132 ++
.../ServerBaseConfigurationParserFactoryTest.java | 73 +
.../coordinator/AutoPartitionManagerTest.java | 787 +++++++++
.../CompletedSnapshotStoreManagerTest.java | 223 +++
.../coordinator/CoordinatorChannelManagerTest.java | 119 ++
.../coordinator/CoordinatorEventProcessorTest.java | 0
.../coordinator/CoordinatorServerITCase.java | 72 +
.../server/coordinator/CoordinatorServerTest.java | 72 +
.../server/coordinator/CoordinatorTestUtils.java | 109 ++
.../server/coordinator/LakeTableManagerITCase.java | 111 ++
.../coordinator/LakeTableTieringManagerTest.java | 267 +++
.../coordinator/LakeTieringHeartbeatITCase.java | 332 ++++
.../coordinator/NotifyLeaderAndIsrITCase.java | 114 ++
.../server/coordinator/StopReplicaITCase.java | 200 +++
.../server/coordinator/TableManagerITCase.java | 801 +++++++++
.../fluss/server/coordinator/TableManagerTest.java | 374 ++++
.../coordinator/TestCoordinatorChannelManager.java | 50 +
.../server/coordinator/TestCoordinatorGateway.java | 317 ++++
.../coordinator/event/TestingEventManager.java | 41 +
.../event/watcher/TableChangeWatcherTest.java | 236 +++
.../watcher/TabletServerChangeWatcherTest.java | 102 ++
.../statemachine/ReplicaStateMachineTest.java | 308 ++++
.../statemachine/TableBucketStateMachineTest.java | 0
.../org/apache/fluss/server/kv/KvManagerTest.java | 284 +++
.../apache}/fluss/server/kv/KvTabletTest.java | 0
.../server/kv/prewrite/KvPreWriteBufferTest.java | 234 +++
.../fluss/server/kv/rocksdb/RocksDBExtension.java | 84 +
.../server/kv/rocksdb/RocksDBKvBuilderTest.java | 71 +
.../fluss/server/kv/rocksdb/RocksDBKvTest.java | 67 +
.../kv/rocksdb/RocksDBOperationsUtilsTest.java | 64 +
.../kv/rocksdb/RocksDBResourceContainerTest.java | 194 +++
.../kv/rowmerger/VersionedRowMergerTest.java | 186 ++
.../snapshot/CompletedSnapshotJsonSerdeTest.java | 94 +
.../kv/snapshot/CompletedSnapshotStoreTest.java | 251 +++
.../server/kv/snapshot/CompletedSnapshotTest.java | 191 ++
.../kv/snapshot/KvSnapshotDataDownloaderTest.java | 169 ++
.../kv/snapshot/KvSnapshotDataUploaderTest.java | 138 ++
.../kv/snapshot/KvTabletSnapshotTargetTest.java | 470 +++++
.../kv/snapshot/PeriodicSnapshotManagerTest.java | 261 +++
.../kv/snapshot/RocksIncrementalSnapshotTest.java | 197 +++
.../kv/snapshot/SharedKvFileRegistryTest.java | 95 +
.../server/kv/snapshot/SnapshotLocationTest.java | 114 ++
.../server/kv/snapshot/SnapshotsCleanerTest.java | 165 ++
.../snapshot/TestCompletedSnapshotHandleStore.java | 103 ++
.../TestingCompletedKvSnapshotCommitter.java | 88 +
.../snapshot/TestingCompletedSnapshotHandle.java | 49 +
.../ZooKeeperCompletedSnapshotStoreTest.java | 144 ++
.../fluss/server/kv/wal/ArrowWalBuilderTest.java | 0
.../lakehouse/TestingPaimonStoragePlugin.java | 0
.../fluss/server/log/AbstractIndexTest.java | 0
.../apache/fluss/server/log/FetchParamsTest.java | 57 +
.../org/apache/fluss/server/log/LocalLogTest.java | 417 +++++
.../apache/fluss/server/log/LogManagerTest.java | 313 ++++
.../apache/fluss/server/log/LogSegmentTest.java | 452 +++++
.../apache/fluss/server/log/LogSegmentsTest.java | 204 +++
.../org/apache/fluss/server/log/LogTabletTest.java | 627 +++++++
.../org/apache/fluss/server/log/LogTestUtils.java | 113 ++
.../apache/fluss/server/log/OffsetIndexTest.java | 226 +++
.../org/apache/fluss/server/log/TimeIndexTest.java | 156 ++
.../server/log/WriterSnapshotMapJsonSerdeTest.java | 54 +
.../fluss/server/log/WriterStateManagerTest.java | 0
.../log/remote/CommitRemoteLogManifestITCase.java | 134 ++
.../log/remote/DefaultRemoteLogStorageTest.java | 0
.../fluss/server/log/remote/RemoteLogITCase.java | 217 +++
.../server/log/remote/RemoteLogIndexCacheTest.java | 269 +++
.../server/log/remote/RemoteLogManagerTest.java | 537 ++++++
.../log/remote/RemoteLogManifestJsonSerdeTest.java | 115 ++
.../fluss/server/log/remote/RemoteLogTTLTest.java | 92 +
.../server/log/remote/RemoteLogTabletTest.java | 199 +++
.../fluss/server/log/remote/RemoteLogTestBase.java | 156 ++
.../server/log/remote/TestingRemoteLogStorage.java | 47 +
.../metadata/CoordinatorMetadataCacheTest.java | 89 +
.../server/metadata/MetadataUpdateITCase.java | 516 ++++++
.../metadata/TabletServerMetadataCacheTest.java | 290 +++
.../server/metrics/ServerMetricUtilsTest.java | 312 ++++
.../server/metrics/group/TestingMetricGroups.java | 42 +
.../fluss/server/replica/AdjustIsrITCase.java | 258 +++
.../fluss/server/replica/AdjustIsrManagerTest.java | 59 +
.../apache/fluss/server/replica/AdjustIsrTest.java | 147 ++
.../replica/CommitLakeTableSnapshotITCase.java | 178 ++
.../fluss/server/replica/FollowerReplicaTest.java | 148 ++
.../replica/HighWatermarkPersistenceTest.java | 202 +++
.../server/replica/KvReplicaRestoreITCase.java | 0
.../fluss/server/replica/KvSnapshotITCase.java | 215 +++
.../replica/NotifyReplicaLakeTableOffsetTest.java | 91 +
.../replica/RemoveOfflineReplicaFromIsrITCase.java | 152 ++
.../fluss/server/replica/ReplicaManagerTest.java | 1810 +++++++++++++++++++
.../apache/fluss/server/replica/ReplicaTest.java | 629 +++++++
.../fluss/server/replica/ReplicaTestBase.java | 644 +++++++
.../server/replica/delay/DelayedFetchLogTest.java | 166 ++
.../server/replica/delay/DelayedOperationTest.java | 370 ++++
.../server/replica/delay/DelayedWriteTest.java | 189 ++
.../replica/fetcher/RemoteLeaderEndpointTest.java | 150 ++
.../replica/fetcher/ReplicaFetcherITCase.java | 347 ++++
.../replica/fetcher/ReplicaFetcherManagerTest.java | 139 ++
.../replica/fetcher/ReplicaFetcherThreadTest.java | 400 +++++
.../replica/fetcher/TestingLeaderEndpoint.java | 137 ++
.../server/tablet/TabletServerFailOverITCase.java | 188 ++
.../fluss/server/tablet/TabletServerITCase.java | 74 +
.../fluss/server/tablet/TabletServerTest.java | 92 +
.../fluss/server/tablet/TabletServiceITCase.java | 953 ++++++++++
.../server/tablet/TestTabletServerGateway.java | 410 +++++
.../server/testutils/FlussClusterExtension.java | 0
.../apache/fluss/server/testutils/KvTestUtils.java | 195 +++
.../server/testutils/PartitionMetadataAssert.java | 51 +
.../server/testutils/RpcMessageTestUtils.java | 484 +++++
.../server/testutils/TableMetadataAssert.java | 49 +
.../testutils/TestingServerMetadataCache.java | 70 +
.../fluss/server/utils/AvailablePortExtension.java | 53 +
.../server/utils/ConfigurationParserUtilsTest.java | 104 ++
.../fluss/server/utils/ResourceGuardTest.java | 145 ++
.../fluss/server/utils/RpcGatewayManagerTest.java | 70 +
.../server/utils/TableAssignmentUtilsTest.java | 629 +++++++
.../fluss/server/utils/TestProcessBuilder.java | 170 ++
.../fluss/server/utils/timer/DefaultTimerTest.java | 137 ++
.../server/utils/timer/TimerTaskListTest.java | 106 ++
.../apache/fluss/server/zk/NOPErrorHandler.java | 31 +
.../fluss/server/zk/ZooKeeperClientTest.java | 0
.../fluss/server/zk/ZooKeeperExtension.java | 0
.../apache/fluss/server/zk/ZooKeeperTestUtils.java | 74 +
.../zk/data/BucketSnapshotJsonSerdeTest.java | 44 +
.../zk/data/CoordinatorAddressJsonSerdeTest.java | 0
.../zk/data/DatabaseRegistrationJsonSerdeTest.java | 0
.../zk/data/LakeTableSnapshotJsonSerdeTest.java | 97 ++
.../server/zk/data/LeaderAndIsrJsonSerdeTest.java | 46 +
.../zk/data/PartitionAssignmentJsonSerdeTest.java | 48 +
.../data/RemoteLogManifestHandleJsonSerdeTest.java | 47 +
.../server/zk/data/ResourceAclJsonSerdeTest.java | 72 +
.../zk/data/TableAssignmentJsonSerdeTest.java | 43 +
.../zk/data/TableRegistrationJsonSerdeTest.java | 0
.../TabletServerRegistrationJsonSerdeTest.java | 0
.../apache/fluss/server/zk/data/ZkDataTest.java | 64 +
...libaba.fluss.lake.lakestorage.LakeStoragePlugin | 19 -
...apache.fluss.lake.lakestorage.LakeStoragePlugin | 19 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-test-utils/pom.xml | 2 +-
.../fluss/testutils/common/AllCallbackWrapper.java | 46 -
.../fluss/testutils/common/CheckedThread.java | 128 --
.../fluss/testutils/common/ClassLoaderUtils.java | 44 -
.../fluss/testutils/common/CommonTestUtils.java | 292 ----
.../common/ContextClassLoaderExtension.java | 130 --
.../fluss/testutils/common/CustomExtension.java | 49 -
.../testutils/common/EachCallbackWrapper.java | 46 -
.../fluss/testutils/common/FlussAssertions.java | 155 --
.../common/FlussCompletableFutureAssert.java | 130 --
.../ManuallyTriggeredScheduledExecutorService.java | 335 ----
.../fluss/testutils/common/OneShotLatch.java | 136 --
.../fluss/testutils/common/ScheduledTask.java | 118 --
.../testutils/common/TestExecutorExtension.java | 54 -
.../testutils/common/TestLoggerExtension.java | 86 -
.../testutils/junit/parameterized/Parameter.java | 30 -
.../parameterized/ParameterizedTestExtension.java | 251 ---
.../testutils/junit/parameterized/Parameters.java | 30 -
.../fluss/testutils/common/AllCallbackWrapper.java | 46 +
.../fluss/testutils/common/CheckedThread.java | 128 ++
.../fluss/testutils/common/ClassLoaderUtils.java | 44 +
.../fluss/testutils/common/CommonTestUtils.java | 292 ++++
.../common/ContextClassLoaderExtension.java | 130 ++
.../fluss/testutils/common/CustomExtension.java | 49 +
.../testutils/common/EachCallbackWrapper.java | 46 +
.../fluss/testutils/common/FlussAssertions.java | 155 ++
.../common/FlussCompletableFutureAssert.java | 130 ++
.../ManuallyTriggeredScheduledExecutorService.java | 335 ++++
.../fluss/testutils/common/OneShotLatch.java | 136 ++
.../fluss/testutils/common/ScheduledTask.java | 118 ++
.../testutils/common/TestExecutorExtension.java | 54 +
.../testutils/common/TestLoggerExtension.java | 86 +
.../testutils/junit/parameterized/Parameter.java | 30 +
.../parameterized/ParameterizedTestExtension.java | 251 +++
.../testutils/junit/parameterized/Parameters.java | 30 +
.../testutils/common/FlussAssertionsTest.java | 35 -
.../fluss/testutils/common/OneShotLatchTest.java | 51 -
.../junit/ParameterizedTestExtensionTest.java | 45 -
.../testutils/common/FlussAssertionsTest.java | 35 +
.../fluss/testutils/common/OneShotLatchTest.java | 51 +
.../junit/ParameterizedTestExtensionTest.java | 45 +
.../org.junit.jupiter.api.extension.Extension | 2 +-
pom.xml | 18 +-
tools/ci/fluss-ci-tools/pom.xml | 2 +-
.../tools/ci/licensecheck/JarFileChecker.java | 325 ----
.../tools/ci/licensecheck/LicenseChecker.java | 54 -
.../tools/ci/licensecheck/NoticeFileChecker.java | 404 -----
.../ci/utils/dependency/DependencyParser.java | 223 ---
.../fluss/tools/ci/utils/deploy/DeployParser.java | 70 -
.../tools/ci/utils/notice/NoticeContents.java | 41 -
.../fluss/tools/ci/utils/notice/NoticeParser.java | 91 -
.../fluss/tools/ci/utils/shade/ShadeParser.java | 109 --
.../fluss/tools/ci/utils/shared/Dependency.java | 134 --
.../tools/ci/utils/shared/DependencyTree.java | 122 --
.../fluss/tools/ci/utils/shared/ParserUtils.java | 73 -
.../tools/ci/licensecheck/JarFileChecker.java | 325 ++++
.../tools/ci/licensecheck/LicenseChecker.java | 54 +
.../tools/ci/licensecheck/NoticeFileChecker.java | 403 +++++
.../ci/utils/dependency/DependencyParser.java | 223 +++
.../fluss/tools/ci/utils/deploy/DeployParser.java | 70 +
.../tools/ci/utils/notice/NoticeContents.java | 41 +
.../fluss/tools/ci/utils/notice/NoticeParser.java | 91 +
.../fluss/tools/ci/utils/shade/ShadeParser.java | 109 ++
.../fluss/tools/ci/utils/shared/Dependency.java | 134 ++
.../tools/ci/utils/shared/DependencyTree.java | 122 ++
.../fluss/tools/ci/utils/shared/ParserUtils.java | 73 +
.../tools/ci/licensecheck/JarFileCheckerTest.java | 525 ------
.../ci/licensecheck/NoticeFileCheckerTest.java | 208 ---
.../utils/dependency/DependencyParserCopyTest.java | 121 --
.../utils/dependency/DependencyParserTreeTest.java | 148 --
.../tools/ci/utils/deploy/DeployParserTest.java | 56 -
.../tools/ci/utils/notice/NoticeParserTest.java | 92 -
.../tools/ci/utils/shade/ShadeParserTest.java | 95 -
.../tools/ci/utils/shared/DependencyTreeTest.java | 95 -
.../tools/ci/licensecheck/JarFileCheckerTest.java | 525 ++++++
.../ci/licensecheck/NoticeFileCheckerTest.java | 208 +++
.../utils/dependency/DependencyParserCopyTest.java | 121 ++
.../utils/dependency/DependencyParserTreeTest.java | 148 ++
.../tools/ci/utils/deploy/DeployParserTest.java | 56 +
.../tools/ci/utils/notice/NoticeParserTest.java | 92 +
.../tools/ci/utils/shade/ShadeParserTest.java | 95 +
.../tools/ci/utils/shared/DependencyTreeTest.java | 95 +
tools/maven/checkstyle.xml | 4 +-
tools/maven/suppressions.xml | 2 +-
website/blog/2024-11-29-fluss-open-source.md | 6 +-
website/blog/2025-05-28-unveil-fluss-logo.md | 4 +-
website/blog/2025-06-01-partial-updates.md | 2 +-
website/blog/releases/0.6.md | 4 +-
website/blog/releases/0.7.md | 2 +-
website/community/dev/ide-setup.md | 4 +-
.../community/how-to-contribute/contribute-code.md | 8 +-
.../community/how-to-contribute/contribute-docs.md | 2 +-
website/docs/apis/java-client.md | 4 +-
website/docs/engine-flink/datastream.mdx | 16 +-
.../maintenance/observability/metric-reporters.md | 4 +-
.../tiered-storage/lakehouse-storage.md | 6 +-
website/docs/quickstart/security.md | 16 +-
website/src/pages/downloads.md | 42 +-
3186 files changed, 201019 insertions(+), 200820 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
index 6963fc48a..0a237e71e 100644
--- a/.github/ISSUE_TEMPLATE/bug.yml
+++ b/.github/ISSUE_TEMPLATE/bug.yml
@@ -28,10 +28,10 @@ body:
attributes:
label: Search before asking
description: >
- Please search [issues](https://github.com/alibaba/fluss/issues) to check if your issue has already been reported.
+ Please search [issues](https://github.com/apache/fluss/issues) to check if your issue has already been reported.
options:
- label: >
- I searched in the [issues](https://github.com/alibaba/fluss/issues) and found nothing similar.
+ I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.
required: true
- type: dropdown
attributes:
diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml
index 5fc951ee9..e12724ebe 100644
--- a/.github/ISSUE_TEMPLATE/feature.yml
+++ b/.github/ISSUE_TEMPLATE/feature.yml
@@ -28,10 +28,10 @@ body:
attributes:
label: Search before asking
description: >
- Please search [issues](https://github.com/alibaba/fluss/issues) to check if your issue has already been reported.
+ Please search [issues](https://github.com/apache/fluss/issues) to check if your issue has already been reported.
options:
- label: >
- I searched in the [issues](https://github.com/alibaba/fluss/issues) and found nothing similar.
+ I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.
required: true
- type: textarea
attributes:
diff --git a/.github/ISSUE_TEMPLATE/task.yml b/.github/ISSUE_TEMPLATE/task.yml
index b7fb3efef..65cee5b1e 100644
--- a/.github/ISSUE_TEMPLATE/task.yml
+++ b/.github/ISSUE_TEMPLATE/task.yml
@@ -28,10 +28,10 @@ body:
attributes:
label: Search before asking
description: >
- Please search [issues](https://github.com/alibaba/fluss/issues) to check if your issue has already been reported.
+ Please search [issues](https://github.com/apache/fluss/issues) to check if your issue has already been reported.
options:
- label: >
- I searched in the [issues](https://github.com/alibaba/fluss/issues) and found nothing similar.
+ I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.
required: true
- type: textarea
attributes:
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index a677c148f..238dab59f 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -3,7 +3,7 @@
## Contribution Checklist
- - Make sure that the pull request corresponds to a [GitHub issue](https://github.com/alibaba/fluss/issues). Exceptions are made for typos in JavaDoc or documentation files, which need no issue.
+ - Make sure that the pull request corresponds to a [GitHub issue](https://github.com/apache/fluss/issues). Exceptions are made for typos in JavaDoc or documentation files, which need no issue.
- Name the pull request in the format "[component] Title of the pull request", where *[component]* should be replaced by the name of the component being changed. Typically, this corresponds to the component label assigned to the issue (e.g., [kv], [log], [client], [flink]). Skip *[component]* if you are unsure about which is the best component.
diff --git a/fluss-client/pom.xml b/fluss-client/pom.xml
index 4b11c8da2..8f9544887 100644
--- a/fluss-client/pom.xml
+++ b/fluss-client/pom.xml
@@ -21,7 +21,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss</artifactId>
<version>0.8-SNAPSHOT</version>
</parent>
@@ -32,33 +32,33 @@
<dependencies>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-rpc</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-metrics-jmx</artifactId>
<version>${project.version}</version>
</dependency>
<!-- test dependency -->
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-server</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-server</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
@@ -73,7 +73,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
@@ -81,12 +81,12 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-test-utils</artifactId>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-rpc</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/Connection.java b/fluss-client/src/main/java/com/alibaba/fluss/client/Connection.java
deleted file mode 100644
index d082e458b..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/Connection.java
+++ /dev/null
@@ -1,62 +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.
- */
-
-package com.alibaba.fluss.client;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.metadata.TablePath;
-
-import javax.annotation.concurrent.ThreadSafe;
-
-/**
- * A cluster connection encapsulating lower level individual connections to actual Fluss servers.
- * Connections are instantiated through the {@link ConnectionFactory} class. The lifecycle of the
- * connection is managed by the caller, who has to {@link #close()} the connection to release the
- * resources. The connection object contains logic to find the Coordinator, locate table buckets out
- * on the cluster, keeps a cache of locations and then knows how to re-calibrate after they move.
- * The individual connections to servers, meta cache, etc. are all shared by the {@link Table} and
- * {@link Admin} instances obtained from this connection.
- *
- * <p>Connection creation is a heavy-weight operation. Connection implementations are thread-safe,
- * so that the client can create a connection once, and share it with different threads. {@code
- * Table} and {@link Admin} instances, on the other hand, are light-weight and are not thread-safe.
- * Typically, a single connection per client application is instantiated and every thread will
- * obtain its own {@link Table} instance. Caching or pooling of {@link Table} and {@link Admin} is
- * not recommended.
- *
- * @since 0.1
- */
-@PublicEvolving
-@ThreadSafe
-public interface Connection extends AutoCloseable {
-
- /** Retrieve the configuration used to create this connection. */
- Configuration getConfiguration();
-
- /** Retrieve a new Admin client to administer a Fluss cluster. */
- Admin getAdmin();
-
- /** Retrieve a new Table client to operate data in table. */
- Table getTable(TablePath tablePath);
-
- /** Close the connection and release all resources. */
- @Override
- void close() throws Exception;
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/ConnectionFactory.java b/fluss-client/src/main/java/com/alibaba/fluss/client/ConnectionFactory.java
deleted file mode 100644
index 51a2208f9..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/ConnectionFactory.java
+++ /dev/null
@@ -1,68 +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.
- */
-
-package com.alibaba.fluss.client;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.metrics.registry.MetricRegistry;
-
-/**
- * A non-instantiable class that manages creation of {@link Connection}s. Managing the lifecycle of
- * the {@link Connection}s to the cluster is the responsibility of the caller. From a {@link
- * Connection}, {@link Admin} implementations are retrieved with {@link Connection#getAdmin()}.
- *
- * @since 0.1
- */
-@PublicEvolving
-public class ConnectionFactory {
-
- private ConnectionFactory() {}
-
- /**
- * Creates a new {@link Connection} to the Fluss cluster. The given configuration at least needs
- * to contain "bootstrap.servers" to discover the Fluss cluster. Here is a simple example:
- *
- * <pre>{@code
- * Configuration conf = new Configuration();
- * conf.setString("bootstrap.servers", "localhost:9092");
- * Connection connection = ConnectionFactory.createConnection(conf);
- * Admin admin = connection.getAdmin();
- * try {
- * // Use the admin as needed, for a single operation and a single thread
- * } finally {
- * admin.close();
- * connection.close();
- * }
- * }</pre>
- */
- public static Connection createConnection(Configuration conf) {
- return new FlussConnection(conf);
- }
-
- /**
- * Create a new {@link Connection} to the Fluss cluster with registering metrics to the given
- * {@code metricRegistry}. It's mainly used for client to register metrics to external metrics
- * system.
- *
- * <p>See more comments in method {@link #createConnection(Configuration)}
- */
- public static Connection createConnection(Configuration conf, MetricRegistry metricRegistry) {
- return new FlussConnection(conf, metricRegistry);
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/FlussConnection.java b/fluss-client/src/main/java/com/alibaba/fluss/client/FlussConnection.java
deleted file mode 100644
index 837ecd905..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/FlussConnection.java
+++ /dev/null
@@ -1,213 +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.
- */
-
-package com.alibaba.fluss.client;
-
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.admin.FlussAdmin;
-import com.alibaba.fluss.client.lookup.LookupClient;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.client.table.FlussTable;
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.client.table.scanner.RemoteFileDownloader;
-import com.alibaba.fluss.client.token.DefaultSecurityTokenManager;
-import com.alibaba.fluss.client.token.DefaultSecurityTokenProvider;
-import com.alibaba.fluss.client.token.SecurityTokenManager;
-import com.alibaba.fluss.client.token.SecurityTokenProvider;
-import com.alibaba.fluss.client.write.WriterClient;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.fs.FileSystem;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.metrics.registry.MetricRegistry;
-import com.alibaba.fluss.rpc.GatewayClientProxy;
-import com.alibaba.fluss.rpc.RpcClient;
-import com.alibaba.fluss.rpc.gateway.AdminReadOnlyGateway;
-import com.alibaba.fluss.rpc.metrics.ClientMetricGroup;
-
-import java.time.Duration;
-import java.util.HashMap;
-import java.util.List;
-
-import static com.alibaba.fluss.client.utils.MetadataUtils.getOneAvailableTabletServerNode;
-import static com.alibaba.fluss.config.FlussConfigUtils.CLIENT_PREFIX;
-import static com.alibaba.fluss.utils.PropertiesUtils.extractPrefix;
-
-/** A connection to Fluss cluster, and holds the client session resources. */
-public final class FlussConnection implements Connection {
- private final Configuration conf;
- private final RpcClient rpcClient;
- private final MetadataUpdater metadataUpdater;
- private final MetricRegistry metricRegistry;
- private final ClientMetricGroup clientMetricGroup;
-
- private volatile WriterClient writerClient;
- private volatile LookupClient lookupClient;
- private volatile RemoteFileDownloader remoteFileDownloader;
- private volatile SecurityTokenManager securityTokenManager;
-
- FlussConnection(Configuration conf) {
- this(conf, MetricRegistry.create(conf, null));
- }
-
- FlussConnection(Configuration conf, MetricRegistry metricRegistry) {
- this.conf = conf;
- // init Filesystem with configuration from FlussConnection,
- // only pass options with 'client.fs.' prefix
- FileSystem.initialize(
- Configuration.fromMap(
- extractPrefix(new HashMap<>(conf.toMap()), CLIENT_PREFIX + "fs.")),
- null);
- // for client metrics.
- setupClientMetricsConfiguration();
- String clientId = conf.getString(ConfigOptions.CLIENT_ID);
- this.metricRegistry = metricRegistry;
- this.clientMetricGroup = new ClientMetricGroup(metricRegistry, clientId);
- this.rpcClient = RpcClient.create(conf, clientMetricGroup, false);
-
- // TODO this maybe remove after we introduce client metadata.
- this.metadataUpdater = new MetadataUpdater(conf, rpcClient);
- this.writerClient = null;
- }
-
- @Override
- public Configuration getConfiguration() {
- return conf;
- }
-
- @Override
- public Admin getAdmin() {
- return new FlussAdmin(rpcClient, metadataUpdater);
- }
-
- @Override
- public Table getTable(TablePath tablePath) {
- // force to update the table info from server to avoid stale data in cache
- metadataUpdater.updateTableOrPartitionMetadata(tablePath, null);
- TableInfo tableInfo = metadataUpdater.getTableInfoOrElseThrow(tablePath);
- return new FlussTable(this, tablePath, tableInfo);
- }
-
- public RpcClient getRpcClient() {
- return rpcClient;
- }
-
- public MetadataUpdater getMetadataUpdater() {
- return metadataUpdater;
- }
-
- public ClientMetricGroup getClientMetricGroup() {
- return clientMetricGroup;
- }
-
- public WriterClient getOrCreateWriterClient() {
- if (writerClient == null) {
- synchronized (this) {
- if (writerClient == null) {
- writerClient =
- new WriterClient(
- conf, metadataUpdater, clientMetricGroup, this.getAdmin());
- }
- }
- }
- return writerClient;
- }
-
- public LookupClient getOrCreateLookupClient() {
- if (lookupClient == null) {
- synchronized (this) {
- if (lookupClient == null) {
- lookupClient = new LookupClient(conf, metadataUpdater);
- }
- }
- }
- return lookupClient;
- }
-
- public RemoteFileDownloader getOrCreateRemoteFileDownloader() {
- if (remoteFileDownloader == null) {
- synchronized (this) {
- if (remoteFileDownloader == null) {
- remoteFileDownloader =
- new RemoteFileDownloader(
- conf.getInt(ConfigOptions.REMOTE_FILE_DOWNLOAD_THREAD_NUM));
- }
- // access remote files requires setting up filesystem security token manager
- if (securityTokenManager == null) {
- // prepare security token manager
- // create the admin read only gateway
- // todo: may add retry logic when no any available tablet server?
- AdminReadOnlyGateway gateway =
- GatewayClientProxy.createGatewayProxy(
- () ->
- getOneAvailableTabletServerNode(
- metadataUpdater.getCluster()),
- rpcClient,
- AdminReadOnlyGateway.class);
- SecurityTokenProvider securityTokenProvider =
- new DefaultSecurityTokenProvider(gateway);
- securityTokenManager =
- new DefaultSecurityTokenManager(conf, securityTokenProvider);
- try {
- securityTokenManager.start();
- } catch (Exception e) {
- throw new FlussRuntimeException("start security token manager failed", e);
- }
- }
- }
- }
- return remoteFileDownloader;
- }
-
- @Override
- public void close() throws Exception {
- if (writerClient != null) {
- writerClient.close(Duration.ofMillis(Long.MAX_VALUE));
- }
-
- if (lookupClient != null) {
- // timeout is Long.MAX_VALUE to make the pending get request
- // to be processed
- lookupClient.close(Duration.ofMillis(Long.MAX_VALUE));
- }
-
- if (remoteFileDownloader != null) {
- remoteFileDownloader.close();
- }
-
- if (securityTokenManager != null) {
- // todo: FLUSS-56910234 we don't have to wait until close fluss table
- // to stop securityTokenManager
- securityTokenManager.stop();
- }
-
- clientMetricGroup.close();
- rpcClient.close();
- metricRegistry.closeAsync().get();
- }
-
- private void setupClientMetricsConfiguration() {
- boolean enableClientMetrics = conf.getBoolean(ConfigOptions.CLIENT_METRICS_ENABLED);
- List<String> reporters = conf.get(ConfigOptions.METRICS_REPORTERS);
- if (enableClientMetrics && (reporters == null || reporters.isEmpty())) {
- // Client will use JMX reporter by default if not set.
- conf.setString(ConfigOptions.METRICS_REPORTERS.key(), "jmx");
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/Admin.java b/fluss-client/src/main/java/com/alibaba/fluss/client/admin/Admin.java
deleted file mode 100644
index 89bb7b455..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/Admin.java
+++ /dev/null
@@ -1,453 +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.
- */
-
-package com.alibaba.fluss.client.admin;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.client.metadata.KvSnapshotMetadata;
-import com.alibaba.fluss.client.metadata.KvSnapshots;
-import com.alibaba.fluss.client.metadata.LakeSnapshot;
-import com.alibaba.fluss.cluster.ServerNode;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.exception.DatabaseAlreadyExistException;
-import com.alibaba.fluss.exception.DatabaseNotEmptyException;
-import com.alibaba.fluss.exception.DatabaseNotExistException;
-import com.alibaba.fluss.exception.InvalidDatabaseException;
-import com.alibaba.fluss.exception.InvalidPartitionException;
-import com.alibaba.fluss.exception.InvalidReplicationFactorException;
-import com.alibaba.fluss.exception.InvalidTableException;
-import com.alibaba.fluss.exception.KvSnapshotNotExistException;
-import com.alibaba.fluss.exception.NonPrimaryKeyTableException;
-import com.alibaba.fluss.exception.PartitionAlreadyExistsException;
-import com.alibaba.fluss.exception.PartitionNotExistException;
-import com.alibaba.fluss.exception.SchemaNotExistException;
-import com.alibaba.fluss.exception.TableAlreadyExistException;
-import com.alibaba.fluss.exception.TableNotExistException;
-import com.alibaba.fluss.exception.TableNotPartitionedException;
-import com.alibaba.fluss.exception.TooManyBucketsException;
-import com.alibaba.fluss.exception.TooManyPartitionsException;
-import com.alibaba.fluss.metadata.DatabaseDescriptor;
-import com.alibaba.fluss.metadata.DatabaseInfo;
-import com.alibaba.fluss.metadata.PartitionInfo;
-import com.alibaba.fluss.metadata.PartitionSpec;
-import com.alibaba.fluss.metadata.ResolvedPartitionSpec;
-import com.alibaba.fluss.metadata.SchemaInfo;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.security.acl.AclBinding;
-import com.alibaba.fluss.security.acl.AclBindingFilter;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * The administrative client for Fluss, which supports managing and inspecting tables, servers,
- * configurations and ACLs.
- *
- * @since 0.1
- */
-@PublicEvolving
-public interface Admin extends AutoCloseable {
-
- /** Get the current server node information. asynchronously. */
- CompletableFuture<List<ServerNode>> getServerNodes();
-
- /**
- * Get the latest table schema of the given table asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * </ul>
- *
- * @param tablePath the table path of the table.
- */
- CompletableFuture<SchemaInfo> getTableSchema(TablePath tablePath);
-
- /**
- * Get the specific table schema of the given table by schema id asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * <li>{@link SchemaNotExistException} if the schema does not exist.
- * </ul>
- *
- * @param tablePath the table path of the table.
- */
- CompletableFuture<SchemaInfo> getTableSchema(TablePath tablePath, int schemaId);
-
- /**
- * Create a new database asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link DatabaseAlreadyExistException} if the database already exists and {@code
- * ignoreIfExists} is false.
- * </ul>
- *
- * @param databaseName The name of the database to create.
- * @param databaseDescriptor The descriptor of the database to create.
- * @param ignoreIfExists Flag to specify behavior when a database with the given name already
- * exists: if set to false, throw a DatabaseAlreadyExistException, if set to true, do
- * nothing.
- * @throws InvalidDatabaseException if the database name is invalid, e.g., contains illegal
- * characters, or exceeds the maximum length.
- */
- CompletableFuture<Void> createDatabase(
- String databaseName, DatabaseDescriptor databaseDescriptor, boolean ignoreIfExists);
-
- /**
- * Get the database with the given database name asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link DatabaseNotExistException} if the database does not exist.
- * </ul>
- *
- * @param databaseName The database name of the database.
- */
- CompletableFuture<DatabaseInfo> getDatabaseInfo(String databaseName);
-
- /**
- * Drop the database with the given name asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link DatabaseNotExistException} if the database does not exist and {@code
- * ignoreIfNotExists} is false.
- * <li>{@link DatabaseNotEmptyException} if the database is not empty and {@code cascade} is
- * false.
- * </ul>
- *
- * @param databaseName The name of the database to delete.
- * @param ignoreIfNotExists Flag to specify behavior when a database with the given name does
- * not exist: if set to false, throw a DatabaseNotExistException, if set to true, do
- * nothing.
- * @param cascade Flag to specify whether to delete all tables in the database.
- */
- CompletableFuture<Void> dropDatabase(
- String databaseName, boolean ignoreIfNotExists, boolean cascade);
-
- /**
- * Get whether database exists asynchronously.
- *
- * @param databaseName The name of the database to check.
- */
- CompletableFuture<Boolean> databaseExists(String databaseName);
-
- /** List all databases in fluss cluster asynchronously. */
- CompletableFuture<List<String>> listDatabases();
-
- /**
- * Create a new table asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link DatabaseNotExistException} if the database in the table path does not exist.
- * <li>{@link TableAlreadyExistException} if the table already exists and {@code
- * ignoreIfExists} is false.
- * <li>{@link InvalidReplicationFactorException} if the table's replication factor is larger
- * than the number of available tablet servers.
- * </ul>
- *
- * @param tablePath The tablePath of the table.
- * @param tableDescriptor The table to create.
- * @throws InvalidTableException if the table name is invalid, e.g., contains illegal
- * characters, or exceeds the maximum length.
- * @throws InvalidDatabaseException if the database name is invalid, e.g., contains illegal
- * characters, or exceeds the maximum length.
- */
- CompletableFuture<Void> createTable(
- TablePath tablePath, TableDescriptor tableDescriptor, boolean ignoreIfExists)
- throws InvalidTableException, InvalidDatabaseException;
-
- /**
- * Get the table with the given table path asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * </ul>
- *
- * @param tablePath The table path of the table.
- */
- CompletableFuture<TableInfo> getTableInfo(TablePath tablePath);
-
- /**
- * Drop the table with the given table path asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist and {@code
- * ignoreIfNotExists} is false.
- * </ul>
- *
- * @param tablePath The table path of the table.
- * @param ignoreIfNotExists Flag to specify behavior when a table with the given name does not
- * exist: if set to false, throw a TableNotExistException, if set to true, do nothing.
- */
- CompletableFuture<Void> dropTable(TablePath tablePath, boolean ignoreIfNotExists);
-
- /**
- * Get whether table exists asynchronously.
- *
- * @param tablePath The table path of the table.
- */
- CompletableFuture<Boolean> tableExists(TablePath tablePath);
-
- /**
- * List all tables in the given database in fluss cluster asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link DatabaseNotExistException} if the database does not exist.
- * </ul>
- *
- * @param databaseName The name of the database.
- */
- CompletableFuture<List<String>> listTables(String databaseName);
-
- /**
- * List all partitions in the given table in fluss cluster asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * <li>{@link TableNotPartitionedException} if the table is not partitioned.
- * </ul>
- *
- * @param tablePath The path of the table.
- */
- CompletableFuture<List<PartitionInfo>> listPartitionInfos(TablePath tablePath);
-
- /**
- * List all partitions in fluss cluster that are under the given table and the given partial
- * PartitionSpec asynchronously.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * <li>{@link TableNotPartitionedException} if the table is not partitioned.
- * <li>{@link InvalidPartitionException} if the input partition spec is invalid.
- * </ul>
- *
- * @param tablePath The path of the table.
- * @param partialPartitionSpec Part of table partition spec
- */
- CompletableFuture<List<PartitionInfo>> listPartitionInfos(
- TablePath tablePath, PartitionSpec partialPartitionSpec);
-
- /**
- * Create a new partition for a partitioned table.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * <li>{@link TableNotPartitionedException} if the table is not partitioned.
- * <li>{@link PartitionAlreadyExistsException} if the partition already exists and {@code
- * ignoreIfExists} is false.
- * <li>{@link InvalidPartitionException} if the input partition spec is invalid.
- * <li>{@link TooManyPartitionsException} if the number of partitions is larger than the
- * maximum number of partitions of one table, see {@link ConfigOptions#MAX_PARTITION_NUM}.
- * <li>{@link TooManyBucketsException} if the number of buckets is larger than the maximum
- * number of buckets of one table, see {@link ConfigOptions#MAX_BUCKET_NUM}.
- * </ul>
- *
- * @param tablePath The table path of the table.
- * @param partitionSpec The partition spec to add.
- * @param ignoreIfExists Flag to specify behavior when a partition with the given name already
- * exists: if set to false, throw a PartitionAlreadyExistsException, if set to true, do
- * nothing.
- */
- CompletableFuture<Void> createPartition(
- TablePath tablePath, PartitionSpec partitionSpec, boolean ignoreIfExists);
-
- /**
- * Drop a partition from a partitioned table.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * <li>{@link TableNotPartitionedException} if the table is not partitioned.
- * <li>{@link PartitionNotExistException} if the partition not exists and {@code
- * ignoreIfExists} is false.
- * <li>{@link InvalidPartitionException} if the input partition spec is invalid.
- * </ul>
- *
- * @param tablePath The table path of the table.
- * @param partitionSpec The partition spec to drop.
- * @param ignoreIfNotExists Flag to specify behavior when a partition with the given name does
- * not exist: if set to false, throw a PartitionNotExistException, if set to true, do
- * nothing.
- */
- CompletableFuture<Void> dropPartition(
- TablePath tablePath, PartitionSpec partitionSpec, boolean ignoreIfNotExists);
-
- /**
- * Get the latest kv snapshots of the given table asynchronously. A kv snapshot is a snapshot of
- * a bucket of a primary key table at a certain point in time. Therefore, there are at-most
- * {@code N} snapshots for a primary key table, {@code N} is the number of buckets.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * <li>{@link NonPrimaryKeyTableException} if the table is not a primary key table.
- * <li>{@link PartitionNotExistException} if the table is partitioned, use {@link
- * #getLatestKvSnapshots(TablePath, String)} instead to get the latest kv snapshot of a
- * partition of a partitioned table.
- * <li>
- * </ul>
- *
- * @param tablePath the table path of the table.
- */
- CompletableFuture<KvSnapshots> getLatestKvSnapshots(TablePath tablePath);
-
- /**
- * Get the latest kv snapshots of the given table partition asynchronously. A kv snapshot is a
- * snapshot of a bucket of a primary key table at a certain point in time. Therefore, there are
- * at-most {@code N} snapshots for a partition of a primary key table, {@code N} is the number
- * of buckets.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * <li>{@link NonPrimaryKeyTableException} if the table is not a primary key table.
- * <li>{@link PartitionNotExistException} if the partition does not exist
- * <li>{@link TableNotPartitionedException} if the table is not partitioned, use {@link
- * #getLatestKvSnapshots(TablePath)} instead to get the latest kv snapshots for a
- * non-partitioned table.
- * </ul>
- *
- * @param tablePath the table path of the table.
- * @param partitionName the partition name, see {@link ResolvedPartitionSpec#getPartitionName}
- * for the format of the partition name.
- */
- CompletableFuture<KvSnapshots> getLatestKvSnapshots(TablePath tablePath, String partitionName);
-
- /**
- * Get the kv snapshot metadata of the given kv snapshot asynchronously. The kv snapshot
- * metadata including the snapshot files for the kv tablet and the log offset for the changelog
- * at the snapshot time.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link KvSnapshotNotExistException} if the snapshot does not exist.
- * </ul>
- *
- * @param bucket the table bucket of the kv snapshot.
- * @param snapshotId the snapshot id.
- */
- CompletableFuture<KvSnapshotMetadata> getKvSnapshotMetadata(
- TableBucket bucket, long snapshotId);
-
- /**
- * Get table lake snapshot info of the given table asynchronously.
- *
- * <p>It'll get the latest snapshot for all the buckets of the table.
- *
- * <p>The following exceptions can be anticipated when calling {@code get()} on returned future.
- *
- * <ul>
- * <li>{@link TableNotExistException} if the table does not exist.
- * </ul>
- *
- * @param tablePath the table path of the table.
- */
- CompletableFuture<LakeSnapshot> getLatestLakeSnapshot(TablePath tablePath);
-
- /**
- * List offset for the specified buckets. This operation enables to find the beginning offset,
- * end offset as well as the offset matching a timestamp in buckets.
- *
- * @param tablePath the table path of the table.
- * @param buckets the buckets to fetch offset.
- * @param offsetSpec the offset spec to fetch.
- */
- ListOffsetsResult listOffsets(
- TablePath tablePath, Collection<Integer> buckets, OffsetSpec offsetSpec);
-
- /**
- * List offset for the specified buckets. This operation enables to find the beginning offset,
- * end offset as well as the offset matching a timestamp in buckets.
- *
- * @param tablePath the table path of the table.
- * @param partitionName the partition name of the partition,see {@link
- * ResolvedPartitionSpec#getPartitionName} * for the format of the partition name.
- * @param buckets the buckets to fetch offset.
- * @param offsetSpec the offset spec to fetch.
- */
- ListOffsetsResult listOffsets(
- TablePath tablePath,
- String partitionName,
- Collection<Integer> buckets,
- OffsetSpec offsetSpec);
-
- /**
- * Retrieves ACL entries filtered by principal for the specified resource.
- *
- * <p>1. Validates the user has 'describe' permission on the resource. 2. Returns entries
- * matching the principal if permitted; throws an exception otherwise.
- *
- * @return A CompletableFuture containing the filtered ACL entries.
- */
- CompletableFuture<Collection<AclBinding>> listAcls(AclBindingFilter aclBindingFilter);
-
- /**
- * Creates multiple ACL entries in a single atomic operation.
- *
- * <p>1. Validates the user has 'alter' permission on the resource. 2. Creates the ACL entries
- * if valid and permitted.
- *
- * <p>Each entry in {@code aclBindings} must have a valid principal, operation and permission.
- *
- * @param aclBindings List of ACL entries to create.
- * @return A CompletableFuture indicating completion of the operation.
- */
- CreateAclsResult createAcls(Collection<AclBinding> aclBindings);
-
- /**
- * Removes multiple ACL entries in a single atomic operation.
- *
- * <p>1. Validates the user has 'alter' permission on the resource. 2. Removes entries only if
- * they exactly match the provided entries (principal, operation, permission). 3. Does not
- * remove entries if any of the ACL entries do not exist.
- *
- * @param filters List of ACL entries to remove.
- * @return A CompletableFuture indicating completion of the operation.
- */
- DropAclsResult dropAcls(Collection<AclBindingFilter> filters);
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/CreateAclsResult.java b/fluss-client/src/main/java/com/alibaba/fluss/client/admin/CreateAclsResult.java
deleted file mode 100644
index c538f5f97..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/CreateAclsResult.java
+++ /dev/null
@@ -1,97 +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.
- */
-
-package com.alibaba.fluss.client.admin;
-
-import com.alibaba.fluss.rpc.messages.PbCreateAclRespInfo;
-import com.alibaba.fluss.rpc.protocol.ApiError;
-import com.alibaba.fluss.security.acl.AclBinding;
-import com.alibaba.fluss.utils.MapUtils;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-
-import static com.alibaba.fluss.rpc.util.CommonRpcMessageUtils.toAclBinding;
-
-/**
- * Represents the result of a batch ACL operation, managing asynchronous completion of individual
- * ACL operations.
- *
- * <p>This class tracks the execution status of multiple ACL operations (e.g., create/drop) by
- * associating each {@link AclBinding} with its corresponding {@link CompletableFuture}. It
- * processes RPC responses to complete or fail individual futures based on server-side results.
- *
- * @since 0.6
- */
-public class CreateAclsResult {
- private final Map<AclBinding, CompletableFuture<Void>> futures;
-
- public CreateAclsResult(Collection<AclBinding> aclBindings) {
- Map<AclBinding, CompletableFuture<Void>> futures = MapUtils.newConcurrentHashMap();
- aclBindings.forEach(aclBinding -> futures.put(aclBinding, new CompletableFuture<>()));
- this.futures = futures;
- }
-
- public CompletableFuture<Void> all() {
- return CompletableFuture.allOf(futures.values().toArray(new CompletableFuture[0]));
- }
-
- /**
- * Gets the map of ACL bindings to their associated futures.
- *
- * @return The map of ACL bindings to futures.
- */
- public Map<AclBinding, CompletableFuture<Void>> getFutures() {
- return futures;
- }
-
- /**
- * Completes individual futures based on RPC response information.
- *
- * <p>For each {@link PbCreateAclRespInfo} in the collection, Completes the future with success
- * or failure based on the response's error code.
- *
- * @param pbAclRespInfos Collection of protobuf response messages containing ACL operation
- * results.
- */
- public void complete(List<PbCreateAclRespInfo> pbAclRespInfos) {
- pbAclRespInfos.forEach(
- pbAclRespInfo -> {
- AclBinding aclBinding = toAclBinding(pbAclRespInfo.getAcl());
- CompletableFuture<Void> future = futures.get(aclBinding);
- ApiError error = ApiError.fromErrorMessage(pbAclRespInfo);
- if (error.isFailure()) {
- future.completeExceptionally(error.exception());
- } else {
- future.complete(null);
- }
- });
- }
-
- /**
- * Marks all futures as exceptionally completed with the provided throwable.
- *
- * <p>This method propagates a common exception (e.g., network error) to all tracked futures.
- *
- * @param t The throwable to propagate to all futures
- */
- public void completeExceptionally(Throwable t) {
- futures.values().forEach(future -> future.completeExceptionally(t));
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/DropAclsResult.java b/fluss-client/src/main/java/com/alibaba/fluss/client/admin/DropAclsResult.java
deleted file mode 100644
index 80a84fd8c..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/DropAclsResult.java
+++ /dev/null
@@ -1,169 +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.
- */
-
-package com.alibaba.fluss.client.admin;
-
-import com.alibaba.fluss.exception.ApiException;
-import com.alibaba.fluss.exception.UnknownServerException;
-import com.alibaba.fluss.rpc.messages.PbDropAclsFilterResult;
-import com.alibaba.fluss.rpc.messages.PbDropAclsMatchingAcl;
-import com.alibaba.fluss.rpc.protocol.ApiError;
-import com.alibaba.fluss.security.acl.AclBinding;
-import com.alibaba.fluss.security.acl.AclBindingFilter;
-import com.alibaba.fluss.utils.MapUtils;
-
-import javax.annotation.Nullable;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-
-import static com.alibaba.fluss.rpc.util.CommonRpcMessageUtils.toAclBinding;
-
-/** Represents the result of a drop ACLs operation. */
-public class DropAclsResult {
-
- /** A class containing either the deleted ACL binding or an exception if the delete failed. */
- public static class FilterResult {
- private final AclBinding binding;
- @Nullable private final ApiException exception;
-
- FilterResult(AclBinding binding, @Nullable ApiException exception) {
- this.binding = binding;
- this.exception = exception;
- }
-
- /** Return the deleted ACL binding or null if there was an error. */
- public AclBinding binding() {
- return binding;
- }
-
- /** Return an exception if the ACL delete was not successful or null if it was. */
- @Nullable
- public ApiException exception() {
- return exception;
- }
- }
-
- /** A class containing the results of the delete ACLs operation. */
- public static class FilterResults {
- private final List<FilterResult> values;
-
- FilterResults(List<FilterResult> values) {
- this.values = values;
- }
-
- /** Return a list of delete ACLs results for a given filter. */
- public List<FilterResult> values() {
- return values;
- }
- }
-
- private final Map<AclBindingFilter, CompletableFuture<FilterResults>> futures;
-
- DropAclsResult(Collection<AclBindingFilter> filters) {
- final Map<AclBindingFilter, CompletableFuture<DropAclsResult.FilterResults>> futures =
- MapUtils.newConcurrentHashMap();
- for (AclBindingFilter filter : filters) {
- if (!futures.containsKey(filter)) {
- futures.put(filter, new CompletableFuture<>());
- }
- }
- this.futures = futures;
- }
-
- /**
- * Return a future which succeeds only if all the ACLs deletions succeed, and which contains all
- * the deleted ACLs. Note that it if the filters don't match any ACLs, this is not considered an
- * error.
- */
- public CompletableFuture<Collection<AclBinding>> all() {
- return CompletableFuture.allOf(futures.values().toArray(new CompletableFuture[0]))
- .thenApply(v -> getAclBindings(futures));
- }
-
- private List<AclBinding> getAclBindings(
- Map<AclBindingFilter, CompletableFuture<FilterResults>> futures) {
- List<AclBinding> acls = new ArrayList<>();
- for (CompletableFuture<FilterResults> value : futures.values()) {
- FilterResults results;
- try {
- results = value.get();
- } catch (Throwable e) {
- // This should be unreachable, since the future returned by DeleteAclsResult#all ->
- // CompletableFuture#allOf should have failed if any Future failed.
- throw new IllegalStateException("DeleteAclsResult#all: internal error", e);
- }
- for (FilterResult result : results.values()) {
- if (result.exception() != null) {
- throw result.exception();
- }
- acls.add(result.binding());
- }
- }
- return acls;
- }
-
- public void completeExceptionally(Throwable t) {
- futures.values().forEach(future -> future.completeExceptionally(t));
- }
-
- public void complete(List<PbDropAclsFilterResult> results) {
- Iterator<PbDropAclsFilterResult> iter = results.iterator();
- futures.forEach(
- (bindingFilter, future) -> {
- if (!iter.hasNext()) {
- future.completeExceptionally(
- new UnknownServerException(
- "The broker reported no deletion result for the given filter."));
- } else {
- PbDropAclsFilterResult filterResult = iter.next();
- ApiError error = ApiError.fromErrorMessage(filterResult);
- if (error.isFailure()) {
- future.completeExceptionally(error.exception());
- } else {
- List<FilterResult> filterResults = new ArrayList<>();
- for (PbDropAclsMatchingAcl matchingAcl :
- filterResult.getMatchingAclsList()) {
- ApiError aclError = ApiError.fromErrorMessage(matchingAcl);
- AclBinding aclBinding = toAclBinding(matchingAcl.getAcl());
- if (aclError.isFailure()) {
- filterResults.add(
- new FilterResult(aclBinding, aclError.exception()));
- } else {
- filterResults.add(
- new FilterResult(
- toAclBinding(matchingAcl.getAcl()), null));
- }
- }
- future.complete(new FilterResults(filterResults));
- }
- }
- });
- }
-
- /**
- * Return a map from acl filters to futures which can be used to check the status of the
- * deletions by each filter.
- */
- public Map<AclBindingFilter, CompletableFuture<FilterResults>> values() {
- return futures;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/ListOffsetsResult.java b/fluss-client/src/main/java/com/alibaba/fluss/client/admin/ListOffsetsResult.java
deleted file mode 100644
index 5b41f3aee..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/ListOffsetsResult.java
+++ /dev/null
@@ -1,53 +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.
- */
-
-package com.alibaba.fluss.client.admin;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import java.util.stream.Collectors;
-
-/**
- * Result of list offsets request.
- *
- * @since 0.2
- */
-@PublicEvolving
-public class ListOffsetsResult {
- private final Map<Integer, CompletableFuture<Long>> futures;
-
- public ListOffsetsResult(Map<Integer, CompletableFuture<Long>> futures) {
- this.futures = futures;
- }
-
- public CompletableFuture<Long> bucketResult(int bucket) {
- return futures.get(bucket);
- }
-
- public CompletableFuture<Map<Integer, Long>> all() {
- return CompletableFuture.allOf(futures.values().toArray(new CompletableFuture[0]))
- .thenApply(
- v ->
- futures.entrySet().stream()
- .collect(
- Collectors.toMap(
- Map.Entry::getKey,
- e -> e.getValue().join())));
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/OffsetSpec.java b/fluss-client/src/main/java/com/alibaba/fluss/client/admin/OffsetSpec.java
deleted file mode 100644
index a5fa7f8a6..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/admin/OffsetSpec.java
+++ /dev/null
@@ -1,51 +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.
- */
-
-package com.alibaba.fluss.client.admin;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-
-/**
- * Offset spec. Used for list offsets request.
- *
- * @since 0.2
- */
-@PublicEvolving
-public abstract class OffsetSpec {
- public static final int LIST_EARLIEST_OFFSET = 0;
- public static final int LIST_LATEST_OFFSET = 1;
- public static final int LIST_OFFSET_FROM_TIMESTAMP = 2;
-
- /** Earliest offset spec. */
- public static class EarliestSpec extends OffsetSpec {}
-
- /** latest offset spec. */
- public static class LatestSpec extends OffsetSpec {}
-
- /** timestamp offset spec. */
- public static class TimestampSpec extends OffsetSpec {
- private final long timestamp;
-
- public TimestampSpec(long timestamp) {
- this.timestamp = timestamp;
- }
-
- public long getTimestamp() {
- return timestamp;
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/AbstractLookupBatch.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/AbstractLookupBatch.java
deleted file mode 100644
index 7dda386d9..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/AbstractLookupBatch.java
+++ /dev/null
@@ -1,59 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.TableBucket;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/** An abstract lookup batch. */
-@Internal
-public abstract class AbstractLookupBatch<T> {
-
- protected final List<AbstractLookupQuery<T>> lookups;
- private final TableBucket tableBucket;
-
- public AbstractLookupBatch(TableBucket tableBucket) {
- this.lookups = new ArrayList<>();
- this.tableBucket = tableBucket;
- }
-
- /** Complete the lookup operations using given values . */
- public abstract void complete(List<T> values);
-
- public void addLookup(AbstractLookupQuery<T> lookup) {
- lookups.add(lookup);
- }
-
- public List<AbstractLookupQuery<T>> lookups() {
- return lookups;
- }
-
- public TableBucket tableBucket() {
- return tableBucket;
- }
-
- /** Complete the get operations with given exception. */
- public void completeExceptionally(Exception exception) {
- for (AbstractLookupQuery<T> lookup : lookups) {
- lookup.future().completeExceptionally(exception);
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/AbstractLookupQuery.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/AbstractLookupQuery.java
deleted file mode 100644
index eacb71ed9..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/AbstractLookupQuery.java
+++ /dev/null
@@ -1,48 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.TableBucket;
-
-import java.util.concurrent.CompletableFuture;
-
-/** Abstract Class to represent a lookup operation. */
-@Internal
-public abstract class AbstractLookupQuery<T> {
-
- private final TableBucket tableBucket;
- private final byte[] key;
-
- public AbstractLookupQuery(TableBucket tableBucket, byte[] key) {
- this.tableBucket = tableBucket;
- this.key = key;
- }
-
- public byte[] key() {
- return key;
- }
-
- public TableBucket tableBucket() {
- return tableBucket;
- }
-
- public abstract LookupType lookupType();
-
- public abstract CompletableFuture<T> future();
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/Lookup.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/Lookup.java
deleted file mode 100644
index 58b8904dc..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/Lookup.java
+++ /dev/null
@@ -1,99 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Used to configure and create a {@link Lookuper} to lookup rows of a primary key table. The built
- * Lookuper can be a primary key lookuper that lookups by the primary key, or a prefix key lookup
- * that lookups by the prefix key of the primary key.
- *
- * <p>{@link Lookup} objects are immutable and can be shared between threads. Refinement methods,
- * like {@link #lookupBy}, create new Lookup instances.
- *
- * <p>Example1: Create a Primary Key Lookuper. Given a table with primary key column [k STRING].
- *
- * <pre>{@code
- * Lookuper lookuper = table.newLookup().createLookuper();
- * CompletableFuture<LookupResult> resultFuture = lookuper.lookup(GenericRow.of("key1"));
- * resultFuture.get().getRows().forEach(row -> {
- * System.out.println(row);
- * });
- * }</pre>
- *
- * <p>Example2: Create a Prefix Key Lookuper. Given a table with primary key column [a INT, b
- * STRING, c BIGINT] and bucket key [a, b].
- *
- * <pre>{@code
- * Lookuper lookuper = table.newLookup().lookupBy("a", "b").createLookuper();
- * CompletableFuture<LookupResult> resultFuture = lookuper.lookup(GenericRow.of(1, "b1"));
- * resultFuture.get().getRows().forEach(row -> {
- * System.out.println(row);
- * });
- * }</pre>
- *
- * @since 0.6
- */
-@PublicEvolving
-public interface Lookup {
-
- /**
- * Returns a new Lookup instance with the given lookup columns. By default, the lookup columns
- * are the primary key columns of the table. The specified columns must be a prefix subset of
- * the physical primary key columns (i.e., the primary key columns exclude partition columns).
- *
- * <p>Note: Currently, if you want to lookup with specified lookup columns (i.e., prefix key
- * lookup), the table you created must both define the primary key and the bucket key, in
- * addition, the lookup columns needs to be equals with bucket key, and to be a part of the
- * primary key and must be a prefix of the primary key. For example, if a table has fields
- * [a,b,c,d], and the primary key is set to [a, b, c], with the bucket key set to [a, b], then
- * the schema of the lookup columns would also be [a, b]. This pattern can create a Prefix Key
- * Lookuper lookup rows by prefix of the primary key.
- *
- * <p>TODO: currently, the interface only support bucket key as the prefix key to lookup.
- * Generalize the prefix key lookup to support any prefix keys.
- *
- * <p>We also support prefix key lookup for partitioned tables. The schema of the lookup columns
- * should contain partition fields and bucket key. In addition, the schema of the lookup columns
- * excluded partition fields should be a prefix of primary key excluded partition fields.
- *
- * @param lookupColumnNames the specified columns to lookup by
- */
- Lookup lookupBy(List<String> lookupColumnNames);
-
- /**
- * @see #lookupBy(List) for more details.
- * @param lookupColumnNames the specified columns to lookup by
- */
- default Lookup lookupBy(String... lookupColumnNames) {
- return lookupBy(Arrays.asList(lookupColumnNames));
- }
-
- /**
- * Creates a {@link Lookuper} instance to lookup rows of a primary key table by the specified
- * lookup columns. By default, the lookup columns are the primary key columns, but can be
- * changed with ({@link #lookupBy(List)}) method.
- *
- * @return the lookuper
- */
- Lookuper createLookuper();
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupBatch.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupBatch.java
deleted file mode 100644
index d5c4d5821..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupBatch.java
+++ /dev/null
@@ -1,79 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.metadata.TableBucket;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/** A batch that contains the lookup operations that send to same tablet bucket together. */
-@Internal
-public class LookupBatch {
-
- /** The table bucket that the lookup operations should fall into. */
- private final TableBucket tableBucket;
-
- private final List<LookupQuery> lookups;
-
- public LookupBatch(TableBucket tableBucket) {
- this.tableBucket = tableBucket;
- this.lookups = new ArrayList<>();
- }
-
- public void addLookup(LookupQuery lookup) {
- lookups.add(lookup);
- }
-
- public List<LookupQuery> lookups() {
- return lookups;
- }
-
- public TableBucket tableBucket() {
- return tableBucket;
- }
-
- /** Complete the lookup operations using given values . */
- public void complete(List<byte[]> values) {
- // if the size of return values of lookup operation are not equal to the number of lookups,
- // should complete an exception.
- if (values.size() != lookups.size()) {
- completeExceptionally(
- new FlussRuntimeException(
- String.format(
- "The number of return values of lookup operation is not equal to the number of "
- + "lookups. Return %d values, but expected %d.",
- values.size(), lookups.size())));
- } else {
- for (int i = 0; i < values.size(); i++) {
- AbstractLookupQuery<byte[]> lookup = lookups.get(i);
- // single value.
- lookup.future().complete(values.get(i));
- }
- }
- }
-
- /** Complete the lookup operations with given exception. */
- public void completeExceptionally(Exception exception) {
- for (LookupQuery lookup : lookups) {
- lookup.future().completeExceptionally(exception);
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupClient.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupClient.java
deleted file mode 100644
index 157b906a0..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupClient.java
+++ /dev/null
@@ -1,122 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.utils.concurrent.ExecutorThreadFactory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.annotation.concurrent.ThreadSafe;
-
-import java.time.Duration;
-import java.util.List;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-/**
- * A client that lookups value of keys from server.
- *
- * <p>The lookup client contains of a queue of pending lookup operations and background I/O threads
- * that is responsible for turning these lookup operations into network requests and transmitting
- * them to the cluster.
- *
- * <p>The {@link #lookup(TableBucket, byte[])} method is asynchronous, when called, it adds the
- * lookup operation to a queue of pending lookup operations and immediately returns. This allows the
- * lookup operations to batch together individual lookup operations for efficiency.
- */
-@ThreadSafe
-@Internal
-public class LookupClient {
-
- private static final Logger LOG = LoggerFactory.getLogger(LookupClient.class);
-
- public static final String LOOKUP_THREAD_PREFIX = "fluss-lookup-sender";
-
- private final LookupQueue lookupQueue;
-
- private final ExecutorService lookupSenderThreadPool;
- private final LookupSender lookupSender;
-
- public LookupClient(Configuration conf, MetadataUpdater metadataUpdater) {
- this.lookupQueue = new LookupQueue(conf);
- this.lookupSenderThreadPool = createThreadPool();
- this.lookupSender =
- new LookupSender(
- metadataUpdater,
- lookupQueue,
- conf.getInt(ConfigOptions.CLIENT_LOOKUP_MAX_INFLIGHT_SIZE));
- lookupSenderThreadPool.submit(lookupSender);
- }
-
- private ExecutorService createThreadPool() {
- // according to benchmark, increase the thread pool size improve not so much
- // performance, so we always use 1 thread for simplicity.
- return Executors.newFixedThreadPool(1, new ExecutorThreadFactory(LOOKUP_THREAD_PREFIX));
- }
-
- public CompletableFuture<byte[]> lookup(TableBucket tableBucket, byte[] keyBytes) {
- LookupQuery lookup = new LookupQuery(tableBucket, keyBytes);
- lookupQueue.appendLookup(lookup);
- return lookup.future();
- }
-
- public CompletableFuture<List<byte[]>> prefixLookup(TableBucket tableBucket, byte[] keyBytes) {
- PrefixLookupQuery prefixLookup = new PrefixLookupQuery(tableBucket, keyBytes);
- lookupQueue.appendLookup(prefixLookup);
- return prefixLookup.future();
- }
-
- public void close(Duration timeout) {
- LOG.info("Closing lookup client and lookup sender.");
-
- if (lookupSender != null) {
- lookupSender.initiateClose();
- }
-
- if (lookupSenderThreadPool != null) {
- lookupSenderThreadPool.shutdown();
- try {
- if (lookupSenderThreadPool.awaitTermination(
- timeout.toMillis(), TimeUnit.MILLISECONDS)) {
- lookupSenderThreadPool.shutdownNow();
-
- if (!lookupSenderThreadPool.awaitTermination(
- timeout.toMillis(), TimeUnit.MILLISECONDS)) {
- LOG.error("Failed to shutdown lookup client.");
- }
- }
- } catch (InterruptedException e) {
- lookupSenderThreadPool.shutdownNow();
- Thread.currentThread().interrupt();
- }
- }
-
- if (lookupSender != null) {
- lookupSender.forceClose();
- }
- LOG.info("Lookup client closed.");
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupQuery.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupQuery.java
deleted file mode 100644
index b4e906aca..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupQuery.java
+++ /dev/null
@@ -1,48 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.TableBucket;
-
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Class to represent a Lookup operation, it contains the table bucket that the key should lookup
- * from, the bytes of the key, and a future for the lookup operation.
- */
-@Internal
-public class LookupQuery extends AbstractLookupQuery<byte[]> {
-
- private final CompletableFuture<byte[]> future;
-
- LookupQuery(TableBucket tableBucket, byte[] key) {
- super(tableBucket, key);
- this.future = new CompletableFuture<>();
- }
-
- @Override
- public LookupType lookupType() {
- return LookupType.LOOKUP;
- }
-
- @Override
- public CompletableFuture<byte[]> future() {
- return future;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupQueue.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupQueue.java
deleted file mode 100644
index 522ae37e4..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupQueue.java
+++ /dev/null
@@ -1,106 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-
-import javax.annotation.concurrent.ThreadSafe;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.TimeUnit;
-
-/**
- * A queue that buffers the pending lookup operations and provides a list of {@link LookupQuery}
- * when call method {@link #drain()}.
- */
-@ThreadSafe
-@Internal
-class LookupQueue {
-
- private volatile boolean closed;
- // buffering both the Lookup and PrefixLookup.
- private final ArrayBlockingQueue<AbstractLookupQuery<?>> lookupQueue;
- private final int maxBatchSize;
- private final long batchTimeoutNanos;
-
- LookupQueue(Configuration conf) {
- this.lookupQueue =
- new ArrayBlockingQueue<>(conf.get(ConfigOptions.CLIENT_LOOKUP_QUEUE_SIZE));
- this.maxBatchSize = conf.get(ConfigOptions.CLIENT_LOOKUP_MAX_BATCH_SIZE);
- this.batchTimeoutNanos = conf.get(ConfigOptions.CLIENT_LOOKUP_BATCH_TIMEOUT).toNanos();
- this.closed = false;
- }
-
- void appendLookup(AbstractLookupQuery<?> lookup) {
- if (closed) {
- throw new IllegalStateException(
- "Can not append lookup operation since the LookupQueue is closed.");
- }
-
- try {
- lookupQueue.put(lookup);
- } catch (InterruptedException e) {
- lookup.future().completeExceptionally(e);
- }
- }
-
- boolean hasUnDrained() {
- return !lookupQueue.isEmpty();
- }
-
- /** Drain a batch of {@link LookupQuery}s from the lookup queue. */
- List<AbstractLookupQuery<?>> drain() throws Exception {
- final long startNanos = System.nanoTime();
- List<AbstractLookupQuery<?>> lookupOperations = new ArrayList<>(maxBatchSize);
- int count = 0;
- while (true) {
- long waitNanos = batchTimeoutNanos - (System.nanoTime() - startNanos);
- if (waitNanos <= 0) {
- break;
- }
-
- AbstractLookupQuery<?> lookup = lookupQueue.poll(waitNanos, TimeUnit.NANOSECONDS);
- if (lookup == null) {
- break;
- }
- lookupOperations.add(lookup);
- count++;
- int transferred = lookupQueue.drainTo(lookupOperations, maxBatchSize - count);
- count += transferred;
- if (count >= maxBatchSize) {
- break;
- }
- }
- return lookupOperations;
- }
-
- /** Drain all the {@link LookupQuery}s from the lookup queue. */
- List<AbstractLookupQuery<?>> drainAll() {
- List<AbstractLookupQuery<?>> lookupOperations = new ArrayList<>(lookupQueue.size());
- lookupQueue.drainTo(lookupOperations);
- return lookupOperations;
- }
-
- public void close() {
- closed = true;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupResult.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupResult.java
deleted file mode 100644
index 82b197401..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupResult.java
+++ /dev/null
@@ -1,83 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
-
-import javax.annotation.Nullable;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-
-/**
- * The result of {@link Lookuper#lookup(InternalRow)}.
- *
- * @since 0.1
- */
-@PublicEvolving
-public final class LookupResult {
- private final List<InternalRow> rowList;
-
- public LookupResult(@Nullable InternalRow row) {
- this(row == null ? Collections.emptyList() : Collections.singletonList(row));
- }
-
- public LookupResult(List<InternalRow> rowList) {
- this.rowList = rowList;
- }
-
- public List<InternalRow> getRowList() {
- return rowList;
- }
-
- public @Nullable InternalRow getSingletonRow() {
- if (rowList.isEmpty()) {
- return null;
- } else if (rowList.size() == 1) {
- return rowList.get(0);
- } else {
- throw new IllegalStateException(
- "Expecting exactly one row, but got: " + rowList.size());
- }
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- LookupResult lookupResult = (LookupResult) o;
- return Objects.equals(rowList, lookupResult.rowList);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(rowList);
- }
-
- @Override
- public String toString() {
- return rowList.toString();
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupType.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupType.java
deleted file mode 100644
index b9e5ad395..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/LookupType.java
+++ /dev/null
@@ -1,27 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-
-/** Enum to represent the type of lookup operation. */
-@Internal
-public enum LookupType {
- LOOKUP,
- PREFIX_LOOKUP;
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/Lookuper.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/Lookuper.java
deleted file mode 100644
index b24a1fa25..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/Lookuper.java
+++ /dev/null
@@ -1,44 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
-
-import java.util.concurrent.CompletableFuture;
-
-/**
- * The lookup-er is used to lookup row of a primary key table by primary key or prefix key.
- *
- * @since 0.6
- */
-@PublicEvolving
-public interface Lookuper {
-
- /**
- * Lookups certain row from the given lookup key.
- *
- * <p>The lookup key must be a primary key if the lookuper is a Primary Key Lookuper (created by
- * {@code table.newLookup().createLookuper()}), or be the prefix key if the lookuper is a Prefix
- * Key Lookuper (created by {@code table.newLookup().lookupBy(prefixKeys).createLookuper()}).
- *
- * @param lookupKey the lookup key.
- * @return the result of lookup.
- */
- CompletableFuture<LookupResult> lookup(InternalRow lookupKey);
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/PrefixLookup.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/PrefixLookup.java
deleted file mode 100644
index 2f0530e89..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/PrefixLookup.java
+++ /dev/null
@@ -1,51 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
-
-import java.util.List;
-
-/**
- * Used to describe the operation to prefix lookup by {@link PrefixLookuper} to a primary key table.
- *
- * @since 0.6
- */
-@PublicEvolving
-public class PrefixLookup {
-
- /**
- * Currently, For non-partitioned table, the lookupColumnNames can only be the field of bucket
- * key.
- *
- * <p>For partitioned table, the lookupColumnNames exclude partition fields should be a prefix
- * of primary key exclude partition fields.
- *
- * <p>See {@link PrefixLookuper#prefixLookup(InternalRow)} for more details.
- */
- private final List<String> lookupColumnNames;
-
- public PrefixLookup(List<String> lookupColumnNames) {
- this.lookupColumnNames = lookupColumnNames;
- }
-
- public List<String> getLookupColumnNames() {
- return lookupColumnNames;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/PrefixLookupBatch.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/PrefixLookupBatch.java
deleted file mode 100644
index 823e911ae..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/PrefixLookupBatch.java
+++ /dev/null
@@ -1,78 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.metadata.TableBucket;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A batch that contains the prefix lookup operations that send to same destination and some table
- * together.
- */
-@Internal
-public class PrefixLookupBatch {
-
- /** The table bucket that the lookup operations should fall into. */
- private final TableBucket tableBucket;
-
- private final List<PrefixLookupQuery> prefixLookups;
-
- public PrefixLookupBatch(TableBucket tableBucket) {
- this.tableBucket = tableBucket;
- this.prefixLookups = new ArrayList<>();
- }
-
- public void addLookup(PrefixLookupQuery lookup) {
- prefixLookups.add(lookup);
- }
-
- public List<PrefixLookupQuery> lookups() {
- return prefixLookups;
- }
-
- public TableBucket tableBucket() {
- return tableBucket;
- }
-
- public void complete(List<List<byte[]>> values) {
- if (values.size() != prefixLookups.size()) {
- completeExceptionally(
- new FlussRuntimeException(
- String.format(
- "The number of values return by prefix lookup request is not equal to the number of "
- + "prefix lookups send. Got %d values, but expected %d.",
- values.size(), prefixLookups.size())));
- } else {
- for (int i = 0; i < values.size(); i++) {
- AbstractLookupQuery<List<byte[]>> lookup = prefixLookups.get(i);
- lookup.future().complete(values.get(i));
- }
- }
- }
-
- /** Complete the get operations with given exception. */
- public void completeExceptionally(Exception exception) {
- for (PrefixLookupQuery prefixLookup : prefixLookups) {
- prefixLookup.future().completeExceptionally(exception);
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/PrefixLookupQuery.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/PrefixLookupQuery.java
deleted file mode 100644
index 4d88743e4..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/PrefixLookupQuery.java
+++ /dev/null
@@ -1,48 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.TableBucket;
-
-import java.util.List;
-import java.util.concurrent.CompletableFuture;
-
-/**
- * Class to represent a prefix lookup operation, it contains the table id, bucketNums and related
- * CompletableFuture.
- */
-@Internal
-public class PrefixLookupQuery extends AbstractLookupQuery<List<byte[]>> {
- private final CompletableFuture<List<byte[]>> future;
-
- PrefixLookupQuery(TableBucket tableBucket, byte[] prefixKey) {
- super(tableBucket, prefixKey);
- this.future = new CompletableFuture<>();
- }
-
- @Override
- public CompletableFuture<List<byte[]>> future() {
- return future;
- }
-
- @Override
- public LookupType lookupType() {
- return LookupType.PREFIX_LOOKUP;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/TableLookup.java b/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/TableLookup.java
deleted file mode 100644
index 9e7e8a669..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/lookup/TableLookup.java
+++ /dev/null
@@ -1,66 +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.
- */
-
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.metadata.TableInfo;
-
-import javax.annotation.Nullable;
-
-import java.util.List;
-
-/** API for configuring and creating {@link Lookuper}. */
-public class TableLookup implements Lookup {
-
- private final TableInfo tableInfo;
- private final MetadataUpdater metadataUpdater;
- private final LookupClient lookupClient;
-
- @Nullable private final List<String> lookupColumnNames;
-
- public TableLookup(
- TableInfo tableInfo, MetadataUpdater metadataUpdater, LookupClient lookupClient) {
- this(tableInfo, metadataUpdater, lookupClient, null);
- }
-
- private TableLookup(
- TableInfo tableInfo,
- MetadataUpdater metadataUpdater,
- LookupClient lookupClient,
- @Nullable List<String> lookupColumnNames) {
- this.tableInfo = tableInfo;
- this.metadataUpdater = metadataUpdater;
- this.lookupClient = lookupClient;
- this.lookupColumnNames = lookupColumnNames;
- }
-
- @Override
- public Lookup lookupBy(List<String> lookupColumnNames) {
- return new TableLookup(tableInfo, metadataUpdater, lookupClient, lookupColumnNames);
- }
-
- @Override
- public Lookuper createLookuper() {
- if (lookupColumnNames == null) {
- return new PrimaryKeyLookuper(tableInfo, metadataUpdater, lookupClient);
- } else {
- return new PrefixKeyLookuper(
- tableInfo, metadataUpdater, lookupClient, lookupColumnNames);
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/metadata/KvSnapshotMetadata.java b/fluss-client/src/main/java/com/alibaba/fluss/client/metadata/KvSnapshotMetadata.java
deleted file mode 100644
index c50a65378..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/metadata/KvSnapshotMetadata.java
+++ /dev/null
@@ -1,66 +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.
- */
-
-package com.alibaba.fluss.client.metadata;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.fs.FsPathAndFileName;
-
-import java.util.List;
-
-/**
- * A class to represent the snapshot info of a kv tablet (bucket). It contains:
- *
- * <ul>
- * <li>The snapshot files of the bucket.
- * <li>The log offset corresponding to the snapshot.
- * </ul>
- *
- * <p>To read the full data of a bucket, it requires to read the snapshot and the log from the
- * corresponding log offset.
- *
- * @since 0.6
- */
-@PublicEvolving
-public class KvSnapshotMetadata {
-
- private final List<FsPathAndFileName> snapshotFiles;
- private final long logOffset;
-
- public KvSnapshotMetadata(List<FsPathAndFileName> snapshotFiles, long logOffset) {
- this.snapshotFiles = snapshotFiles;
- this.logOffset = logOffset;
- }
-
- public List<FsPathAndFileName> getSnapshotFiles() {
- return snapshotFiles;
- }
-
- public long getLogOffset() {
- return logOffset;
- }
-
- @Override
- public String toString() {
- return "BucketSnapshotInfo{"
- + "snapshotFiles="
- + snapshotFiles
- + ", logOffset="
- + logOffset
- + '}';
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/metadata/KvSnapshots.java b/fluss-client/src/main/java/com/alibaba/fluss/client/metadata/KvSnapshots.java
deleted file mode 100644
index 07a77da22..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/metadata/KvSnapshots.java
+++ /dev/null
@@ -1,90 +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.
- */
-
-package com.alibaba.fluss.client.metadata;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-
-import javax.annotation.Nullable;
-
-import java.util.Map;
-import java.util.OptionalLong;
-import java.util.Set;
-
-/**
- * A class representing the kv snapshots of a table or a partition. It contains multiple snapshots
- * for each kv tablet (bucket).
- *
- * @since 0.6
- */
-@PublicEvolving
-public class KvSnapshots {
-
- private final long tableId;
-
- @Nullable private final Long partitionId;
-
- // map from bucket id to the latest snapshot id,
- // null or empty if there is no snapshot for this bucket
- private final Map<Integer, Long> snapshotIds;
-
- // map from bucket id to the log offset to read after the snapshot,
- // null or empty if there is no snapshot for this bucket,
- // then read from EARLIEST offset
- private final Map<Integer, Long> logOffsets;
-
- public KvSnapshots(
- long tableId,
- @Nullable Long partitionId,
- Map<Integer, Long> snapshotIds,
- Map<Integer, Long> logOffsets) {
- this.tableId = tableId;
- this.partitionId = partitionId;
- this.snapshotIds = snapshotIds;
- this.logOffsets = logOffsets;
- }
-
- public long getTableId() {
- return tableId;
- }
-
- @Nullable
- public Long getPartitionId() {
- return partitionId;
- }
-
- public Set<Integer> getBucketIds() {
- return snapshotIds.keySet();
- }
-
- /**
- * Get the latest snapshot id for this kv tablet (bucket), or empty if there are no snapshots.
- */
- public OptionalLong getSnapshotId(int bucketId) {
- Long snapshotId = snapshotIds.get(bucketId);
- return snapshotId == null ? OptionalLong.empty() : OptionalLong.of(snapshotId);
- }
-
- /**
- * Get the log offset to read after the snapshot for this kv tablet (bucket), or empty if there
- * are no snapshots.
- */
- public OptionalLong getLogOffset(int bucketId) {
- Long logOffset = logOffsets.get(bucketId);
- return logOffset == null ? OptionalLong.empty() : OptionalLong.of(logOffset);
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/metadata/LakeSnapshot.java b/fluss-client/src/main/java/com/alibaba/fluss/client/metadata/LakeSnapshot.java
deleted file mode 100644
index 36228cb4c..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/metadata/LakeSnapshot.java
+++ /dev/null
@@ -1,76 +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.
- */
-
-package com.alibaba.fluss.client.metadata;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.metadata.TableBucket;
-
-import java.util.Collections;
-import java.util.Map;
-
-/**
- * A class representing the lake snapshot information of a table. It contains:
- * <li>The snapshot id and the log offset for each bucket.
- *
- * @since 0.3
- */
-@PublicEvolving
-public class LakeSnapshot {
-
- private final long snapshotId;
-
- // the specific log offset of the snapshot
- private final Map<TableBucket, Long> tableBucketsOffset;
-
- // the partition name by partition id of this lake snapshot if
- // is a partitioned table, empty if not a partitioned table
- private final Map<Long, String> partitionNameById;
-
- public LakeSnapshot(
- long snapshotId,
- Map<TableBucket, Long> tableBucketsOffset,
- Map<Long, String> partitionNameById) {
- this.snapshotId = snapshotId;
- this.tableBucketsOffset = tableBucketsOffset;
- this.partitionNameById = partitionNameById;
- }
-
- public long getSnapshotId() {
- return snapshotId;
- }
-
- public Map<TableBucket, Long> getTableBucketsOffset() {
- return Collections.unmodifiableMap(tableBucketsOffset);
- }
-
- public Map<Long, String> getPartitionNameById() {
- return Collections.unmodifiableMap(partitionNameById);
- }
-
- @Override
- public String toString() {
- return "LakeSnapshot{"
- + "snapshotId="
- + snapshotId
- + ", tableBucketsOffset="
- + tableBucketsOffset
- + ", partitionNameById="
- + partitionNameById
- + '}';
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/metrics/ScannerMetricGroup.java b/fluss-client/src/main/java/com/alibaba/fluss/client/metrics/ScannerMetricGroup.java
deleted file mode 100644
index b9d0f848b..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/metrics/ScannerMetricGroup.java
+++ /dev/null
@@ -1,135 +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.
- */
-
-package com.alibaba.fluss.client.metrics;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.client.table.scanner.batch.BatchScanner;
-import com.alibaba.fluss.client.table.scanner.log.LogScanner;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.metrics.CharacterFilter;
-import com.alibaba.fluss.metrics.Counter;
-import com.alibaba.fluss.metrics.DescriptiveStatisticsHistogram;
-import com.alibaba.fluss.metrics.Histogram;
-import com.alibaba.fluss.metrics.MeterView;
-import com.alibaba.fluss.metrics.MetricNames;
-import com.alibaba.fluss.metrics.ThreadSafeSimpleCounter;
-import com.alibaba.fluss.metrics.groups.AbstractMetricGroup;
-import com.alibaba.fluss.rpc.metrics.ClientMetricGroup;
-
-import java.util.Map;
-
-import static com.alibaba.fluss.metrics.utils.MetricGroupUtils.makeScope;
-
-/** The metric group for scanner, including {@link LogScanner} and {@link BatchScanner}. */
-@Internal
-public class ScannerMetricGroup extends AbstractMetricGroup {
-
- private static final String NAME = "scanner";
- private static final int WINDOW_SIZE = 1024;
-
- private final TablePath tablePath;
-
- private final Counter fetchRequestCount;
- private final Histogram bytesPerRequest;
-
- // remote log
- private final Counter remoteFetchBytes;
- private final Counter remoteFetchRequestCount;
- private final Counter remoteFetchErrorCount;
-
- private volatile long fetchLatencyInMs;
- private volatile long timeMsBetweenPoll;
- private volatile double pollIdleRatio;
- private volatile long lastPollMs;
- private volatile long pollStartMs;
-
- public ScannerMetricGroup(ClientMetricGroup parent, TablePath tablePath) {
- super(parent.getMetricRegistry(), makeScope(parent, NAME), parent);
- this.tablePath = tablePath;
-
- fetchRequestCount = new ThreadSafeSimpleCounter();
- meter(MetricNames.SCANNER_FETCH_RATE, new MeterView(fetchRequestCount));
-
- remoteFetchBytes = new ThreadSafeSimpleCounter();
- meter(MetricNames.SCANNER_REMOTE_FETCH_BYTES_RATE, new MeterView(remoteFetchBytes));
- remoteFetchRequestCount = new ThreadSafeSimpleCounter();
- meter(MetricNames.SCANNER_REMOTE_FETCH_RATE, new MeterView(remoteFetchRequestCount));
- remoteFetchErrorCount = new ThreadSafeSimpleCounter();
- meter(MetricNames.SCANNER_REMOTE_FETCH_ERROR_RATE, new MeterView(remoteFetchErrorCount));
-
- bytesPerRequest =
- histogram(
- MetricNames.SCANNER_BYTES_PER_REQUEST,
- new DescriptiveStatisticsHistogram(WINDOW_SIZE));
-
- gauge(MetricNames.SCANNER_TIME_MS_BETWEEN_POLL, () -> timeMsBetweenPoll);
- gauge(MetricNames.SCANNER_LAST_POLL_SECONDS_AGO, this::lastPollSecondsAgo);
- gauge(MetricNames.SCANNER_FETCH_LATENCY_MS, () -> fetchLatencyInMs);
- gauge(MetricNames.SCANNER_POLL_IDLE_RATIO, () -> pollIdleRatio);
- }
-
- public Counter fetchRequestCount() {
- return fetchRequestCount;
- }
-
- public Histogram bytesPerRequest() {
- return bytesPerRequest;
- }
-
- public Counter remoteFetchBytes() {
- return remoteFetchBytes;
- }
-
- public Counter remoteFetchRequestCount() {
- return remoteFetchRequestCount;
- }
-
- public Counter remoteFetchErrorCount() {
- return remoteFetchErrorCount;
- }
-
- public void recordPollStart(long pollStartMs) {
- this.pollStartMs = pollStartMs;
- this.timeMsBetweenPoll = lastPollMs != 0L ? pollStartMs - lastPollMs : 0L;
- this.lastPollMs = pollStartMs;
- }
-
- public void recordPollEnd(long pollEndMs) {
- long pollTimeMs = pollEndMs - pollStartMs;
- this.pollIdleRatio = pollTimeMs * 1.0 / (pollTimeMs + timeMsBetweenPoll);
- }
-
- public void updateFetchLatency(long latencyInMs) {
- fetchLatencyInMs = latencyInMs;
- }
-
- private long lastPollSecondsAgo() {
- return (System.currentTimeMillis() - lastPollMs) / 1000;
- }
-
- @Override
- protected String getGroupName(CharacterFilter filter) {
- return NAME;
- }
-
- @Override
- protected final void putVariables(Map<String, String> variables) {
- variables.put("database", tablePath.getDatabaseName());
- variables.put("table", tablePath.getTableName());
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/metrics/WriterMetricGroup.java b/fluss-client/src/main/java/com/alibaba/fluss/client/metrics/WriterMetricGroup.java
deleted file mode 100644
index b5649efe0..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/metrics/WriterMetricGroup.java
+++ /dev/null
@@ -1,104 +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.
- */
-
-package com.alibaba.fluss.client.metrics;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.client.write.WriterClient;
-import com.alibaba.fluss.metrics.CharacterFilter;
-import com.alibaba.fluss.metrics.Counter;
-import com.alibaba.fluss.metrics.DescriptiveStatisticsHistogram;
-import com.alibaba.fluss.metrics.Histogram;
-import com.alibaba.fluss.metrics.MeterView;
-import com.alibaba.fluss.metrics.MetricNames;
-import com.alibaba.fluss.metrics.ThreadSafeSimpleCounter;
-import com.alibaba.fluss.metrics.groups.AbstractMetricGroup;
-import com.alibaba.fluss.rpc.metrics.ClientMetricGroup;
-
-import static com.alibaba.fluss.metrics.utils.MetricGroupUtils.makeScope;
-
-/** Metrics for {@link WriterClient}. */
-@Internal
-public class WriterMetricGroup extends AbstractMetricGroup {
- private static final String name = "writer";
- private static final int WINDOW_SIZE = 1024;
-
- private final Counter recordsRetryTotal;
- private final Counter recordsSendTotal;
- private final Counter bytesSendTotal;
- private final Histogram bytesPerBatch;
- private final Histogram recordPerBatch;
-
- private volatile long sendLatencyInMs = -1;
- private volatile long batchQueueTimeMs = -1;
-
- public WriterMetricGroup(ClientMetricGroup parent) {
- super(parent.getMetricRegistry(), makeScope(parent, name), parent);
-
- gauge(MetricNames.WRITER_BATCH_QUEUE_TIME_MS, () -> batchQueueTimeMs);
-
- recordsRetryTotal = new ThreadSafeSimpleCounter();
- meter(MetricNames.WRITER_RECORDS_RETRY_RATE, new MeterView(recordsRetryTotal));
- recordsSendTotal = new ThreadSafeSimpleCounter();
- meter(MetricNames.WRITER_RECORDS_SEND_RATE, new MeterView(recordsSendTotal));
- bytesSendTotal = new ThreadSafeSimpleCounter();
- meter(MetricNames.WRITER_BYTES_SEND_RATE, new MeterView(bytesSendTotal));
- gauge(MetricNames.WRITER_SEND_LATENCY_MS, () -> sendLatencyInMs);
-
- bytesPerBatch =
- histogram(
- MetricNames.WRITER_BYTES_PER_BATCH,
- new DescriptiveStatisticsHistogram(WINDOW_SIZE));
- recordPerBatch =
- histogram(
- MetricNames.WRITER_RECORDS_PER_BATCH,
- new DescriptiveStatisticsHistogram(WINDOW_SIZE));
- }
-
- public void setBatchQueueTimeMs(long batchQueueTimeMs) {
- this.batchQueueTimeMs = batchQueueTimeMs;
- }
-
- public void setSendLatencyInMs(long sendLatencyInMs) {
- this.sendLatencyInMs = sendLatencyInMs;
- }
-
- public Counter recordsRetryTotal() {
- return recordsRetryTotal;
- }
-
- public Counter recordsSendTotal() {
- return recordsSendTotal;
- }
-
- public Histogram bytesPerBatch() {
- return bytesPerBatch;
- }
-
- public Counter bytesSendTotal() {
- return bytesSendTotal;
- }
-
- public Histogram recordPerBatch() {
- return recordPerBatch;
- }
-
- @Override
- protected String getGroupName(CharacterFilter filter) {
- return name;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/FlussTable.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/FlussTable.java
deleted file mode 100644
index aa894d55c..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/FlussTable.java
+++ /dev/null
@@ -1,93 +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.
- */
-
-package com.alibaba.fluss.client.table;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.client.FlussConnection;
-import com.alibaba.fluss.client.lookup.Lookup;
-import com.alibaba.fluss.client.lookup.TableLookup;
-import com.alibaba.fluss.client.table.scanner.Scan;
-import com.alibaba.fluss.client.table.scanner.TableScan;
-import com.alibaba.fluss.client.table.writer.Append;
-import com.alibaba.fluss.client.table.writer.TableAppend;
-import com.alibaba.fluss.client.table.writer.TableUpsert;
-import com.alibaba.fluss.client.table.writer.Upsert;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-
-import static com.alibaba.fluss.utils.Preconditions.checkState;
-
-/**
- * The base impl of {@link Table}.
- *
- * @since 0.1
- */
-@PublicEvolving
-public class FlussTable implements Table {
-
- private final FlussConnection conn;
- private final TablePath tablePath;
- private final TableInfo tableInfo;
- private final boolean hasPrimaryKey;
-
- public FlussTable(FlussConnection conn, TablePath tablePath, TableInfo tableInfo) {
- this.conn = conn;
- this.tablePath = tablePath;
- this.tableInfo = tableInfo;
- this.hasPrimaryKey = tableInfo.hasPrimaryKey();
- }
-
- @Override
- public TableInfo getTableInfo() {
- return tableInfo;
- }
-
- @Override
- public Scan newScan() {
- return new TableScan(conn, tableInfo);
- }
-
- @Override
- public Lookup newLookup() {
- return new TableLookup(
- tableInfo, conn.getMetadataUpdater(), conn.getOrCreateLookupClient());
- }
-
- @Override
- public Append newAppend() {
- checkState(
- !hasPrimaryKey,
- "Table %s is not a Log Table and doesn't support AppendWriter.",
- tablePath);
- return new TableAppend(tablePath, tableInfo, conn.getOrCreateWriterClient());
- }
-
- @Override
- public Upsert newUpsert() {
- checkState(
- hasPrimaryKey,
- "Table %s is not a Primary Key Table and doesn't support UpsertWriter.",
- tablePath);
- return new TableUpsert(tablePath, tableInfo, conn.getOrCreateWriterClient());
- }
-
- @Override
- public void close() throws Exception {
- // do nothing
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/Table.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/Table.java
deleted file mode 100644
index 573a6580d..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/Table.java
+++ /dev/null
@@ -1,75 +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.
- */
-
-package com.alibaba.fluss.client.table;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.lookup.Lookup;
-import com.alibaba.fluss.client.lookup.Lookuper;
-import com.alibaba.fluss.client.table.scanner.Scan;
-import com.alibaba.fluss.client.table.writer.Append;
-import com.alibaba.fluss.client.table.writer.AppendWriter;
-import com.alibaba.fluss.client.table.writer.Upsert;
-import com.alibaba.fluss.client.table.writer.UpsertWriter;
-import com.alibaba.fluss.metadata.TableInfo;
-
-/**
- * Used to communicate with a single Fluss table. Obtain an instance from a {@link Connection}.
- *
- * <p>Table can be used to get, put, delete or scan data from a fluss table.
- *
- * @since 0.1
- */
-@PublicEvolving
-public interface Table extends AutoCloseable {
-
- /**
- * Get the {@link TableInfo} for this table.
- *
- * <p>Note: the table info of this {@link Table} is set during the creation of this {@link
- * Table} and will not be updated after that, even if the table info of the table has been
- * changed. Therefore, if there are any changes to the table info, it may be necessary to
- * reconstruct the {@link Table}.
- */
- TableInfo getTableInfo();
-
- /**
- * Creates a new {@link Scan} for this table to configure and create a scanner to scan data for
- * this table. The scanner can be a log scanner to continuously read streaming log data or a
- * batch scanner to read batch data.
- */
- Scan newScan();
-
- /**
- * Creates a new {@link Lookup} for this table to configure and create a {@link Lookuper} to
- * lookup data for this table by primary key or a prefix of primary key.
- */
- Lookup newLookup();
-
- /**
- * Creates a new {@link Append} to build a {@link AppendWriter} to append data to this table
- * (requires to be a Log Table).
- */
- Append newAppend();
-
- /**
- * Creates a new {@link Upsert} to build a {@link UpsertWriter} to upsert and delete data to
- * this table (requires to be a Primary Key Table).
- */
- Upsert newUpsert();
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/getter/PartitionGetter.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/getter/PartitionGetter.java
deleted file mode 100644
index d205d0855..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/getter/PartitionGetter.java
+++ /dev/null
@@ -1,68 +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.
- */
-
-package com.alibaba.fluss.client.table.getter;
-
-import com.alibaba.fluss.metadata.ResolvedPartitionSpec;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.RowType;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-
-/** A getter to get partition name from a row. */
-public class PartitionGetter {
-
- private final List<String> partitionKeys;
- private final List<InternalRow.FieldGetter> partitionFieldGetters;
-
- public PartitionGetter(RowType rowType, List<String> partitionKeys) {
- // check the partition column
- List<String> fieldNames = rowType.getFieldNames();
- this.partitionKeys = partitionKeys;
- partitionFieldGetters = new ArrayList<>();
- for (String partitionKey : partitionKeys) {
- int partitionColumnIndex = fieldNames.indexOf(partitionKey);
- checkArgument(
- partitionColumnIndex >= 0,
- "The partition column %s is not in the row %s.",
- partitionKey,
- rowType);
-
- // check the data type of the partition column
- DataType partitionColumnDataType = rowType.getTypeAt(partitionColumnIndex);
- partitionFieldGetters.add(
- InternalRow.createFieldGetter(partitionColumnDataType, partitionColumnIndex));
- }
- }
-
- public String getPartition(InternalRow row) {
- List<String> partitionValues = new ArrayList<>();
- for (InternalRow.FieldGetter partitionFieldGetter : partitionFieldGetters) {
- Object partitionValue = partitionFieldGetter.getFieldOrNull(row);
- checkNotNull(partitionValue, "Partition value shouldn't be null.");
- partitionValues.add(partitionValue.toString());
- }
- ResolvedPartitionSpec resolvedPartitionSpec =
- new ResolvedPartitionSpec(partitionKeys, partitionValues);
- return resolvedPartitionSpec.getPartitionName();
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/Scan.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/Scan.java
deleted file mode 100644
index eeb8245e0..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/Scan.java
+++ /dev/null
@@ -1,83 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.client.table.scanner.batch.BatchScanner;
-import com.alibaba.fluss.client.table.scanner.log.LogScanner;
-import com.alibaba.fluss.metadata.TableBucket;
-
-import javax.annotation.Nullable;
-
-import java.util.List;
-
-/**
- * Used to configure and create a scanner to scan data for a table.
- *
- * <p>{@link Scan} objects are immutable and can be shared between threads. Refinement methods, like
- * {@link #project} and {@link #limit(int)}, create new Scan instances.
- *
- * @since 0.6
- */
-@PublicEvolving
-public interface Scan {
-
- /**
- * Returns a new scan from this that will read the given data columns.
- *
- * @param projectedColumns the selected column indexes
- */
- Scan project(@Nullable int[] projectedColumns);
-
- /**
- * Returns a new scan from this that will read the given data columns.
- *
- * @param projectedColumnNames the selected column names
- */
- Scan project(List<String> projectedColumnNames);
-
- /**
- * Returns a new scan from this that will read the given limited row number.
- *
- * @param rowNumber the limited row number to read
- */
- Scan limit(int rowNumber);
-
- /**
- * Creates a {@link LogScanner} to continuously read log data for this scan.
- *
- * <p>Note: this API doesn't support pre-configured with {@link #limit(int)}.
- */
- LogScanner createLogScanner();
-
- /**
- * Creates a {@link BatchScanner} to read current data in the given table bucket for this scan.
- *
- * <p>Note: this API doesn't support pre-configured with {@link #project}.
- */
- BatchScanner createBatchScanner(TableBucket tableBucket);
-
- /**
- * Creates a {@link BatchScanner} to read given snapshot data in the given table bucket for this
- * scan.
- *
- * <p>Note: this API doesn't support pre-configured with {@link #project} and {@link
- * #limit(int)} and only support for Primary Key Tables.
- */
- BatchScanner createBatchScanner(TableBucket tableBucket, long snapshotId);
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/ScanRecord.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/ScanRecord.java
deleted file mode 100644
index 30d5180e4..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/ScanRecord.java
+++ /dev/null
@@ -1,93 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.InternalRow;
-
-import java.util.Objects;
-
-/** one scan record. */
-// TODO: replace this with GenericRecord in the future
-@Internal
-public class ScanRecord implements LogRecord {
- private static final long INVALID = -1L;
-
- private final long offset;
- private final long timestamp;
- private final ChangeType changeType;
- private final InternalRow row;
-
- public ScanRecord(InternalRow row) {
- this(INVALID, INVALID, ChangeType.INSERT, row);
- }
-
- public ScanRecord(long offset, long timestamp, ChangeType changeType, InternalRow row) {
- this.offset = offset;
- this.timestamp = timestamp;
- this.changeType = changeType;
- this.row = row;
- }
-
- /** The position of this record in the corresponding fluss table bucket. */
- @Override
- public long logOffset() {
- return offset;
- }
-
- @Override
- public long timestamp() {
- return timestamp;
- }
-
- @Override
- public ChangeType getChangeType() {
- return changeType;
- }
-
- @Override
- public InternalRow getRow() {
- return row;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- ScanRecord that = (ScanRecord) o;
- return offset == that.offset
- && changeType == that.changeType
- && Objects.equals(row, that.row);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(offset, changeType, row);
- }
-
- @Override
- public String toString() {
- return changeType.shortString() + row.toString() + "@" + offset;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/TableScan.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/TableScan.java
deleted file mode 100644
index 0121a882e..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/TableScan.java
+++ /dev/null
@@ -1,138 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner;
-
-import com.alibaba.fluss.client.FlussConnection;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.metadata.KvSnapshotMetadata;
-import com.alibaba.fluss.client.table.scanner.batch.BatchScanner;
-import com.alibaba.fluss.client.table.scanner.batch.KvSnapshotBatchScanner;
-import com.alibaba.fluss.client.table.scanner.batch.LimitBatchScanner;
-import com.alibaba.fluss.client.table.scanner.log.LogScanner;
-import com.alibaba.fluss.client.table.scanner.log.LogScannerImpl;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.types.RowType;
-
-import javax.annotation.Nullable;
-
-import java.util.List;
-
-/** API for configuring and creating {@link LogScanner} and {@link BatchScanner}. */
-public class TableScan implements Scan {
-
- private final FlussConnection conn;
- private final TableInfo tableInfo;
-
- /** The projected fields to do projection. No projection if is null. */
- @Nullable private final int[] projectedColumns;
- /** The limited row number to read. No limit if is null. */
- @Nullable private final Integer limit;
-
- public TableScan(FlussConnection conn, TableInfo tableInfo) {
- this(conn, tableInfo, null, null);
- }
-
- private TableScan(
- FlussConnection conn,
- TableInfo tableInfo,
- @Nullable int[] projectedColumns,
- @Nullable Integer limit) {
- this.conn = conn;
- this.tableInfo = tableInfo;
- this.projectedColumns = projectedColumns;
- this.limit = limit;
- }
-
- @Override
- public Scan project(@Nullable int[] projectedColumns) {
- return new TableScan(conn, tableInfo, projectedColumns, limit);
- }
-
- @Override
- public Scan project(List<String> projectedColumnNames) {
- int[] columnIndexes = new int[projectedColumnNames.size()];
- RowType rowType = tableInfo.getRowType();
- for (int i = 0; i < projectedColumnNames.size(); i++) {
- int index = rowType.getFieldIndex(projectedColumnNames.get(i));
- if (index < 0) {
- throw new IllegalArgumentException(
- "Field " + projectedColumnNames.get(i) + " not found in table schema.");
- }
- columnIndexes[i] = index;
- }
- return new TableScan(conn, tableInfo, columnIndexes, limit);
- }
-
- @Override
- public Scan limit(int rowNumber) {
- return new TableScan(conn, tableInfo, projectedColumns, rowNumber);
- }
-
- @Override
- public LogScanner createLogScanner() {
- if (limit != null) {
- throw new UnsupportedOperationException("LogScanner doesn't support limit pushdown.");
- }
- return new LogScannerImpl(
- conn.getConfiguration(),
- tableInfo,
- conn.getMetadataUpdater(),
- conn.getClientMetricGroup(),
- conn.getOrCreateRemoteFileDownloader(),
- projectedColumns);
- }
-
- @Override
- public BatchScanner createBatchScanner(TableBucket tableBucket) {
- if (limit == null) {
- throw new UnsupportedOperationException(
- "Currently, BatchScanner is only available when limit is set.");
- }
- return new LimitBatchScanner(
- tableInfo, tableBucket, conn.getMetadataUpdater(), projectedColumns, limit);
- }
-
- @Override
- public BatchScanner createBatchScanner(TableBucket tableBucket, long snapshotId) {
- if (limit != null) {
- throw new UnsupportedOperationException(
- "Currently, SnapshotBatchScanner doesn't support limit pushdown.");
- }
- String scannerTmpDir =
- conn.getConfiguration().getString(ConfigOptions.CLIENT_SCANNER_IO_TMP_DIR);
- Admin admin = conn.getAdmin();
- final KvSnapshotMetadata snapshotMeta;
- try {
- snapshotMeta = admin.getKvSnapshotMetadata(tableBucket, snapshotId).get();
- } catch (Exception e) {
- throw new FlussRuntimeException("Failed to get snapshot metadata", e);
- }
-
- return new KvSnapshotBatchScanner(
- tableInfo.getRowType(),
- tableBucket,
- snapshotMeta.getSnapshotFiles(),
- projectedColumns,
- scannerTmpDir,
- tableInfo.getTableConfig().getKvFormat(),
- conn.getOrCreateRemoteFileDownloader());
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/BatchScanUtils.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/BatchScanUtils.java
deleted file mode 100644
index ae1a422aa..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/BatchScanUtils.java
+++ /dev/null
@@ -1,108 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.batch;
-
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.utils.CloseableIterator;
-
-import java.time.Duration;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Queue;
-
-/** Utility class for batch scan. */
-public class BatchScanUtils {
-
- private static final Duration DEFAULT_POLL_TIMEOUT = Duration.ofMillis(10);
-
- /** Collect all rows from the scanner. */
- public static List<InternalRow> collectRows(BatchScanner scanner) {
- List<InternalRow> rows = new ArrayList<>();
- while (true) {
- try {
- CloseableIterator<InternalRow> iterator = scanner.pollBatch(DEFAULT_POLL_TIMEOUT);
- if (iterator == null) {
- scanner.close();
- break;
- }
- rows.addAll(toList(iterator));
- } catch (Exception e) {
- throw new RuntimeException("Failed to collect rows", e);
- }
- }
- return rows;
- }
-
- /** Collect all rows from the scanners. */
- public static List<InternalRow> collectAllRows(List<BatchScanner> scanners) {
- List<InternalRow> rows = new ArrayList<>();
- for (BatchScanner scanner : scanners) {
- rows.addAll(collectRows(scanner));
- }
- return rows;
- }
-
- /** Collect rows from the scanners until the number of rows reaches the limit. */
- public static List<InternalRow> collectLimitedRows(List<BatchScanner> scanners, int limit) {
- List<InternalRow> rows = new ArrayList<>();
- Queue<BatchScanner> scannerQueue = new LinkedList<>(scanners);
- while (!scannerQueue.isEmpty()) {
- BatchScanner scanner = scannerQueue.poll();
- try {
- CloseableIterator<InternalRow> iterator = scanner.pollBatch(DEFAULT_POLL_TIMEOUT);
- if (iterator != null) {
- rows.addAll(toList(iterator));
- // If the scanner has more data, add it back to the queue
- scannerQueue.add(scanner);
- } else {
- // Close the scanner if it has no more data, and not add it back to the queue
- scanner.close();
- }
- } catch (Exception e) {
- throw new RuntimeException("Failed to collect rows", e);
- }
- if (rows.size() >= limit) {
- break;
- }
- }
- // may collect enough rows before drain all scanners, close all scanners in the queue
- for (BatchScanner scanner : scannerQueue) {
- try {
- scanner.close();
- } catch (Exception e) {
- throw new RuntimeException("Failed to close scanner", e);
- }
- }
- return rows;
- }
-
- /**
- * Collect all rows from the iterator and close it.
- *
- * @return return a list of rows
- */
- public static <T> List<T> toList(CloseableIterator<T> iterator) {
- List<T> rows = new ArrayList<>();
- while (iterator.hasNext()) {
- rows.add(iterator.next());
- }
- iterator.close();
- return rows;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/BatchScanner.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/BatchScanner.java
deleted file mode 100644
index 432071b2f..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/BatchScanner.java
+++ /dev/null
@@ -1,53 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.batch;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.client.table.scanner.log.LogScanner;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.utils.CloseableIterator;
-
-import javax.annotation.Nullable;
-
-import java.io.Closeable;
-import java.io.IOException;
-import java.time.Duration;
-
-/**
- * The scanner that reads records form a table in a batch fashion. Compared to {@link LogScanner},
- * this scanner is designed to read bounded data and will stop when reading end of a bucket, but
- * {@link LogScanner} is designed to read unbounded data and continuously read data from buckets.
- *
- * @since 0.6
- */
-@PublicEvolving
-public interface BatchScanner extends Closeable {
-
- /**
- * Poll one batch records. The method should return null when reaching the end of the input.
- *
- * @param timeout The maximum time to block (must not be greater than {@link Long#MAX_VALUE}
- * milliseconds)
- */
- @Nullable
- CloseableIterator<InternalRow> pollBatch(Duration timeout) throws IOException;
-
- /** Closes the scanner and should release all resources. */
- @Override
- void close() throws IOException;
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/KvSnapshotBatchScanner.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/KvSnapshotBatchScanner.java
deleted file mode 100644
index ba53eaa9b..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/KvSnapshotBatchScanner.java
+++ /dev/null
@@ -1,223 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.batch;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.client.table.scanner.RemoteFileDownloader;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.fs.FsPathAndFileName;
-import com.alibaba.fluss.metadata.KvFormat;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.CloseableIterator;
-import com.alibaba.fluss.utils.CloseableRegistry;
-import com.alibaba.fluss.utils.FileUtils;
-import com.alibaba.fluss.utils.IOUtils;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.GuardedBy;
-
-import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.time.Duration;
-import java.util.List;
-import java.util.UUID;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.locks.Condition;
-import java.util.concurrent.locks.ReentrantLock;
-
-import static com.alibaba.fluss.utils.concurrent.LockUtils.inLock;
-
-/**
- * A scanner to scan the snapshot data of a kv bucket.
- *
- * <p>When the scanner is created, It will download the given snapshot files from the remote storage
- * and create a reader to read the files into records asynchronously.
- *
- * <p>In the {@link BatchScanner#pollBatch(Duration)} method:
- *
- * <ul>
- * <li>if the reader is not ready in given time, return an empty iterator
- * <li>If the reader is ready, always return the reader if there remains any data in the reader.
- * Otherwise, return null
- * </ul>
- */
-@Internal
-public class KvSnapshotBatchScanner implements BatchScanner {
-
- private static final Logger LOG = LoggerFactory.getLogger(KvSnapshotBatchScanner.class);
-
- public static final CloseableIterator<InternalRow> NO_DATA_AVAILABLE =
- CloseableIterator.emptyIterator();
-
- private final RowType tableRowType;
- private final TableBucket tableBucket;
- private final List<FsPathAndFileName> fsPathAndFileNames;
- @Nullable private final int[] projectedFields;
-
- private final Path snapshotLocalDirectory;
- private final RemoteFileDownloader remoteFileDownloader;
- private final KvFormat kvFormat;
-
- private final ReentrantLock lock = new ReentrantLock();
-
- @GuardedBy("lock")
- private final Condition readerIsReady = lock.newCondition();
-
- private final AtomicBoolean closed;
-
- private volatile SnapshotFilesReader snapshotFilesReader;
-
- @Nullable private volatile Throwable initSnapshotFilesReaderException = null;
-
- public KvSnapshotBatchScanner(
- RowType tableRowType,
- TableBucket tableBucket,
- List<FsPathAndFileName> fsPathAndFileNames,
- @Nullable int[] projectedFields,
- String scannerTmpDir,
- KvFormat kvFormat,
- RemoteFileDownloader remoteFileDownloader) {
- this.tableRowType = tableRowType;
- this.tableBucket = tableBucket;
- this.fsPathAndFileNames = fsPathAndFileNames;
- this.projectedFields = projectedFields;
- this.kvFormat = kvFormat;
- // create a directory to store the snapshot files
- this.snapshotLocalDirectory =
- Paths.get(scannerTmpDir, String.format("kv-snapshots-%s", UUID.randomUUID()));
- this.remoteFileDownloader = remoteFileDownloader;
- this.closed = new AtomicBoolean(false);
- initReaderAsynchronously();
- }
-
- /**
- * Fetch data from snapshot.
- *
- * <p>If the snapshot file reader is not ready in given maximum block time, return an empty
- * iterator. If the reader is ready, always return the reader if there remains any record in the
- * reader, otherwise, return null.
- *
- * @param timeout The maximum time to block (must not be greater than {@link Long#MAX_VALUE}
- * milliseconds)
- */
- @Nullable
- @Override
- public CloseableIterator<InternalRow> pollBatch(Duration timeout) throws IOException {
- // note: we don't throw exception if the scanner is closed since in flink access pattern,
- // the scanner will be closed by source reader thread after finished reading all records,
- // but the fetcher thread may still calling poll method
- ensureNoException();
- return inLock(
- lock,
- () -> {
- try {
- if (snapshotFilesReader == null) {
- // wait for the reader to be ready,
- if (!readerIsReady.await(timeout.toMillis(), TimeUnit.MILLISECONDS)) {
- // reader is still not ready
- return NO_DATA_AVAILABLE;
- }
- }
- return snapshotFilesReader.hasNext() ? snapshotFilesReader : null;
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- throw new FlussRuntimeException(
- "Interrupted when waiting for snapshot files reader.", e);
- }
- });
- }
-
- /**
- * Ensure that the scanner hasn't encountered any exception.
- *
- * @throws FlussRuntimeException If any exception has been thrown during snapshot reader
- * initialization
- */
- private void ensureNoException() {
- if (initSnapshotFilesReaderException != null) {
- throw new FlussRuntimeException(
- "Failed to initialize snapshot files reader.",
- initSnapshotFilesReaderException);
- }
- }
-
- @Override
- public void close() {
- if (closed.compareAndSet(false, true)) {
- IOUtils.closeQuietly(snapshotFilesReader);
- FileUtils.deleteDirectoryQuietly(snapshotLocalDirectory.toFile());
- }
- }
-
- private void initReaderAsynchronously() {
- CompletableFuture.runAsync(
- () ->
- inLock(
- lock,
- () -> {
- CloseableRegistry closeableRegistry = new CloseableRegistry();
- try {
- if (!snapshotLocalDirectory.toFile().mkdirs()) {
- throw new IOException(
- String.format(
- "Failed to create directory %s for storing kv snapshot files.",
- snapshotLocalDirectory));
- }
- closeableRegistry.registerCloseable(
- () ->
- FileUtils.deleteDirectoryQuietly(
- snapshotLocalDirectory.toFile()));
- // todo: refactor transferAllToDirectory method to
- // return a future so that we won't need to runAsync using
- // the default thread pool
- LOG.info(
- "Start to download kv snapshot files to local directory for bucket {}.",
- tableBucket);
- long startTime = System.currentTimeMillis();
- remoteFileDownloader.transferAllToDirectory(
- fsPathAndFileNames,
- snapshotLocalDirectory,
- closeableRegistry);
- LOG.info(
- "Download kv snapshot files to local directory for bucket {} cost {} ms.",
- tableBucket,
- System.currentTimeMillis() - startTime);
- snapshotFilesReader =
- new SnapshotFilesReader(
- kvFormat,
- snapshotLocalDirectory,
- tableRowType,
- projectedFields);
- readerIsReady.signalAll();
- } catch (Throwable e) {
- IOUtils.closeQuietly(closeableRegistry);
- initSnapshotFilesReaderException = e;
- } finally {
- IOUtils.closeQuietly(closeableRegistry);
- }
- }));
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/SnapshotFilesReader.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/SnapshotFilesReader.java
deleted file mode 100644
index 6a1654a9d..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/batch/SnapshotFilesReader.java
+++ /dev/null
@@ -1,163 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.batch;
-
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.metadata.KvFormat;
-import com.alibaba.fluss.rocksdb.RocksDBHandle;
-import com.alibaba.fluss.rocksdb.RocksIteratorWrapper;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.ProjectedRow;
-import com.alibaba.fluss.row.decode.RowDecoder;
-import com.alibaba.fluss.row.encode.ValueDecoder;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.CloseableIterator;
-import com.alibaba.fluss.utils.CloseableRegistry;
-import com.alibaba.fluss.utils.IOUtils;
-
-import org.rocksdb.ColumnFamilyOptions;
-import org.rocksdb.DBOptions;
-import org.rocksdb.ReadOptions;
-import org.rocksdb.RocksDB;
-import org.rocksdb.RocksIterator;
-import org.rocksdb.Snapshot;
-
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.NotThreadSafe;
-
-import java.io.IOException;
-import java.nio.file.Path;
-
-/**
- * A reader to read kv snapshot files to {@link ScanRecord}s. It will return the {@link ScanRecord}s
- * as an iterator.
- */
-@NotThreadSafe
-class SnapshotFilesReader implements CloseableIterator<InternalRow> {
-
- private final ValueDecoder valueDecoder;
- @Nullable private final int[] projectedFields;
- private RocksIteratorWrapper rocksIteratorWrapper;
-
- private Snapshot snapshot;
- private RocksDBHandle rocksDBHandle;
- private boolean isClose = false;
-
- private final CloseableRegistry closeableRegistry;
-
- SnapshotFilesReader(
- KvFormat kvFormat,
- Path rocksDbPath,
- RowType tableRowType,
- @Nullable int[] projectedFields)
- throws IOException {
- this.valueDecoder =
- new ValueDecoder(
- RowDecoder.create(
- kvFormat, tableRowType.getChildren().toArray(new DataType[0])));
- this.projectedFields = projectedFields;
- closeableRegistry = new CloseableRegistry();
- try {
- initRocksDB(rocksDbPath);
- initRocksIterator();
- } catch (Throwable t) {
- releaseSnapshot();
- // If anything goes wrong, clean up our stuff. If things went smoothly the
- // merging iterator is now responsible for closing the resources
- IOUtils.closeQuietly(closeableRegistry);
- throw new IOException("Error creating RocksDB snapshot reader.", t);
- }
- }
-
- private void initRocksDB(Path rocksDbPath) throws Exception {
- // create rocksdb
- DBOptions dbOptions = new DBOptions();
- closeableRegistry.registerCloseable(dbOptions::close);
- ColumnFamilyOptions columnFamilyOptions = new ColumnFamilyOptions();
- closeableRegistry.registerCloseable(columnFamilyOptions::close);
-
- rocksDBHandle =
- new RocksDBHandle(rocksDbPath.toFile(), dbOptions, columnFamilyOptions, true);
- closeableRegistry.registerCloseable(rocksDBHandle::close);
- }
-
- private void initRocksIterator() throws IOException {
- // open a db
- rocksDBHandle.openDB();
- // get the snapshot
- RocksDB db = rocksDBHandle.getDb();
- snapshot = db.getSnapshot();
- closeableRegistry.registerCloseable(snapshot::close);
-
- // use the snapshot to read rocksdb
- ReadOptions readOptions = new ReadOptions();
- closeableRegistry.registerCloseable(readOptions::close);
- readOptions.setSnapshot(snapshot);
-
- // get the iterator
- RocksIterator rocksIterator = db.newIterator(db.getDefaultColumnFamily(), readOptions);
- rocksIteratorWrapper = new RocksIteratorWrapper(rocksIterator);
- closeableRegistry.registerCloseable(rocksIteratorWrapper);
-
- // seek to first
- rocksIteratorWrapper.seekToFirst();
- }
-
- public void close() {
- if (isClose) {
- return;
- }
-
- releaseSnapshot();
- try {
- closeableRegistry.close();
- } catch (IOException e) {
- throw new FlussRuntimeException("Failed to close resources", e);
- }
- isClose = true;
- }
-
- private void releaseSnapshot() {
- if (snapshot != null && rocksDBHandle != null) {
- rocksDBHandle.getDb().releaseSnapshot(snapshot);
- snapshot = null;
- }
- }
-
- @Override
- public boolean hasNext() {
- return !isClose && rocksIteratorWrapper.isValid();
- }
-
- @Override
- public InternalRow next() {
- byte[] value = rocksIteratorWrapper.value();
- rocksIteratorWrapper.next();
-
- InternalRow originRow = valueDecoder.decodeValue(value).row;
- if (projectedFields != null) {
- ProjectedRow projectedRow = ProjectedRow.from(projectedFields);
- projectedRow.replaceRow(originRow);
- return projectedRow;
- } else {
- return originRow;
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/BucketScanStatus.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/BucketScanStatus.java
deleted file mode 100644
index e8418f06c..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/BucketScanStatus.java
+++ /dev/null
@@ -1,52 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.Internal;
-
-/** Bucket scan status for log fetch. */
-@Internal
-class BucketScanStatus {
- private long offset; // last consumed position
- private long highWatermark; // the high watermark from last fetch
- // TODO add resetStrategy and nextAllowedRetryTimeMs.
-
- public BucketScanStatus() {
- this.offset = 0L;
- }
-
- public BucketScanStatus(Long position) {
- this.offset = position;
- }
-
- public long getOffset() {
- return offset;
- }
-
- public long getHighWatermark() {
- return highWatermark;
- }
-
- public void setOffset(Long offset) {
- this.offset = offset;
- }
-
- public void setHighWatermark(Long highWatermark) {
- this.highWatermark = highWatermark;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/CompletedFetch.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/CompletedFetch.java
deleted file mode 100644
index 2c2f76132..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/CompletedFetch.java
+++ /dev/null
@@ -1,258 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.exception.CorruptRecordException;
-import com.alibaba.fluss.exception.FetchException;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.record.LogRecordBatch;
-import com.alibaba.fluss.record.LogRecordReadContext;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.rpc.messages.FetchLogRequest;
-import com.alibaba.fluss.rpc.protocol.ApiError;
-import com.alibaba.fluss.utils.CloseableIterator;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.Closeable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * {@link CompletedFetch} represents the result that was returned from the tablet server via a
- * {@link FetchLogRequest}, which can be a {@link LogRecordBatch} or remote log segments path. It
- * contains logic to maintain state between calls to {@link #fetchRecords(int)}.
- */
-@Internal
-abstract class CompletedFetch {
- static final Logger LOG = LoggerFactory.getLogger(CompletedFetch.class);
-
- final TableBucket tableBucket;
- final ApiError error;
- final int sizeInBytes;
- final long highWatermark;
-
- private final boolean isCheckCrcs;
- private final Iterator<LogRecordBatch> batches;
- private final LogScannerStatus logScannerStatus;
- protected final LogRecordReadContext readContext;
- protected final InternalRow.FieldGetter[] selectedFieldGetters;
-
- private LogRecordBatch currentBatch;
- private LogRecord lastRecord;
- private CloseableIterator<LogRecord> records;
- private int recordsRead = 0;
- private Exception cachedRecordException = null;
- private boolean corruptLastRecord = false;
- private long nextFetchOffset;
- private boolean isConsumed = false;
- private boolean initialized = false;
-
- public CompletedFetch(
- TableBucket tableBucket,
- ApiError error,
- int sizeInBytes,
- long highWatermark,
- Iterator<LogRecordBatch> batches,
- LogRecordReadContext readContext,
- LogScannerStatus logScannerStatus,
- boolean isCheckCrcs,
- long fetchOffset) {
- this.tableBucket = tableBucket;
- this.error = error;
- this.sizeInBytes = sizeInBytes;
- this.highWatermark = highWatermark;
- this.batches = batches;
- this.readContext = readContext;
- this.isCheckCrcs = isCheckCrcs;
- this.logScannerStatus = logScannerStatus;
- this.nextFetchOffset = fetchOffset;
- this.selectedFieldGetters = readContext.getSelectedFieldGetters();
- }
-
- // TODO: optimize this to avoid deep copying the record.
- // refactor #fetchRecords to return an iterator which lazily deserialize
- // from underlying record stream and arrow buffer.
- ScanRecord toScanRecord(LogRecord record) {
- GenericRow newRow = new GenericRow(selectedFieldGetters.length);
- InternalRow internalRow = record.getRow();
- for (int i = 0; i < selectedFieldGetters.length; i++) {
- newRow.setField(i, selectedFieldGetters[i].getFieldOrNull(internalRow));
- }
- return new ScanRecord(
- record.logOffset(), record.timestamp(), record.getChangeType(), newRow);
- }
-
- boolean isConsumed() {
- return isConsumed;
- }
-
- boolean isInitialized() {
- return initialized;
- }
-
- long nextFetchOffset() {
- return nextFetchOffset;
- }
-
- void setInitialized() {
- this.initialized = true;
- }
-
- /**
- * Draining a {@link CompletedFetch} will signal that the data has been consumed and the
- * underlying resources are closed. This is somewhat analogous to {@link Closeable#close()
- * closing}, though no error will result if a caller invokes {@link #fetchRecords(int)}; an
- * empty {@link List list} will be returned instead.
- */
- void drain() {
- if (!isConsumed) {
- maybeCloseRecordStream();
- cachedRecordException = null;
- isConsumed = true;
-
- // we move the bucket to the end if we received some bytes.
- if (recordsRead > 0) {
- logScannerStatus.moveBucketToEnd(tableBucket);
- }
- }
- }
-
- /**
- * The {@link LogRecordBatch batch} of {@link LogRecord records} is converted to a {@link List
- * list} of {@link ScanRecord scan records} and returned.
- *
- * @param maxRecords The number of records to return; the number returned may be {@code 0 <=
- * maxRecords}
- * @return {@link ScanRecord scan records}
- */
- public List<ScanRecord> fetchRecords(int maxRecords) {
- if (corruptLastRecord) {
- throw new FetchException(
- "Received exception when fetching the next record from "
- + tableBucket
- + ". If needed, please back to past the record to continue scanning.",
- cachedRecordException);
- }
-
- if (isConsumed) {
- return Collections.emptyList();
- }
-
- List<ScanRecord> scanRecords = new ArrayList<>();
- try {
- for (int i = 0; i < maxRecords; i++) {
- // Only move to next record if there was no exception in the last fetch.
- if (cachedRecordException == null) {
- corruptLastRecord = true;
- lastRecord = nextFetchedRecord();
- corruptLastRecord = false;
- }
-
- if (lastRecord == null) {
- break;
- }
-
- ScanRecord record = toScanRecord(lastRecord);
- scanRecords.add(record);
- recordsRead++;
- nextFetchOffset = lastRecord.logOffset() + 1;
- cachedRecordException = null;
- }
- } catch (Exception e) {
- cachedRecordException = e;
- if (scanRecords.isEmpty()) {
- throw new FetchException(
- "Received exception when fetching the next record from "
- + tableBucket
- + ". If needed, please back to past the record to continue scanning.",
- e);
- }
- }
-
- return scanRecords;
- }
-
- private LogRecord nextFetchedRecord() throws Exception {
- while (true) {
- if (records == null || !records.hasNext()) {
- maybeCloseRecordStream();
-
- if (!batches.hasNext()) {
- // In batch, we preserve the last offset in a batch. By using the next offset
- // computed from the last offset in the batch, we ensure that the offset of the
- // next fetch will point to the next batch, which avoids unnecessary re-fetching
- // of the same batch (in the worst case, the scanner could get stuck fetching
- // the same batch repeatedly).
- if (currentBatch != null) {
- nextFetchOffset = currentBatch.nextLogOffset();
- }
- drain();
- return null;
- }
-
- currentBatch = batches.next();
- // TODO get last epoch.
- maybeEnsureValid(currentBatch);
-
- records = currentBatch.records(readContext);
- } else {
- LogRecord record = records.next();
- // skip any records out of range.
- if (record.logOffset() >= nextFetchOffset) {
- return record;
- }
- }
- }
- }
-
- private void maybeEnsureValid(LogRecordBatch batch) {
- if (isCheckCrcs) {
- if (readContext.isProjectionPushDowned()) {
- LOG.debug("Skipping CRC check for column projected log record batch.");
- return;
- }
- try {
- batch.ensureValid();
- } catch (CorruptRecordException e) {
- throw new FetchException(
- "Record batch for bucket "
- + tableBucket
- + " at offset "
- + batch.baseLogOffset()
- + " is invalid, cause: "
- + e.getMessage());
- }
- }
- }
-
- private void maybeCloseRecordStream() {
- if (records != null) {
- // release underlying resources
- records.close();
- records = null;
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/CompletedPendingFetch.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/CompletedPendingFetch.java
deleted file mode 100644
index 414482254..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/CompletedPendingFetch.java
+++ /dev/null
@@ -1,48 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.metadata.TableBucket;
-
-/**
- * A {@link PendingFetch} that already has been completed. This is a CompletedFetch that needs to in
- * queue to wait other PendingFetch.
- */
-class CompletedPendingFetch implements PendingFetch {
-
- private final CompletedFetch completedFetch;
-
- public CompletedPendingFetch(CompletedFetch completedFetch) {
- this.completedFetch = completedFetch;
- }
-
- @Override
- public TableBucket tableBucket() {
- return completedFetch.tableBucket;
- }
-
- @Override
- public boolean isCompleted() {
- return true;
- }
-
- @Override
- public CompletedFetch toCompletedFetch() {
- return completedFetch;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/DefaultCompletedFetch.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/DefaultCompletedFetch.java
deleted file mode 100644
index e4cf0638d..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/DefaultCompletedFetch.java
+++ /dev/null
@@ -1,51 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.record.LogRecordReadContext;
-import com.alibaba.fluss.rpc.entity.FetchLogResultForBucket;
-import com.alibaba.fluss.rpc.messages.FetchLogRequest;
-
-/**
- * {@link DefaultCompletedFetch} is a {@link CompletedFetch} that represents a completed fetch that
- * the log records have been returned from the tablet server by {@link FetchLogRequest}.
- */
-@Internal
-class DefaultCompletedFetch extends CompletedFetch {
-
- public DefaultCompletedFetch(
- TableBucket tableBucket,
- FetchLogResultForBucket fetchLogResultForBucket,
- LogRecordReadContext readContext,
- LogScannerStatus logScannerStatus,
- boolean isCheckCrc,
- Long fetchOffset) {
- super(
- tableBucket,
- fetchLogResultForBucket.getError(),
- fetchLogResultForBucket.recordsOrEmpty().sizeInBytes(),
- fetchLogResultForBucket.getHighWatermark(),
- fetchLogResultForBucket.recordsOrEmpty().batches().iterator(),
- readContext,
- logScannerStatus,
- isCheckCrc,
- fetchOffset);
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogFetchBuffer.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogFetchBuffer.java
deleted file mode 100644
index de2b09175..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogFetchBuffer.java
+++ /dev/null
@@ -1,280 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.exception.WakeupException;
-import com.alibaba.fluss.metadata.TableBucket;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.GuardedBy;
-import javax.annotation.concurrent.ThreadSafe;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.locks.Condition;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
-import static com.alibaba.fluss.utils.concurrent.LockUtils.inLock;
-
-/* This file is based on source code of Apache Kafka Project (https://kafka.apache.org/), licensed by the Apache
- * Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
- * additional information regarding copyright ownership. */
-
-/**
- * {@link LogFetchBuffer} buffers up {@link CompletedFetch the results} from the tablet server
- * responses as they are received. It's essentially a wrapper around a {@link java.util.Queue} of
- * {@link CompletedFetch}. There is at most one {@link LogFetchBuffer} per bucket in the queue.
- *
- * <p>Note: this class is thread-safe with the intention that {@link CompletedFetch the data} will
- * be created by a background thread and consumed by the application thread.
- */
-@ThreadSafe
-@Internal
-public class LogFetchBuffer implements AutoCloseable {
- private static final Logger LOG = LoggerFactory.getLogger(LogFetchBuffer.class);
-
- private final Lock lock = new ReentrantLock();
- private final Condition notEmptyCondition = lock.newCondition();
- private final AtomicBoolean wokenup = new AtomicBoolean(false);
-
- @GuardedBy("lock")
- private final LinkedList<CompletedFetch> completedFetches;
-
- @GuardedBy("lock")
- private final Map<TableBucket, LinkedList<PendingFetch>> pendingFetches = new HashMap<>();
-
- @GuardedBy("lock")
- private @Nullable CompletedFetch nextInLineFetch;
-
- public LogFetchBuffer() {
- this.completedFetches = new LinkedList<>();
- }
-
- /**
- * Returns {@code true} if there are no completed fetches pending to return to the user.
- *
- * @return {@code true} if the buffer is empty, {@code false} otherwise
- */
- boolean isEmpty() {
- return inLock(lock, completedFetches::isEmpty);
- }
-
- void pend(PendingFetch pendingFetch) {
- inLock(
- lock,
- () -> {
- pendingFetches
- .computeIfAbsent(pendingFetch.tableBucket(), k -> new LinkedList<>())
- .add(pendingFetch);
- });
- }
-
- /**
- * Tries to complete the pending fetches in order, convert them into completed fetches in the
- * buffer.
- */
- void tryComplete(TableBucket tableBucket) {
- inLock(
- lock,
- () -> {
- boolean hasCompleted = false;
- LinkedList<PendingFetch> pendings = this.pendingFetches.get(tableBucket);
- while (pendings != null && !pendings.isEmpty()) {
- PendingFetch pendingFetch = pendings.peek();
- if (pendingFetch.isCompleted()) {
- CompletedFetch completedFetch = pendingFetch.toCompletedFetch();
- completedFetches.add(completedFetch);
- pendings.poll();
- hasCompleted = true;
- } else {
- break;
- }
- }
- if (hasCompleted) {
- notEmptyCondition.signalAll();
- // clear the bucket entry if there is no pending fetches for the bucket.
- if (pendings.isEmpty()) {
- this.pendingFetches.remove(tableBucket);
- }
- }
- });
- }
-
- void add(CompletedFetch completedFetch) {
- inLock(
- lock,
- () -> {
- LinkedList<PendingFetch> pendings =
- pendingFetches.get(completedFetch.tableBucket);
- if (pendings == null || pendings.isEmpty()) {
- completedFetches.add(completedFetch);
- notEmptyCondition.signalAll();
- } else {
- pendings.add(new CompletedPendingFetch(completedFetch));
- }
- });
- }
-
- void addAll(Collection<CompletedFetch> completedFetches) {
- if (completedFetches == null || completedFetches.isEmpty()) {
- return;
- }
- inLock(lock, () -> completedFetches.forEach(this::add));
- }
-
- CompletedFetch nextInLineFetch() {
- return inLock(lock, () -> nextInLineFetch);
- }
-
- void setNextInLineFetch(@Nullable CompletedFetch nextInLineFetch) {
- inLock(lock, () -> this.nextInLineFetch = nextInLineFetch);
- }
-
- CompletedFetch peek() {
- return inLock(lock, completedFetches::peek);
- }
-
- CompletedFetch poll() {
- return inLock(lock, completedFetches::poll);
- }
-
- /**
- * Allows the caller to await presence of data in the buffer. The method will block, returning
- * only under one of the following conditions:
- *
- * <ol>
- * <li>The buffer was already non-empty on entry
- * <li>The buffer was populated during the wait
- * <li>The time out
- * <li>The thread was interrupted
- * </ol>
- *
- * @param deadlineNanos the deadline time to wait until
- * @return false if the waiting time detectably elapsed before return from the method, else true
- */
- boolean awaitNotEmpty(long deadlineNanos) throws InterruptedException {
- return inLock(
- lock,
- () -> {
- while (isEmpty()) {
- if (wokenup.compareAndSet(true, false)) {
- throw new WakeupException("The await is wakeup.");
- }
- long remainingNanos = deadlineNanos - System.nanoTime();
- if (remainingNanos <= 0) {
- // false for timeout
- return false;
- }
-
- if (notEmptyCondition.await(remainingNanos, TimeUnit.NANOSECONDS)) {
- // true for signal
- return true;
- }
- }
-
- // true for wakeup or we have data to return
- return true;
- });
- }
-
- public void wakeup() {
- wokenup.set(true);
- inLock(lock, notEmptyCondition::signalAll);
- }
-
- /**
- * Updates the buffer to retain only the fetch data that corresponds to the given buckets. Any
- * previously {@link CompletedFetch fetched data} and {@link PendingFetch pending fetch} is
- * removed if its bucket is not in the given set of buckets.
- *
- * @param buckets {@link Set} of {@link TableBucket}s for which any buffered data should be kept
- */
- void retainAll(Set<TableBucket> buckets) {
- inLock(
- lock,
- () -> {
- completedFetches.removeIf(cf -> maybeDrain(buckets, cf));
-
- if (maybeDrain(buckets, nextInLineFetch)) {
- nextInLineFetch = null;
- }
-
- // remove entries that not matches the buckets from pendingFetches
- pendingFetches.entrySet().removeIf(entry -> !buckets.contains(entry.getKey()));
- });
- }
-
- /**
- * Drains (i.e. <em>removes</em>) the contents of the given {@link CompletedFetch} as its data
- * should not be returned to the user.
- */
- private boolean maybeDrain(Set<TableBucket> excludedBuckets, CompletedFetch completedFetch) {
- if (completedFetch != null && !excludedBuckets.contains(completedFetch.tableBucket)) {
- LOG.debug(
- "Removing {} from buffered fetch data as it is not in the set of buckets to retain ({})",
- completedFetch.tableBucket,
- excludedBuckets);
- completedFetch.drain();
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Return the set of {@link TableBucket buckets} for which we have data in the buffer.
- *
- * @return {@link TableBucket bucket} set
- */
- @Nullable
- Set<TableBucket> bufferedBuckets() {
- return inLock(
- lock,
- () -> {
- final Set<TableBucket> buckets = new HashSet<>();
- if (nextInLineFetch != null && !nextInLineFetch.isConsumed()) {
- buckets.add(nextInLineFetch.tableBucket);
- }
- completedFetches.forEach(cf -> buckets.add(cf.tableBucket));
- buckets.addAll(pendingFetches.keySet());
- return buckets;
- });
- }
-
- /** Return the set of {@link TableBucket buckets} for which we have pending fetches. */
- Set<TableBucket> pendedBuckets() {
- return inLock(lock, pendingFetches::keySet);
- }
-
- @Override
- public void close() throws Exception {
- inLock(lock, () -> retainAll(Collections.emptySet()));
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogFetchCollector.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogFetchCollector.java
deleted file mode 100644
index fb6095f2a..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogFetchCollector.java
+++ /dev/null
@@ -1,292 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.AuthorizationException;
-import com.alibaba.fluss.exception.FetchException;
-import com.alibaba.fluss.exception.LogOffsetOutOfRangeException;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.record.LogRecordBatch;
-import com.alibaba.fluss.rpc.protocol.ApiError;
-import com.alibaba.fluss.rpc.protocol.Errors;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.ThreadSafe;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/* This file is based on source code of Apache Kafka Project (https://kafka.apache.org/), licensed by the Apache
- * Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
- * additional information regarding copyright ownership. */
-
-/**
- * {@link LogFetchCollector} operates at the {@link LogRecordBatch} level, as that is what is stored
- * in the {@link LogFetchBuffer}. Each {@link LogRecord} in the {@link LogRecordBatch} is converted
- * to a {@link ScanRecord} and added to the returned {@link LogFetcher}.
- */
-@ThreadSafe
-@Internal
-public class LogFetchCollector {
- private static final Logger LOG = LoggerFactory.getLogger(LogFetchCollector.class);
-
- private final TablePath tablePath;
- private final LogScannerStatus logScannerStatus;
- private final int maxPollRecords;
- private final MetadataUpdater metadataUpdater;
-
- public LogFetchCollector(
- TablePath tablePath,
- LogScannerStatus logScannerStatus,
- Configuration conf,
- MetadataUpdater metadataUpdater) {
- this.tablePath = tablePath;
- this.logScannerStatus = logScannerStatus;
- this.maxPollRecords = conf.getInt(ConfigOptions.CLIENT_SCANNER_LOG_MAX_POLL_RECORDS);
- this.metadataUpdater = metadataUpdater;
- }
-
- /**
- * Return the fetched log records, empty the record buffer and update the consumed position.
- *
- * <p>NOTE: returning empty records guarantees the consumed position are NOT updated.
- *
- * @return The fetched records per partition
- * @throws LogOffsetOutOfRangeException If there is OffsetOutOfRange error in fetchResponse and
- * the defaultResetPolicy is NONE
- */
- public Map<TableBucket, List<ScanRecord>> collectFetch(final LogFetchBuffer logFetchBuffer) {
- Map<TableBucket, List<ScanRecord>> fetched = new HashMap<>();
- int recordsRemaining = maxPollRecords;
-
- try {
- while (recordsRemaining > 0) {
- CompletedFetch nextInLineFetch = logFetchBuffer.nextInLineFetch();
- if (nextInLineFetch == null || nextInLineFetch.isConsumed()) {
- CompletedFetch completedFetch = logFetchBuffer.peek();
- if (completedFetch == null) {
- break;
- }
-
- if (!completedFetch.isInitialized()) {
- try {
- logFetchBuffer.setNextInLineFetch(initialize(completedFetch));
- } catch (Exception e) {
- // Remove a completedFetch upon a parse with exception if
- // (1) it contains no records, and
- // (2) there are no fetched records with actual content preceding this
- // exception.
- if (fetched.isEmpty() && completedFetch.sizeInBytes == 0) {
- logFetchBuffer.poll();
- }
- throw e;
- }
- } else {
- logFetchBuffer.setNextInLineFetch(completedFetch);
- }
-
- logFetchBuffer.poll();
- } else {
- List<ScanRecord> records = fetchRecords(nextInLineFetch, recordsRemaining);
- if (!records.isEmpty()) {
- TableBucket tableBucket = nextInLineFetch.tableBucket;
- List<ScanRecord> currentRecords = fetched.get(tableBucket);
- if (currentRecords == null) {
- fetched.put(tableBucket, records);
- } else {
- // this case shouldn't usually happen because we only send one fetch at
- // a time per bucket, but it might conceivably happen in some rare
- // cases (such as bucket leader changes). we have to copy to a new list
- // because the old one may be immutable
- List<ScanRecord> newScanRecords =
- new ArrayList<>(records.size() + currentRecords.size());
- newScanRecords.addAll(currentRecords);
- newScanRecords.addAll(records);
- fetched.put(tableBucket, newScanRecords);
- }
-
- recordsRemaining -= records.size();
- }
- }
- }
- } catch (FetchException e) {
- if (fetched.isEmpty()) {
- throw e;
- }
- }
-
- return fetched;
- }
-
- private List<ScanRecord> fetchRecords(CompletedFetch nextInLineFetch, int maxRecords) {
- TableBucket tb = nextInLineFetch.tableBucket;
- Long offset = logScannerStatus.getBucketOffset(tb);
- if (offset == null) {
- LOG.debug(
- "Ignoring fetched records for {} at offset {} since the current offset is null which means the "
- + "bucket has been unsubscribe.",
- tb,
- nextInLineFetch.nextFetchOffset());
- } else {
- if (nextInLineFetch.nextFetchOffset() == offset) {
- List<ScanRecord> records = nextInLineFetch.fetchRecords(maxRecords);
- LOG.trace(
- "Returning {} fetched records at offset {} for assigned bucket {}.",
- records.size(),
- offset,
- tb);
-
- if (nextInLineFetch.nextFetchOffset() > offset) {
- LOG.trace(
- "Updating fetch offset from {} to {} for bucket {} and returning {} records from poll()",
- offset,
- nextInLineFetch.nextFetchOffset(),
- tb,
- records.size());
- logScannerStatus.updateOffset(tb, nextInLineFetch.nextFetchOffset());
- }
- return records;
- } else {
- // these records aren't next in line based on the last consumed offset, ignore them
- // they must be from an obsolete request
- LOG.warn(
- "Ignoring fetched records for {} at offset {} since the current offset is {}",
- nextInLineFetch.tableBucket,
- nextInLineFetch.nextFetchOffset(),
- offset);
- }
- }
-
- LOG.trace("Draining fetched records for bucket {}", nextInLineFetch.tableBucket);
- nextInLineFetch.drain();
-
- return Collections.emptyList();
- }
-
- /** Initialize a {@link CompletedFetch} object. */
- private @Nullable CompletedFetch initialize(CompletedFetch completedFetch) {
- TableBucket tb = completedFetch.tableBucket;
- ApiError error = completedFetch.error;
-
- try {
- if (error.isSuccess()) {
- return handleInitializeSuccess(completedFetch);
- } else {
- handleInitializeErrors(completedFetch, error.error(), error.messageWithFallback());
- return null;
- }
- } finally {
- if (error.isFailure()) {
- // we move the bucket to the end if there was an error. This way,
- // it's more likely that buckets for the same table can remain together
- // (allowing for more efficient serialization).
- logScannerStatus.moveBucketToEnd(tb);
- }
- }
- }
-
- private @Nullable CompletedFetch handleInitializeSuccess(CompletedFetch completedFetch) {
- TableBucket tb = completedFetch.tableBucket;
- long fetchOffset = completedFetch.nextFetchOffset();
-
- // we are interested in this fetch only if the beginning offset matches the
- // current consumed position.
- Long offset = logScannerStatus.getBucketOffset(tb);
- if (offset == null) {
- LOG.debug(
- "Discarding stale fetch response for bucket {} since the expected offset is null which means the bucket has been "
- + "unsubscribed.",
- tb);
- return null;
- }
- if (offset != fetchOffset) {
- LOG.warn(
- "Discarding stale fetch response for bucket {} since its offset {} does not match the expected offset {}.",
- tb,
- fetchOffset,
- offset);
- return null;
- }
-
- long highWatermark = completedFetch.highWatermark;
- if (highWatermark >= 0) {
- LOG.trace("Updating high watermark for bucket {} to {}.", tb, highWatermark);
- logScannerStatus.updateHighWatermark(tb, highWatermark);
- }
-
- completedFetch.setInitialized();
- return completedFetch;
- }
-
- private void handleInitializeErrors(
- CompletedFetch completedFetch, Errors error, String errorMessage) {
- TableBucket tb = completedFetch.tableBucket;
- long fetchOffset = completedFetch.nextFetchOffset();
- if (error == Errors.NOT_LEADER_OR_FOLLOWER
- || error == Errors.LOG_STORAGE_EXCEPTION
- || error == Errors.KV_STORAGE_EXCEPTION
- || error == Errors.STORAGE_EXCEPTION
- || error == Errors.FENCED_LEADER_EPOCH_EXCEPTION) {
- LOG.debug(
- "Error in fetch for bucket {}: {}:{}",
- tb,
- error.exceptionName(),
- error.exception(errorMessage));
- metadataUpdater.checkAndUpdateMetadata(tablePath, tb);
- } else if (error == Errors.UNKNOWN_TABLE_OR_BUCKET_EXCEPTION) {
- LOG.warn("Received unknown table or bucket error in fetch for bucket {}", tb);
- metadataUpdater.checkAndUpdateMetadata(tablePath, tb);
- } else if (error == Errors.LOG_OFFSET_OUT_OF_RANGE_EXCEPTION) {
- throw new FetchException(
- String.format(
- "The fetching offset %s is out of range: %s",
- fetchOffset, error.exception(errorMessage)));
- } else if (error == Errors.AUTHORIZATION_EXCEPTION) {
- throw new AuthorizationException(errorMessage);
- } else if (error == Errors.UNKNOWN_SERVER_ERROR) {
- LOG.warn(
- "Unknown server error while fetching offset {} for bucket {}: {}",
- fetchOffset,
- tb,
- error.exception(errorMessage));
- } else if (error == Errors.CORRUPT_MESSAGE) {
- throw new FetchException(
- String.format(
- "Encountered corrupt message when fetching offset %s for bucket %s: %s",
- fetchOffset, tb, error.exception(errorMessage)));
- } else {
- throw new FetchException(
- String.format(
- "Unexpected error code %s while fetching at offset %s from bucket %s: %s",
- error, fetchOffset, tb, error.exception(errorMessage)));
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogScan.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogScan.java
deleted file mode 100644
index 2c1316075..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogScan.java
+++ /dev/null
@@ -1,56 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-
-import javax.annotation.Nullable;
-
-/**
- * Used to describe the operation to scan log data by {@link LogScanner} to a table.
- *
- * @since 0.1
- */
-@PublicEvolving
-public class LogScan {
-
- /** The projected fields to do projection. No projection if is null. */
- @Nullable private final int[] projectedFields;
-
- public LogScan() {
- this(null);
- }
-
- private LogScan(@Nullable int[] projectedFields) {
- this.projectedFields = projectedFields;
- }
-
- /**
- * Returns a new instance of LogScan description with column projection.
- *
- * @param projectedFields the projection fields
- */
- public LogScan withProjectedFields(int[] projectedFields) {
- return new LogScan(projectedFields);
- }
-
- @Nullable
- public int[] getProjectedFields() {
- return projectedFields;
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogScanner.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogScanner.java
deleted file mode 100644
index a0c08d940..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogScanner.java
+++ /dev/null
@@ -1,124 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-
-import java.time.Duration;
-
-/**
- * The scanner is used to scan log data of specify table from Fluss.
- *
- * @since 0.1
- */
-@PublicEvolving
-public interface LogScanner extends AutoCloseable {
-
- /**
- * The earliest offset to fetch from. Fluss uses "-2" to indicate fetching from log start
- * offset.
- */
- long EARLIEST_OFFSET = -2L;
-
- /**
- * Poll log data from tablet server.
- *
- * <p>On each poll, scanner will try to use the last scanned offset as the starting offset and
- * fetch sequentially. The latest offset will be cached in memory, and if there is no offset
- * cached in memory, scanner will start either from the earliest offset or from the latest
- * offset for each bucket according to the policy.
- *
- * @param timeout the timeout to poll.
- * @return the result of poll.
- * @throws java.lang.IllegalStateException if the scanner is not subscribed to any buckets to
- * read from.
- */
- ScanRecords poll(Duration timeout);
-
- /**
- * Subscribe to the given table bucket in given offset dynamically. If the table bucket is
- * already subscribed, the offset will be updated.
- *
- * <p>Please use {@link #subscribe(long, int, long)} to subscribe a partitioned table.
- *
- * @param bucket the table bucket to subscribe.
- * @param offset the offset to start from.
- * @throws java.lang.IllegalStateException if the table is a partitioned table.
- */
- void subscribe(int bucket, long offset);
-
- /**
- * Subscribe to the given table buckets from beginning dynamically. If the table bucket is
- * already subscribed, the start offset will be updated.
- *
- * <p>It equals to call {@link #subscribe(int, long)} with offset {@link #EARLIEST_OFFSET} for
- * the subscribed bucket.
- *
- * <p>Please use {@link #subscribeFromBeginning(long, int)} to subscribe a partitioned table.
- *
- * @param bucket the table bucket to subscribe.
- * @throws java.lang.IllegalStateException if the table is a partitioned table.
- */
- default void subscribeFromBeginning(int bucket) {
- subscribe(bucket, EARLIEST_OFFSET);
- }
-
- /**
- * Subscribe to the given partitioned table bucket in given offset dynamically. If the table
- * bucket is already subscribed, the offset will be updated.
- *
- * <p>Please use {@link #subscribe(int, long)} to subscribe a non-partitioned table.
- *
- * @param partitionId the partition id of the table partition to subscribe.
- * @param bucket the table bucket to subscribe.
- * @param offset the offset to start from.
- * @throws java.lang.IllegalStateException if the table is a non-partitioned table.
- */
- void subscribe(long partitionId, int bucket, long offset);
-
- /**
- * Unsubscribe from the given bucket of given partition dynamically.
- *
- * @param partitionId the partition id of the table partition to unsubscribe.
- * @param bucket the table bucket to unsubscribe.
- * @throws java.lang.IllegalStateException if the table is a non-partitioned table.
- */
- void unsubscribe(long partitionId, int bucket);
-
- /**
- * Subscribe to the given partitioned table bucket from beginning dynamically. If the table
- * bucket is already subscribed, the start offset will be updated.
- *
- * <p>It equals to call {@link #subscribe(long, int, long)} with offset {@link #EARLIEST_OFFSET}
- * for the subscribed bucket.
- *
- * <p>Please use {@link #subscribeFromBeginning(int)} to subscribe a non-partitioned table.
- *
- * @param bucket the table bucket to subscribe.
- * @throws java.lang.IllegalStateException if the table is a non-partitioned table.
- */
- default void subscribeFromBeginning(long partitionId, int bucket) {
- subscribe(partitionId, bucket, EARLIEST_OFFSET);
- }
-
- /**
- * Wake up the log scanner in case the fetcher thread in log scanner is blocking in {@link
- * #poll(Duration timeout)}.
- */
- void wakeup();
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogScannerStatus.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogScannerStatus.java
deleted file mode 100644
index 42e4e8435..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogScannerStatus.java
+++ /dev/null
@@ -1,104 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.utils.log.FairBucketStatusMap;
-
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.ThreadSafe;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Predicate;
-
-/** The status of a {@link LogScanner}. */
-@ThreadSafe
-@Internal
-public class LogScannerStatus {
- private final FairBucketStatusMap<BucketScanStatus> bucketStatusMap;
-
- public LogScannerStatus() {
- this.bucketStatusMap = new FairBucketStatusMap<>();
- }
-
- synchronized boolean prepareToPoll() {
- return bucketStatusMap.size() > 0;
- }
-
- synchronized void moveBucketToEnd(TableBucket tableBucket) {
- bucketStatusMap.moveToEnd(tableBucket);
- }
-
- /** Return the offset of the bucket, if the bucket have been unsubscribed, return null. */
- synchronized @Nullable Long getBucketOffset(TableBucket tableBucket) {
- BucketScanStatus bucketScanStatus = bucketStatus(tableBucket);
- if (bucketScanStatus == null) {
- return null;
- } else {
- return bucketScanStatus.getOffset();
- }
- }
-
- synchronized void updateHighWatermark(TableBucket tableBucket, long highWatermark) {
- bucketStatus(tableBucket).setHighWatermark(highWatermark);
- }
-
- synchronized void updateOffset(TableBucket tableBucket, long offset) {
- bucketStatus(tableBucket).setOffset(offset);
- }
-
- synchronized void assignScanBuckets(Map<TableBucket, Long> scanBucketAndOffsets) {
- for (Map.Entry<TableBucket, Long> entry : scanBucketAndOffsets.entrySet()) {
- TableBucket scanBucket = entry.getKey();
- long offset = entry.getValue();
- BucketScanStatus bucketScanStatus = bucketStatusMap.statusValue(scanBucket);
- if (bucketScanStatus == null) {
- bucketScanStatus = new BucketScanStatus(offset);
- } else {
- bucketScanStatus.setOffset(offset);
- }
- bucketStatusMap.update(scanBucket, bucketScanStatus);
- }
- }
-
- synchronized void unassignScanBuckets(List<TableBucket> buckets) {
- for (TableBucket bucket : buckets) {
- bucketStatusMap.remove(bucket);
- }
- }
-
- synchronized List<TableBucket> fetchableBuckets(Predicate<TableBucket> isAvailable) {
- // Since this is in the hot-path for fetching, we do this instead of using java.util.stream
- // API
- List<TableBucket> result = new ArrayList<>();
- bucketStatusMap.forEach(
- ((tableBucket, bucketScanStatus) -> {
- if (isAvailable.test(tableBucket)) {
- result.add(tableBucket);
- }
- }));
- return result;
- }
-
- private BucketScanStatus bucketStatus(TableBucket tableBucket) {
- return bucketStatusMap.statusValue(tableBucket);
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/PendingFetch.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/PendingFetch.java
deleted file mode 100644
index 2bc4d4837..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/PendingFetch.java
+++ /dev/null
@@ -1,33 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.metadata.TableBucket;
-
-/**
- * A pending fetch is a fetch that requested to download remote log segment file to local but not
- * yet been completed.
- */
-interface PendingFetch {
-
- TableBucket tableBucket();
-
- boolean isCompleted();
-
- CompletedFetch toCompletedFetch();
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/RemoteCompletedFetch.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/RemoteCompletedFetch.java
deleted file mode 100644
index 1ea8c5ae9..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/RemoteCompletedFetch.java
+++ /dev/null
@@ -1,75 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.record.FileLogRecords;
-import com.alibaba.fluss.record.LogRecordReadContext;
-import com.alibaba.fluss.rpc.protocol.ApiError;
-
-import java.io.IOException;
-
-/**
- * {@link RemoteCompletedFetch} is a {@link CompletedFetch} that represents a completed fetch that
- * the log records are fetched from remote log storage.
- */
-@Internal
-class RemoteCompletedFetch extends CompletedFetch {
-
- private final FileLogRecords fileLogRecords;
-
- // recycle to clean up the fetched remote log files and increment the prefetch semaphore
- private final Runnable recycleCallback;
-
- RemoteCompletedFetch(
- TableBucket tableBucket,
- FileLogRecords fileLogRecords,
- long highWatermark,
- LogRecordReadContext readContext,
- LogScannerStatus logScannerStatus,
- boolean isCheckCrc,
- long fetchOffset,
- Runnable recycleCallback) {
- super(
- tableBucket,
- ApiError.NONE,
- fileLogRecords.sizeInBytes(),
- highWatermark,
- fileLogRecords.batches().iterator(),
- readContext,
- logScannerStatus,
- isCheckCrc,
- fetchOffset);
- this.fileLogRecords = fileLogRecords;
- this.recycleCallback = recycleCallback;
- }
-
- @Override
- void drain() {
- super.drain();
- // close file channel only, don't need to flush the file which is very heavy
- try {
- fileLogRecords.closeHandlers();
- } catch (IOException e) {
- LOG.warn("Failed to close file channel for remote log records", e);
- }
- // call recycle to remove the fetched files and increment the prefetch semaphore
- recycleCallback.run();
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/RemoteLogDownloadFuture.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/RemoteLogDownloadFuture.java
deleted file mode 100644
index c135033ce..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/RemoteLogDownloadFuture.java
+++ /dev/null
@@ -1,63 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.record.FileLogRecords;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.concurrent.CompletableFuture;
-
-/** Represents the future of a remote log download request. */
-public class RemoteLogDownloadFuture {
-
- private final CompletableFuture<File> logFileFuture;
- private final Runnable recycleCallback;
-
- public RemoteLogDownloadFuture(
- CompletableFuture<File> logFileFuture, Runnable recycleCallback) {
- this.logFileFuture = logFileFuture;
- this.recycleCallback = recycleCallback;
- }
-
- public boolean isDone() {
- return logFileFuture.isDone();
- }
-
- public FileLogRecords getFileLogRecords(int startPosition) {
- try {
- FileLogRecords fileLogRecords = FileLogRecords.open(logFileFuture.join(), false);
- if (startPosition > 0) {
- return fileLogRecords.slice(startPosition, Integer.MAX_VALUE);
- } else {
- return fileLogRecords;
- }
- } catch (IOException e) {
- throw new FlussRuntimeException(e);
- }
- }
-
- public Runnable getRecycleCallback() {
- return recycleCallback;
- }
-
- public void onComplete(Runnable callback) {
- logFileFuture.thenRun(callback);
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/RemotePendingFetch.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/RemotePendingFetch.java
deleted file mode 100644
index c61fcc56a..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/RemotePendingFetch.java
+++ /dev/null
@@ -1,97 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.record.FileLogRecords;
-import com.alibaba.fluss.record.LogRecordReadContext;
-import com.alibaba.fluss.remote.RemoteLogSegment;
-
-/**
- * {@link RemotePendingFetch} is a {@link PendingFetch} that represents a pending fetch that waiting
- * for the remote log file fetched to local disk.
- */
-class RemotePendingFetch implements PendingFetch {
-
- final RemoteLogSegment remoteLogSegment;
- private final RemoteLogDownloadFuture downloadFuture;
-
- private final int posInLogSegment;
- private final long fetchOffset;
- private final long highWatermark;
- private final LogRecordReadContext readContext;
- private final LogScannerStatus logScannerStatus;
- private final boolean isCheckCrc;
-
- RemotePendingFetch(
- RemoteLogSegment remoteLogSegment,
- RemoteLogDownloadFuture downloadFuture,
- int posInLogSegment,
- long fetchOffset,
- long highWatermark,
- LogRecordReadContext readContext,
- LogScannerStatus logScannerStatus,
- boolean isCheckCrc) {
- this.remoteLogSegment = remoteLogSegment;
- this.downloadFuture = downloadFuture;
- this.posInLogSegment = posInLogSegment;
- this.fetchOffset = fetchOffset;
- this.highWatermark = highWatermark;
- this.readContext = readContext;
- this.logScannerStatus = logScannerStatus;
- this.isCheckCrc = isCheckCrc;
- }
-
- @Override
- public TableBucket tableBucket() {
- return remoteLogSegment.tableBucket();
- }
-
- @Override
- public boolean isCompleted() {
- return downloadFuture.isDone();
- }
-
- @Override
- public CompletedFetch toCompletedFetch() {
- FileLogRecords fileLogRecords = downloadFuture.getFileLogRecords(posInLogSegment);
- return new RemoteCompletedFetch(
- remoteLogSegment.tableBucket(),
- fileLogRecords,
- highWatermark,
- readContext,
- logScannerStatus,
- isCheckCrc,
- fetchOffset,
- downloadFuture.getRecycleCallback());
- }
-
- @Override
- public String toString() {
- return "RemotePendingFetch{"
- + "remoteLogSegment="
- + remoteLogSegment
- + ", fetchOffset="
- + fetchOffset
- + ", posInLogSegment="
- + posInLogSegment
- + ", highWatermark="
- + highWatermark
- + '}';
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/ScanRecords.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/ScanRecords.java
deleted file mode 100644
index 58ff0d6ae..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/ScanRecords.java
+++ /dev/null
@@ -1,116 +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.
- */
-
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.utils.AbstractIterator;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * A container that holds the list {@link ScanRecord} per bucket for a particular table. There is
- * one {@link ScanRecord} list for every bucket returned by a {@link
- * LogScanner#poll(java.time.Duration)} operation.
- *
- * @since 0.1
- */
-@PublicEvolving
-public class ScanRecords implements Iterable<ScanRecord> {
- public static final ScanRecords EMPTY = new ScanRecords(Collections.emptyMap());
-
- private final Map<TableBucket, List<ScanRecord>> records;
-
- public ScanRecords(Map<TableBucket, List<ScanRecord>> records) {
- this.records = records;
- }
-
- /**
- * Get just the records for the given bucketId.
- *
- * @param scanBucket The bucket to get records for
- */
- public List<ScanRecord> records(TableBucket scanBucket) {
- List<ScanRecord> recs = records.get(scanBucket);
- if (recs == null) {
- return Collections.emptyList();
- }
- return Collections.unmodifiableList(recs);
- }
-
- /**
- * Get the bucket ids which have records contained in this record set.
- *
- * @return the set of partitions with data in this record set (maybe empty if no data was
- * returned)
- */
- public Set<TableBucket> buckets() {
- return Collections.unmodifiableSet(records.keySet());
- }
-
- /** The number of records for all buckets. */
- public int count() {
- int count = 0;
- for (List<ScanRecord> recs : records.values()) {
- count += recs.size();
- }
- return count;
- }
-
- public boolean isEmpty() {
- return records.isEmpty();
- }
-
- @Override
- public Iterator<ScanRecord> iterator() {
- return new ConcatenatedIterable(records.values()).iterator();
- }
-
- private static class ConcatenatedIterable implements Iterable<ScanRecord> {
-
- private final Iterable<? extends Iterable<ScanRecord>> iterables;
-
- public ConcatenatedIterable(Iterable<? extends Iterable<ScanRecord>> iterables) {
- this.iterables = iterables;
- }
-
- @Override
- public Iterator<ScanRecord> iterator() {
- return new AbstractIterator<ScanRecord>() {
- final Iterator<? extends Iterable<ScanRecord>> iters = iterables.iterator();
- Iterator<ScanRecord> current;
-
- public ScanRecord makeNext() {
- while (current == null || !current.hasNext()) {
- if (iters.hasNext()) {
- current = iters.next().iterator();
- } else {
- return allDone();
- }
- }
- return current.next();
- }
- };
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AbstractTableWriter.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AbstractTableWriter.java
deleted file mode 100644
index 0de28284e..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AbstractTableWriter.java
+++ /dev/null
@@ -1,99 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.client.table.getter.PartitionGetter;
-import com.alibaba.fluss.client.write.WriteRecord;
-import com.alibaba.fluss.client.write.WriterClient;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.InternalRow;
-
-import javax.annotation.Nullable;
-
-import java.util.concurrent.CompletableFuture;
-
-/** A base class for {@link AppendWriter} and {@link UpsertWriter} to write data to table. */
-public abstract class AbstractTableWriter implements TableWriter {
-
- // the table path that the data will write to
- protected final TablePath tablePath;
- protected final WriterClient writerClient;
- protected final int fieldCount;
- private final @Nullable PartitionGetter partitionFieldGetter;
-
- protected AbstractTableWriter(
- TablePath tablePath, TableInfo tableInfo, WriterClient writerClient) {
- this.tablePath = tablePath;
- this.writerClient = writerClient;
- this.fieldCount = tableInfo.getRowType().getFieldCount();
- this.partitionFieldGetter =
- tableInfo.isPartitioned()
- ? new PartitionGetter(tableInfo.getRowType(), tableInfo.getPartitionKeys())
- : null;
- }
-
- /**
- * Flush data written that have not yet been sent to the server, forcing the client to send the
- * requests to server and blocks on the completion of the requests associated with these
- * records. A request is considered completed when it is successfully acknowledged according to
- * the {@link ConfigOptions#CLIENT_WRITER_ACKS} configuration you have specified or else it
- * results in an error.
- */
- public void flush() {
- writerClient.flush();
- }
-
- protected CompletableFuture<Void> send(WriteRecord record) {
- CompletableFuture<Void> future = new CompletableFuture<>();
- writerClient.send(
- record,
- (exception) -> {
- if (exception == null) {
- future.complete(null);
- } else {
- future.completeExceptionally(exception);
- }
- });
- return future;
- }
-
- protected PhysicalTablePath getPhysicalPath(InternalRow row) {
- // not partitioned table, return the original physical path
- if (partitionFieldGetter == null) {
- return PhysicalTablePath.of(tablePath);
- } else {
- // partitioned table, extract partition from the row
- String partition = partitionFieldGetter.getPartition(row);
- return PhysicalTablePath.of(tablePath, partition);
- }
- }
-
- protected void checkFieldCount(InternalRow row) {
- if (row.getFieldCount() != fieldCount) {
- throw new IllegalArgumentException(
- "The field count of the row does not match the table schema. "
- + "Expected: "
- + fieldCount
- + ", Actual: "
- + row.getFieldCount());
- }
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/Append.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/Append.java
deleted file mode 100644
index fa58949c3..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/Append.java
+++ /dev/null
@@ -1,37 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-
-/**
- * Used to configure and create a {@link AppendWriter} to write data to a Log Table.
- *
- * <p>{@link Append} objects are immutable and can be shared between threads.
- *
- * @since 0.6
- */
-@PublicEvolving
-public interface Append {
-
- // TODO: Add more methods to configure the AppendWriter, such as apply static partitions,
- // apply overwrites, etc.
-
- /** Create a new {@link AppendWriter} to write data to a Log Table. */
- AppendWriter createWriter();
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AppendResult.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AppendResult.java
deleted file mode 100644
index 3b3a7ea9a..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AppendResult.java
+++ /dev/null
@@ -1,32 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
-
-/**
- * The result of appending a record ({@link AppendWriter#append(InternalRow)}).
- *
- * @since 0.6
- */
-@PublicEvolving
-public class AppendResult {
- // currently, it's an empty class, it will be a compatible evolution if it extends
- // to have offset, timestamp, etc. in the future
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AppendWriter.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AppendWriter.java
deleted file mode 100644
index 1da2de207..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AppendWriter.java
+++ /dev/null
@@ -1,40 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
-
-import java.util.concurrent.CompletableFuture;
-
-/**
- * The writer to write data to the log table.
- *
- * @since 0.2
- */
-@PublicEvolving
-public interface AppendWriter extends TableWriter {
-
- /**
- * Append row into a Log Table.
- *
- * @param row the row to append.
- * @return A {@link CompletableFuture} that always returns append result when complete normally.
- */
- CompletableFuture<AppendResult> append(InternalRow row);
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AppendWriterImpl.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AppendWriterImpl.java
deleted file mode 100644
index bcfce0023..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/AppendWriterImpl.java
+++ /dev/null
@@ -1,99 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.client.write.WriteRecord;
-import com.alibaba.fluss.client.write.WriterClient;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.LogFormat;
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.InternalRow.FieldGetter;
-import com.alibaba.fluss.row.encode.IndexedRowEncoder;
-import com.alibaba.fluss.row.encode.KeyEncoder;
-import com.alibaba.fluss.row.indexed.IndexedRow;
-import com.alibaba.fluss.types.RowType;
-
-import javax.annotation.Nullable;
-
-import java.util.List;
-import java.util.concurrent.CompletableFuture;
-
-/** The writer to write data to the log table. */
-class AppendWriterImpl extends AbstractTableWriter implements AppendWriter {
- private static final AppendResult APPEND_SUCCESS = new AppendResult();
-
- private final @Nullable KeyEncoder bucketKeyEncoder;
-
- private final LogFormat logFormat;
- private final IndexedRowEncoder indexedRowEncoder;
- private final FieldGetter[] fieldGetters;
-
- AppendWriterImpl(TablePath tablePath, TableInfo tableInfo, WriterClient writerClient) {
- super(tablePath, tableInfo, writerClient);
- List<String> bucketKeys = tableInfo.getBucketKeys();
- if (bucketKeys.isEmpty()) {
- this.bucketKeyEncoder = null;
- } else {
- RowType rowType = tableInfo.getSchema().getRowType();
- DataLakeFormat lakeFormat = tableInfo.getTableConfig().getDataLakeFormat().orElse(null);
- this.bucketKeyEncoder = KeyEncoder.of(rowType, bucketKeys, lakeFormat);
- }
-
- this.logFormat = tableInfo.getTableConfig().getLogFormat();
- this.indexedRowEncoder = new IndexedRowEncoder(tableInfo.getRowType());
- this.fieldGetters = InternalRow.createFieldGetters(tableInfo.getRowType());
- }
-
- /**
- * Append row into Fluss non-pk table.
- *
- * @param row the row to append.
- * @return A {@link CompletableFuture} that always returns null when complete normally.
- */
- public CompletableFuture<AppendResult> append(InternalRow row) {
- checkFieldCount(row);
-
- PhysicalTablePath physicalPath = getPhysicalPath(row);
- byte[] bucketKey = bucketKeyEncoder != null ? bucketKeyEncoder.encodeKey(row) : null;
-
- final WriteRecord record;
- if (logFormat == LogFormat.INDEXED) {
- IndexedRow indexedRow = encodeIndexedRow(row);
- record = WriteRecord.forIndexedAppend(physicalPath, indexedRow, bucketKey);
- } else {
- // ARROW format supports general internal row
- record = WriteRecord.forArrowAppend(physicalPath, row, bucketKey);
- }
- return send(record).thenApply(ignored -> APPEND_SUCCESS);
- }
-
- private IndexedRow encodeIndexedRow(InternalRow row) {
- if (row instanceof IndexedRow) {
- return (IndexedRow) row;
- }
-
- indexedRowEncoder.startNewRow();
- for (int i = 0; i < fieldCount; i++) {
- indexedRowEncoder.encodeField(i, fieldGetters[i].getFieldOrNull(row));
- }
- return indexedRowEncoder.finishRow();
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/DeleteResult.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/DeleteResult.java
deleted file mode 100644
index 9422dbbc5..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/DeleteResult.java
+++ /dev/null
@@ -1,32 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
-
-/**
- * The result of deleting a record ({@link UpsertWriter#delete(InternalRow)}.
- *
- * @since 0.6
- */
-@PublicEvolving
-public class DeleteResult {
- // currently, it's an empty class, it will be a compatible evolution if it extends
- // to have offset, timestamp, etc. in the future
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/TableAppend.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/TableAppend.java
deleted file mode 100644
index 6a29ccf69..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/TableAppend.java
+++ /dev/null
@@ -1,41 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.client.write.WriterClient;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-
-/** API for configuring and creating {@link AppendWriter}. */
-public class TableAppend implements Append {
-
- private final TablePath tablePath;
- private final TableInfo tableInfo;
- private final WriterClient writerClient;
-
- public TableAppend(TablePath tablePath, TableInfo tableInfo, WriterClient writerClient) {
- this.tablePath = tablePath;
- this.tableInfo = tableInfo;
- this.writerClient = writerClient;
- }
-
- @Override
- public AppendWriter createWriter() {
- return new AppendWriterImpl(tablePath, tableInfo, writerClient);
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/TableUpsert.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/TableUpsert.java
deleted file mode 100644
index 7ff451b36..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/TableUpsert.java
+++ /dev/null
@@ -1,98 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.client.write.WriterClient;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.types.RowType;
-
-import javax.annotation.Nullable;
-
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-
-/** API for configuring and creating {@link UpsertWriter}. */
-public class TableUpsert implements Upsert {
-
- private final TablePath tablePath;
- private final TableInfo tableInfo;
- private final WriterClient writerClient;
-
- private final @Nullable int[] targetColumns;
-
- public TableUpsert(TablePath tablePath, TableInfo tableInfo, WriterClient writerClient) {
- this(tablePath, tableInfo, writerClient, null);
- }
-
- private TableUpsert(
- TablePath tablePath,
- TableInfo tableInfo,
- WriterClient writerClient,
- @Nullable int[] targetColumns) {
- this.tablePath = tablePath;
- this.tableInfo = tableInfo;
- this.writerClient = writerClient;
- this.targetColumns = targetColumns;
- }
-
- @Override
- public Upsert partialUpdate(@Nullable int[] targetColumns) {
- // check if the target columns are valid and throw pretty exception messages
- if (targetColumns != null) {
- int numColumns = tableInfo.getRowType().getFieldCount();
- for (int targetColumn : targetColumns) {
- if (targetColumn < 0 || targetColumn >= numColumns) {
- throw new IllegalArgumentException(
- "Invalid target column index: "
- + targetColumn
- + " for table "
- + tablePath
- + ". The table only has "
- + numColumns
- + " columns.");
- }
- }
- }
- return new TableUpsert(tablePath, tableInfo, writerClient, targetColumns);
- }
-
- @Override
- public Upsert partialUpdate(String... targetColumnNames) {
- checkNotNull(targetColumnNames, "targetColumnNames");
- // check if the target columns are valid
- RowType rowType = tableInfo.getRowType();
- int[] targetColumns = new int[targetColumnNames.length];
- for (int i = 0; i < targetColumnNames.length; i++) {
- targetColumns[i] = rowType.getFieldIndex(targetColumnNames[i]);
- if (targetColumns[i] == -1) {
- throw new IllegalArgumentException(
- "Can not find target column: "
- + targetColumnNames[i]
- + " for table "
- + tablePath
- + ".");
- }
- }
- return partialUpdate(targetColumns);
- }
-
- @Override
- public UpsertWriter createWriter() {
- return new UpsertWriterImpl(tablePath, tableInfo, targetColumns, writerClient);
- }
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/TableWriter.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/TableWriter.java
deleted file mode 100644
index 4036e27d8..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/TableWriter.java
+++ /dev/null
@@ -1,41 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.config.ConfigOptions;
-
-/**
- * A writer to write data to a Fluss table.
- *
- * <p>A base interface for {@link AppendWriter} and {@link UpsertWriter} to write data to table.
- *
- * @since 0.1
- */
-@PublicEvolving
-public interface TableWriter {
-
- /**
- * Flush data written that have not yet been sent to the server, forcing the client to send the
- * requests to server and blocks on the completion of the requests associated with these
- * records. A request is considered completed when it is successfully acknowledged according to
- * the {@link ConfigOptions#CLIENT_WRITER_ACKS} configuration you have specified or else it
- * results in an error.
- */
- void flush();
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/Upsert.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/Upsert.java
deleted file mode 100644
index 02970a450..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/Upsert.java
+++ /dev/null
@@ -1,67 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
-
-import javax.annotation.Nullable;
-
-/**
- * Used to configure and create {@link UpsertWriter} to upsert and delete data to a Primary Key
- * Table.
- *
- * <p>{@link Upsert} objects are immutable and can be shared between threads. Refinement methods,
- * like {@link #partialUpdate}, create new Upsert instances.
- *
- * @since 0.6
- */
-@PublicEvolving
-public interface Upsert {
-
- /**
- * Apply partial update columns and returns a new Upsert instance.
- *
- * <p>For {@link UpsertWriter#upsert(InternalRow)} operation, only the specified columns will be
- * updated and other columns will remain unchanged if the row exists or set to null if the row
- * doesn't exist.
- *
- * <p>For {@link UpsertWriter#delete(InternalRow)} operation, the entire row will not be
- * removed, but only the specified columns except primary key will be set to null. The entire
- * row will be removed when all columns except primary key are null after a {@link
- * UpsertWriter#delete(InternalRow)} operation.
- *
- * <p>Note: The specified columns must be a contains all columns of primary key, and all columns
- * except primary key should be nullable.
- *
- * @param targetColumns the column indexes to partial update
- */
- Upsert partialUpdate(@Nullable int[] targetColumns);
-
- /**
- * @see #partialUpdate(int[]) for more details.
- * @param targetColumnNames the column names to partial update
- */
- Upsert partialUpdate(String... targetColumnNames);
-
- /**
- * Create a new {@link UpsertWriter} with the optional {@link #partialUpdate(String...)}
- * information to upsert and delete data to a Primary Key Table.
- */
- UpsertWriter createWriter();
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/UpsertResult.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/UpsertResult.java
deleted file mode 100644
index bacb7bbb8..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/UpsertResult.java
+++ /dev/null
@@ -1,32 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
-
-/**
- * The result of upserting a record ({@link UpsertWriter#upsert(InternalRow)}).
- *
- * @since 0.6
- */
-@PublicEvolving
-public class UpsertResult {
- // currently, it's an empty class, it will be a compatible evolution if it extends
- // to have offset, timestamp, etc. in the future
-}
diff --git a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/UpsertWrite.java b/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/UpsertWrite.java
deleted file mode 100644
index 9e4078ed7..000000000
--- a/fluss-client/src/main/java/com/alibaba/fluss/client/table/writer/UpsertWrite.java
+++ /dev/null
@@ -1,75 +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.
- */
-
-package com.alibaba.fluss.client.table.writer;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
-
-import javax.annotation.Nullable;
-
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-
-/**
- * Used to describe the operation to write data by {@link UpsertWriter} to a table.
- *
- * @since 0.2
- */
-@PublicEvolving
-public class UpsertWrite {
-
- private final @Nullable int[] targetColumns;
-
- public UpsertWrite() {
- this(null);
- }
-
- private UpsertWrite(@Nullable int[] targetColumns) {
- this.targetColumns = targetColumns;
... 415597 lines suppressed ...
(fluss) 04/12: WIP
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit 2ed02495475b7bab97da44d314ca70b922669f0a
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 13:55:20 2025 +0800
WIP
---
.../org/apache/fluss/client/admin/FlussAdmin.java | 132 ++++++++--------
.../apache/fluss/client/lookup/LookupSender.java | 39 +++--
.../fluss/client/lookup/PrefixKeyLookuper.java | 32 ++--
.../fluss/client/lookup/PrimaryKeyLookuper.java | 34 ++---
.../fluss/client/metadata/MetadataUpdater.java | 51 ++++---
.../table/scanner/batch/LimitBatchScanner.java | 50 +++----
.../fluss/client/table/scanner/log/LogFetcher.java | 75 +++++-----
.../client/table/scanner/log/LogScannerImpl.java | 29 ++--
.../fluss/client/write/RecordAccumulator.java | 51 ++++---
.../java/org/apache/fluss/client/write/Sender.java | 59 ++++----
.../security/acl/FlussAuthorizationITCase.java | 103 +++++++------
.../fluss/client/write/ArrowLogWriteBatchTest.java | 45 +++---
.../com/alibaba/fluss/lake/source/LakeSource.java | 8 +-
.../com/alibaba/fluss/lake/source/LakeSplit.java | 4 +-
.../com/alibaba/fluss/lake/source/Planner.java | 4 +-
.../alibaba/fluss/lake/source/RecordReader.java | 8 +-
.../fluss/lake/source/SortedRecordReader.java | 6 +-
.../main/java/com/alibaba/fluss/predicate/And.java | 4 +-
.../com/alibaba/fluss/predicate/CompareUtils.java | 4 +-
.../alibaba/fluss/predicate/CompoundPredicate.java | 4 +-
.../java/com/alibaba/fluss/predicate/Contains.java | 4 +-
.../java/com/alibaba/fluss/predicate/EndsWith.java | 4 +-
.../java/com/alibaba/fluss/predicate/Equal.java | 6 +-
.../java/com/alibaba/fluss/predicate/FieldRef.java | 4 +-
.../alibaba/fluss/predicate/FunctionVisitor.java | 2 +-
.../alibaba/fluss/predicate/GreaterOrEqual.java | 6 +-
.../com/alibaba/fluss/predicate/GreaterThan.java | 6 +-
.../main/java/com/alibaba/fluss/predicate/In.java | 6 +-
.../com/alibaba/fluss/predicate/IsNotNull.java | 4 +-
.../java/com/alibaba/fluss/predicate/IsNull.java | 4 +-
.../com/alibaba/fluss/predicate/LeafFunction.java | 4 +-
.../com/alibaba/fluss/predicate/LeafPredicate.java | 12 +-
.../alibaba/fluss/predicate/LeafUnaryFunction.java | 4 +-
.../com/alibaba/fluss/predicate/LessOrEqual.java | 6 +-
.../java/com/alibaba/fluss/predicate/LessThan.java | 6 +-
.../java/com/alibaba/fluss/predicate/NotEqual.java | 6 +-
.../java/com/alibaba/fluss/predicate/NotIn.java | 6 +-
.../predicate/NullFalseLeafBinaryFunction.java | 4 +-
.../main/java/com/alibaba/fluss/predicate/Or.java | 4 +-
.../fluss/predicate/PartitionPredicateVisitor.java | 2 +-
.../com/alibaba/fluss/predicate/Predicate.java | 6 +-
.../alibaba/fluss/predicate/PredicateBuilder.java | 26 ++--
.../alibaba/fluss/predicate/PredicateVisitor.java | 4 +-
.../com/alibaba/fluss/predicate/StartsWith.java | 4 +-
.../fluss/predicate/UnsupportedExpression.java | 2 +-
.../row/encode/iceberg/IcebergBinaryRowWriter.java | 16 +-
.../row/encode/iceberg/IcebergKeyEncoder.java | 12 +-
.../fluss/bucketing/IcebergBucketingFunction.java | 2 +-
.../fluss/classloading/ComponentClassLoader.java | 7 +-
.../fluss/compression/ArrowCompressionFactory.java | 5 +-
.../fluss/compression/ArrowCompressionInfo.java | 7 +-
.../compression/Lz4ArrowCompressionCodec.java | 7 +-
.../compression/ZstdArrowCompressionCodec.java | 2 +-
.../main/java/org/apache/fluss/fs/FileSystem.java | 27 ++--
.../fluss/fs/token/CredentialsJsonSerde.java | 9 +-
.../apache/fluss/lake/committer/BucketOffset.java | 2 +-
.../apache/fluss/lake/lakestorage/LakeStorage.java | 10 +-
.../lake/lakestorage/LakeStoragePluginSetUp.java | 5 +-
.../lake/lakestorage/PluginLakeStorageWrapper.java | 20 +--
.../fluss/metrics/reporter/ReporterSetup.java | 11 +-
.../apache/fluss/plugin/DefaultPluginManager.java | 7 +-
.../apache/fluss/record/BytesViewLogRecords.java | 13 +-
.../apache/fluss/record/DefaultLogRecordBatch.java | 29 ++--
.../org/apache/fluss/record/FileLogProjection.java | 37 +++--
.../org/apache/fluss/record/LogRecordBatch.java | 11 +-
.../apache/fluss/record/LogRecordReadContext.java | 25 ++--
.../apache/fluss/record/bytesview/BytesView.java | 5 +-
.../record/bytesview/FileRegionBytesView.java | 5 +-
.../record/bytesview/MemorySegmentBytesView.java | 5 +-
.../fluss/record/bytesview/MultiBytesView.java | 9 +-
.../fluss/record/send/ByteBufWritableOutput.java | 7 +-
.../fluss/record/send/SendWritableOutput.java | 11 +-
.../apache/fluss/record/send/WritableOutput.java | 7 +-
.../org/apache/fluss/row/arrow/ArrowReader.java | 15 +-
.../org/apache/fluss/row/arrow/ArrowWriter.java | 29 ++--
.../apache/fluss/row/arrow/ArrowWriterPool.java | 17 +--
.../row/arrow/vectors/ArrowBigIntColumnVector.java | 9 +-
.../row/arrow/vectors/ArrowBinaryColumnVector.java | 9 +-
.../arrow/vectors/ArrowBooleanColumnVector.java | 9 +-
.../row/arrow/vectors/ArrowDateColumnVector.java | 9 +-
.../arrow/vectors/ArrowDecimalColumnVector.java | 11 +-
.../row/arrow/vectors/ArrowDoubleColumnVector.java | 9 +-
.../row/arrow/vectors/ArrowFloatColumnVector.java | 9 +-
.../row/arrow/vectors/ArrowIntColumnVector.java | 9 +-
.../arrow/vectors/ArrowSmallIntColumnVector.java | 9 +-
.../row/arrow/vectors/ArrowTimeColumnVector.java | 11 +-
.../vectors/ArrowTimestampLtzColumnVector.java | 13 +-
.../vectors/ArrowTimestampNtzColumnVector.java | 13 +-
.../arrow/vectors/ArrowTinyIntColumnVector.java | 9 +-
.../arrow/vectors/ArrowVarBinaryColumnVector.java | 9 +-
.../arrow/vectors/ArrowVarCharColumnVector.java | 9 +-
.../fluss/row/arrow/writers/ArrowBigIntWriter.java | 7 +-
.../fluss/row/arrow/writers/ArrowBinaryWriter.java | 7 +-
.../row/arrow/writers/ArrowBooleanWriter.java | 7 +-
.../fluss/row/arrow/writers/ArrowDateWriter.java | 7 +-
.../row/arrow/writers/ArrowDecimalWriter.java | 9 +-
.../fluss/row/arrow/writers/ArrowDoubleWriter.java | 7 +-
.../fluss/row/arrow/writers/ArrowFieldWriter.java | 7 +-
.../fluss/row/arrow/writers/ArrowFloatWriter.java | 7 +-
.../fluss/row/arrow/writers/ArrowIntWriter.java | 7 +-
.../row/arrow/writers/ArrowSmallIntWriter.java | 7 +-
.../fluss/row/arrow/writers/ArrowTimeWriter.java | 9 +-
.../row/arrow/writers/ArrowTimestampLtzWriter.java | 11 +-
.../row/arrow/writers/ArrowTimestampNtzWriter.java | 11 +-
.../row/arrow/writers/ArrowTinyIntWriter.java | 7 +-
.../row/arrow/writers/ArrowVarBinaryWriter.java | 7 +-
.../row/arrow/writers/ArrowVarCharWriter.java | 9 +-
.../org/apache/fluss/row/encode/KeyEncoder.java | 12 +-
.../org/apache/fluss/rpc/messages/ApiMessage.java | 7 +-
.../security/auth/sasl/jaas/DefaultLogin.java | 3 +-
.../java/org/apache/fluss/utils/ArrowUtils.java | 121 ++++++++-------
.../org/apache/fluss/utils/BinaryStringUtils.java | 8 +-
.../java/org/apache/fluss/utils/DateTimeUtils.java | 6 +-
.../main/java/org/apache/fluss/utils/NetUtils.java | 13 +-
.../fluss/utils/json/BucketOffsetJsonSerde.java | 5 +-
.../apache/fluss/utils/json/ColumnJsonSerde.java | 9 +-
.../apache/fluss/utils/json/DataTypeJsonSerde.java | 31 ++--
.../utils/json/DatabaseDescriptorJsonSerde.java | 5 +-
.../apache/fluss/utils/json/JsonSerdeUtils.java | 5 +-
.../apache/fluss/utils/json/SchemaJsonSerde.java | 7 +-
.../fluss/utils/json/TableDescriptorJsonSerde.java | 9 +-
.../fluss/utils/json/TablePartitionJsonSerde.java | 7 +-
.../bucketing/IcebergBucketingFunctionTest.java | 21 ++-
.../fluss/predicate/PredicateBuilderTest.java | 9 +-
.../com/alibaba/fluss/predicate/PredicateTest.java | 18 +--
.../encode/iceberg/IcebergBinaryRowWriterTest.java | 7 +-
.../row/encode/iceberg/IcebergKeyEncoderTest.java | 19 ++-
.../java/org/apache/fluss/cluster/ClusterTest.java | 29 ++--
.../compression/ArrowCompressionCodecTest.java | 2 +-
.../fluss/lake/lakestorage/LakeStorageTest.java | 19 ++-
.../fluss/plugin/DefaultPluginManagerTest.java | 7 +-
.../apache/fluss/record/FileLogRecordsTest.java | 17 +--
.../record/MemoryLogRecordsArrowBuilderTest.java | 43 +++---
.../fluss/record/send/SendWritableOutputTest.java | 19 ++-
.../fluss/row/arrow/ArrowReaderWriterTest.java | 50 +++----
.../fluss/row/arrow/ArrowWriterPoolTest.java | 8 +-
.../security/auth/AuthenticationFactoryTest.java | 19 ++-
.../org/apache/fluss/testutils/ByteBufChannel.java | 5 +-
.../org/apache/fluss/testutils/DataTestUtils.java | 121 ++++++++-------
.../org/apache/fluss/utils/ArrowUtilsTest.java | 13 +-
.../utils/ParentResourceBlockingClassLoader.java | 4 +-
.../apache/fluss/utils/ProtoCodecUtilsTest.java | 4 +-
.../utils/json/BucketOffsetJsonSerdeTest.java | 4 +-
.../apache/fluss/utils/json/JsonSerdeTestBase.java | 2 +-
.../services/com.alibaba.fluss.fs.FileSystemPlugin | 2 +-
fluss-dist/pom.xml | 6 +-
fluss-filesystems/fluss-fs-gs/pom.xml | 2 +-
.../apache}/fluss/fs/gs/AuthServerHandler.java | 28 ++--
.../fluss/fs/gs/GSFileSystemBehaviorITCase.java | 0
.../apache}/fluss/fs/gs/MockAuthServer.java | 0
fluss-filesystems/fluss-fs-hadoop/pom.xml | 2 +-
fluss-filesystems/fluss-fs-obs/pom.xml | 16 +-
.../apache}/fluss/fs/obs/OBSFileSystem.java | 9 +-
.../apache}/fluss/fs/obs/OBSFileSystemPlugin.java | 17 +--
.../DynamicTemporaryOBSCredentialsProvider.java | 5 +-
.../fs/obs/token/OBSSecurityTokenProvider.java | 11 +-
.../fs/obs/token/OBSSecurityTokenReceiver.java | 38 +++--
...Plugin => org.apache.fluss.fs.FileSystemPlugin} | 2 +-
...rg.apache.fluss.fs.token.SecurityTokenReceiver} | 2 +-
.../fluss/fs/obs/OBSFileSystemBehaviorITCase.java | 11 +-
.../apache}/fluss/fs/obs/OBSTestCredentials.java | 2 +-
...redentialsProviderFileSystemBehaviorITCase.java | 13 +-
.../OBSWithTokenFileSystemBehaviorBaseITCase.java | 8 +-
.../obs/OBSWithTokenFileSystemBehaviorITCase.java | 13 +-
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-filesystems/fluss-fs-oss/pom.xml | 4 +-
fluss-filesystems/fluss-fs-s3/pom.xml | 2 +-
.../services/org.apache.fluss.fs.FileSystemPlugin | 4 +-
...org.apache.fluss.fs.token.SecurityTokenReceiver | 4 +-
.../fluss/flink/adapter/CatalogTableAdapter.java | 2 +-
.../adapter/SingleThreadFetcherManagerAdapter.java | 2 +-
...ngleThreadMultiplexSourceReaderBaseAdapter.java | 2 +-
.../fluss/flink/adapter/CatalogTableAdapter.java | 2 +-
fluss-flink/fluss-flink-2.1/pom.xml | 22 +--
.../org.apache.flink.table.factories.Factory | 14 +-
.../fluss/flink/catalog/Flink21CatalogITCase.java | 2 +-
.../fluss/flink/metrics/Flink21MetricsITCase.java | 2 +-
.../flink/procedure/Flink21ProcedureITCase.java | 2 +-
.../security/acl/Flink21AuthorizationITCase.java | 2 +-
.../fluss/flink/sink/Flink21TableSinkITCase.java | 2 +-
.../source/Flink21TableSourceBatchITCase.java | 2 +-
.../source/Flink21TableSourceFailOverITCase.java | 2 +-
.../flink/source/Flink21TableSourceITCase.java | 2 +-
.../fluss/flink/adapter/CatalogTableAdapter.java | 2 +-
.../adapter/SingleThreadFetcherManagerAdapter.java | 2 +-
...ngleThreadMultiplexSourceReaderBaseAdapter.java | 2 +-
.../com/alibaba/fluss/flink/lake/LakeCatalog.java | 6 -
.../fluss/flink/lake/LakeRecordRecordEmitter.java | 19 +--
.../fluss/flink/lake/LakeSplitGenerator.java | 32 +---
.../fluss/flink/lake/LakeSplitReaderGenerator.java | 20 +--
.../fluss/flink/lake/LakeSplitSerializer.java | 21 ++-
.../flink/lake/LakeSplitStateInitializer.java | 20 +--
.../alibaba/fluss/flink/lake/LakeTableFactory.java | 6 -
.../fluss/flink/lake/reader/KeyValueRow.java | 6 +-
.../reader/LakeSnapshotAndLogSplitScanner.java | 34 ++---
.../flink/lake/reader/LakeSnapshotScanner.java | 18 +--
.../fluss/flink/lake/reader/SortMergeReader.java | 14 +-
.../lake/split/LakeSnapshotAndFlussLogSplit.java | 8 +-
.../fluss/flink/lake/split/LakeSnapshotSplit.java | 8 +-
.../state/LakeSnapshotAndFlussLogSplitState.java | 8 +-
.../flink/lake/state/LakeSnapshotSplitState.java | 11 +-
.../apache/fluss/flink/catalog/FlinkCatalog.java | 59 ++++----
.../fluss/flink/catalog/FlinkTableFactory.java | 35 +++--
.../org/apache/fluss/flink/source/FlinkSource.java | 41 +++--
.../fluss/flink/source/FlinkTableSource.java | 49 +++---
.../JsonStringDeserializationSchema.java | 13 +-
.../flink/source/emitter/FlinkRecordEmitter.java | 17 +--
.../source/enumerator/FlinkSourceEnumerator.java | 61 ++++----
.../flink/source/reader/FlinkSourceReader.java | 37 +++--
.../source/reader/FlinkSourceSplitReader.java | 53 ++++---
.../reader/fetcher/FlinkSourceFetcherManager.java | 13 +-
.../flink/source/split/SourceSplitSerializer.java | 13 +-
.../tiering/committer/FlussTableLakeSnapshot.java | 6 +-
.../committer/FlussTableLakeSnapshotCommitter.java | 34 ++---
.../tiering/committer/TieringCommitOperator.java | 49 +++---
.../fluss/flink/tiering/source/TieringSource.java | 19 ++-
.../apache/fluss/flink/utils/FlinkConversions.java | 43 +++---
.../flink/utils/FlussRowToJsonConverters.java | 33 ++--
.../apache/fluss/flink/utils/LakeSourceUtils.java | 20 +--
.../fluss/flink/lake/LakeSplitSerializerTest.java | 19 ++-
.../flink/lake/reader/SortMergeReaderTest.java | 29 ++--
.../security/acl/FlinkAuthorizationITCase.java | 53 ++++---
.../fluss/flink/source/FlinkTableSourceITCase.java | 45 +++---
.../FlussTableLakeSnapshotCommitterTest.java | 21 ++-
.../committer/TieringCommitOperatorTest.java | 31 ++--
.../fluss/jmh/ArrowReadableChannelBenchmark.java | 29 +---
.../fluss/jmh/ArrowWritableChannelBenchmark.java | 29 +---
.../com/alibaba/fluss/jmh/LogScannerBenchmark.java | 7 -
fluss-kafka/pom.xml | 8 +-
.../fluss/kafka/KafkaChannelInitializer.java | 6 +-
.../apache/fluss/kafka/KafkaCommandDecoder.java | 6 +-
.../apache/fluss/kafka/KafkaProtocolPlugin.java | 16 +-
.../java/org/apache/fluss/kafka/KafkaRequest.java | 6 +-
.../fluss/kafka/KafkaRequestHandlerTest.java | 4 +-
fluss-lake/fluss-lake-iceberg/pom.xml | 18 +--
.../iceberg/FlussDataTypeToIcebergDataType.java | 45 +++---
.../fluss/lake/iceberg/IcebergLakeCatalog.java | 50 +++----
.../fluss/lake/iceberg/IcebergLakeStorage.java | 16 +-
.../lake/iceberg/IcebergLakeStoragePlugin.java | 8 +-
.../fluss/lake/iceberg/conf/HadoopConfSerde.java | 2 +-
.../fluss/lake/iceberg/conf/HadoopUtils.java | 30 ++--
.../lake/iceberg/conf/IcebergConfiguration.java | 7 +-
.../tiering/FlussRecordAsIcebergRecord.java | 0
.../iceberg/tiering/IcebergCatalogProvider.java | 9 +-
.../lake/iceberg/tiering/IcebergCommittable.java | 2 +-
.../tiering/IcebergCommittableSerializer.java | 6 +-
.../lake/iceberg/tiering/IcebergLakeCommitter.java | 21 ++-
.../iceberg/tiering/IcebergLakeTieringFactory.java | 18 +--
.../lake/iceberg/tiering/IcebergLakeWriter.java | 19 ++-
.../lake/iceberg/tiering/IcebergWriteResult.java | 2 +-
.../tiering/IcebergWriteResultSerializer.java | 7 +-
.../fluss/lake/iceberg/tiering/RecordWriter.java | 9 +-
.../tiering/writer/AppendOnlyTaskWriter.java | 9 +-
.../iceberg/tiering/writer/DeltaTaskWriter.java | 9 +-
.../writer/GenericRecordAppendOnlyWriter.java | 7 +-
.../tiering/writer/GenericRecordDeltaWriter.java | 7 +-
.../lake/iceberg/utils/IcebergConversions.java | 7 +-
...libaba.fluss.lake.lakestorage.LakeStoragePlugin | 19 ---
...pache.fluss.lake.lakestorage.LakeStoragePlugin} | 2 +-
.../fluss/lake/iceberg/IcebergLakeCatalogTest.java | 19 ++-
.../iceberg/conf/IcebergConfigurationTest.java | 2 +-
.../testutils/FlinkIcebergTieringTestBase.java | 0
.../lake/iceberg/tiering/IcebergTieringITCase.java | 0
.../lake/iceberg/tiering/IcebergTieringTest.java | 77 +++++-----
.../lake/iceberg/utils/IcebergConversionsTest.java | 11 +-
.../org.junit.jupiter.api.extension.Extension | 2 +-
fluss-lake/fluss-lake-lance/pom.xml | 18 +--
.../com/alibaba/fluss/lake/lance/LanceConfig.java | 2 +-
.../fluss/lake/lance/LanceLakeStoragePlugin.java | 8 +-
.../fluss/lake/lance/tiering/LanceCommittable.java | 2 +-
.../fluss/lake/lance/tiering/LanceWriteResult.java | 6 -
...libaba.fluss.lake.lakestorage.LakeStoragePlugin | 2 +-
.../org.junit.jupiter.api.extension.Extension | 2 +-
.../lake/paimon/source/FlussRowAsPaimonRow.java | 17 +--
.../fluss/lake/paimon/source/PaimonLakeSource.java | 22 +--
.../lake/paimon/source/PaimonRecordReader.java | 22 +--
.../paimon/source/PaimonSortedRecordReader.java | 11 +-
.../fluss/lake/paimon/source/PaimonSplit.java | 4 +-
.../lake/paimon/source/PaimonSplitPlanner.java | 10 +-
.../lake/paimon/source/PaimonSplitSerializer.java | 4 +-
.../fluss/lake/paimon/PaimonLakeStorage.java | 24 +--
.../paimon/tiering/FlussRecordAsPaimonRow.java | 10 +-
.../lake/paimon/tiering/PaimonLakeCommitter.java | 20 +--
.../utils/FlussToPaimonPredicateConverter.java | 27 ++--
.../fluss/lake/paimon/utils/PaimonConversions.java | 14 +-
.../lake/paimon/utils/PaimonRowAsFlussRow.java | 2 +-
.../paimon/source/FlussRowAsPaimonRowTest.java | 26 ++--
.../lake/paimon/source/PaimonLakeSourceTest.java | 41 +++--
.../lake/paimon/source/PaimonRecordReaderTest.java | 61 ++++----
.../source/PaimonSortedRecordReaderTest.java | 37 +++--
.../lake/paimon/source/PaimonSourceTestBase.java | 19 ++-
.../lake/paimon/source/PaimonSplitPlannerTest.java | 6 +-
.../paimon/source/PaimonSplitSerializerTest.java | 6 +-
.../fluss/lake/paimon/source/PaimonSplitTest.java | 6 +-
.../utils/FlussToPaimonPredicateConverterTest.java | 14 +-
.../testutils/FlinkPaimonTieringTestBase.java | 58 +++----
.../lake/paimon/tiering/PaimonTieringITCase.java | 28 ++--
.../lake/paimon/tiering/PaimonTieringTest.java | 57 ++++---
fluss-lake/pom.xml | 2 +-
.../metrics/prometheus/PrometheusReporterTest.java | 23 ++-
.../generator/generator/ProtoCodeGenerator.java | 2 +-
.../protogen/generator/generator/ProtoGenUtil.java | 23 ++-
.../generator/generator/ProtobufNumberField.java | 2 +-
.../fluss/protogen/benchmark/ProtoBenchmark.java | 9 +-
.../fluss/protogen/benchmark/SimpleBenchmark.java | 9 +-
.../benchmark/StringEncodingBenchmark.java | 2 +-
.../fluss/protogen/tests/AddressBookTest.java | 2 +-
.../org/apache/fluss/protogen/tests/BytesTest.java | 13 +-
.../org/apache/fluss/protogen/tests/EnumsTest.java | 2 +-
.../apache/fluss/protogen/tests/MessagesTest.java | 7 +-
.../apache/fluss/protogen/tests/NumbersTest.java | 2 +-
.../fluss/protogen/tests/RepeatedNumbersTest.java | 2 +-
.../apache/fluss/protogen/tests/RequiredTest.java | 2 +-
.../apache/fluss/protogen/tests/StringsTest.java | 2 +-
.../main/java/org/apache/fluss/rpc/RpcGateway.java | 21 ++-
.../org/apache/fluss/rpc/netty/NettyLogger.java | 2 +-
.../org/apache/fluss/rpc/netty/NettyMetrics.java | 11 +-
.../rpc/netty/client/ClientChannelInitializer.java | 5 +-
.../apache/fluss/rpc/netty/client/NettyClient.java | 35 +++--
.../fluss/rpc/netty/client/NettyClientHandler.java | 23 ++-
.../fluss/rpc/netty/client/ServerConnection.java | 45 +++---
.../rpc/netty/server/FlussProtocolPlugin.java | 21 ++-
.../fluss/rpc/netty/server/FlussRequest.java | 13 +-
.../apache/fluss/rpc/netty/server/NettyServer.java | 35 +++--
.../fluss/rpc/netty/server/NettyServerHandler.java | 45 +++---
.../rpc/netty/server/ServerChannelInitializer.java | 11 +-
.../org/apache/fluss/rpc/protocol/ApiManager.java | 17 +--
.../org/apache/fluss/rpc/protocol/ApiMethod.java | 9 +-
.../apache/fluss/rpc/protocol/MessageCodec.java | 11 +-
.../fluss/rpc/protocol/NetworkProtocolPlugin.java | 13 +-
.../fluss/rpc/util/CommonRpcMessageUtils.java | 59 ++++----
.../rpc/netty/server/NettyServerHandlerTest.java | 37 +++--
.../fluss/rpc/protocol/MessageCodecTest.java | 37 +++--
.../fluss/rpc/protocol/RequestChannelTest.java | 15 +-
.../java/org/apache/fluss/server/ServerBase.java | 41 +++--
.../fluss/server/authorizer/DefaultAuthorizer.java | 51 ++++---
.../ZkNodeChangeNotificationWatcher.java | 7 +-
.../coordinator/CoordinatorEventProcessor.java | 151 ++++++++++---------
.../server/coordinator/CoordinatorServer.java | 71 +++++----
.../fluss/server/coordinator/MetadataManager.java | 69 +++++----
.../coordinator/event/CoordinatorEventManager.java | 29 ++--
.../event/watcher/TableChangeWatcher.java | 41 +++--
.../event/watcher/TabletServerChangeWatcher.java | 23 ++-
.../statemachine/TableBucketStateMachine.java | 21 ++-
.../java/org/apache/fluss/server/kv/KvManager.java | 53 ++++---
.../java/org/apache/fluss/server/kv/KvTablet.java | 101 +++++++------
.../kv/snapshot/CompletedSnapshotJsonSerde.java | 13 +-
.../org/apache/fluss/server/log/AbstractIndex.java | 17 +--
.../org/apache/fluss/server/log/LogSegment.java | 43 +++---
.../org/apache/fluss/server/log/OffsetIndex.java | 13 +-
.../org/apache/fluss/server/log/TimeIndex.java | 11 +-
.../apache/fluss/server/log/WriterAppendInfo.java | 2 +-
.../fluss/server/log/WriterStateManager.java | 23 ++-
.../log/remote/RemoteLogManifestJsonSerde.java | 15 +-
.../replica/fetcher/ReplicaFetcherThread.java | 61 ++++----
.../apache/fluss/server/tablet/TabletServer.java | 77 +++++-----
.../fluss/server/zk/ZkSequenceIDCounter.java | 5 +-
.../apache/fluss/server/zk/ZooKeeperClient.java | 105 +++++++------
.../org/apache/fluss/server/zk/ZooKeeperUtils.java | 15 +-
.../server/zk/data/BucketSnapshotJsonSerde.java | 9 +-
.../zk/data/CoordinatorAddressJsonSerde.java | 11 +-
.../zk/data/DatabaseRegistrationJsonSerde.java | 7 +-
.../server/zk/data/LakeTableSnapshotJsonSerde.java | 9 +-
.../server/zk/data/LeaderAndIsrJsonSerde.java | 9 +-
.../zk/data/PartitionAssignmentJsonSerde.java | 9 +-
.../zk/data/RemoteLogManifestHandleJsonSerde.java | 11 +-
.../fluss/server/zk/data/ResourceAclJsonSerde.java | 15 +-
.../server/zk/data/TableAssignmentJsonSerde.java | 9 +-
.../server/zk/data/TableRegistrationJsonSerde.java | 11 +-
.../zk/data/TabletServerRegistrationJsonSerde.java | 13 +-
.../org/apache/fluss/server/ServerTestBase.java | 29 ++--
.../coordinator/CoordinatorEventProcessorTest.java | 133 ++++++++---------
.../statemachine/TableBucketStateMachineTest.java | 67 ++++-----
.../org/apache/fluss/server/kv/KvTabletTest.java | 97 ++++++------
.../fluss/server/kv/wal/ArrowWalBuilderTest.java | 42 +++---
.../lakehouse/TestingPaimonStoragePlugin.java | 22 +--
.../apache/fluss/server/log/AbstractIndexTest.java | 2 +-
.../fluss/server/log/WriterStateManagerTest.java | 23 ++-
.../log/remote/DefaultRemoteLogStorageTest.java | 21 ++-
.../server/replica/KvReplicaRestoreITCase.java | 57 ++++---
.../server/testutils/FlussClusterExtension.java | 117 +++++++--------
.../fluss/server/zk/ZooKeeperClientTest.java | 51 ++++---
.../apache/fluss/server/zk/ZooKeeperExtension.java | 11 +-
.../zk/data/CoordinatorAddressJsonSerdeTest.java | 9 +-
.../zk/data/DatabaseRegistrationJsonSerdeTest.java | 5 +-
.../zk/data/TableRegistrationJsonSerdeTest.java | 13 +-
.../TabletServerRegistrationJsonSerdeTest.java | 7 +-
fluss-test-coverage/pom.xml | 166 ++++++++++-----------
website/docs/maintenance/configuration.md | 2 +-
website/docs/security/authentication.md | 6 +-
website/docs/security/authorization.md | 2 +-
391 files changed, 3435 insertions(+), 3836 deletions(-)
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/admin/FlussAdmin.java b/fluss-client/src/main/java/org/apache/fluss/client/admin/FlussAdmin.java
index f47802eec..0f9c007aa 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/admin/FlussAdmin.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/admin/FlussAdmin.java
@@ -15,62 +15,62 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.admin;
-
-import com.alibaba.fluss.client.metadata.KvSnapshotMetadata;
-import com.alibaba.fluss.client.metadata.KvSnapshots;
-import com.alibaba.fluss.client.metadata.LakeSnapshot;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.client.utils.ClientRpcMessageUtils;
-import com.alibaba.fluss.cluster.Cluster;
-import com.alibaba.fluss.cluster.ServerNode;
-import com.alibaba.fluss.exception.LeaderNotAvailableException;
-import com.alibaba.fluss.metadata.DatabaseDescriptor;
-import com.alibaba.fluss.metadata.DatabaseInfo;
-import com.alibaba.fluss.metadata.PartitionInfo;
-import com.alibaba.fluss.metadata.PartitionSpec;
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.SchemaInfo;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.rpc.GatewayClientProxy;
-import com.alibaba.fluss.rpc.RpcClient;
-import com.alibaba.fluss.rpc.gateway.AdminGateway;
-import com.alibaba.fluss.rpc.gateway.AdminReadOnlyGateway;
-import com.alibaba.fluss.rpc.gateway.TabletServerGateway;
-import com.alibaba.fluss.rpc.messages.CreateAclsRequest;
-import com.alibaba.fluss.rpc.messages.CreateDatabaseRequest;
-import com.alibaba.fluss.rpc.messages.CreateTableRequest;
-import com.alibaba.fluss.rpc.messages.DatabaseExistsRequest;
-import com.alibaba.fluss.rpc.messages.DatabaseExistsResponse;
-import com.alibaba.fluss.rpc.messages.DropAclsRequest;
-import com.alibaba.fluss.rpc.messages.DropDatabaseRequest;
-import com.alibaba.fluss.rpc.messages.DropTableRequest;
-import com.alibaba.fluss.rpc.messages.GetDatabaseInfoRequest;
-import com.alibaba.fluss.rpc.messages.GetKvSnapshotMetadataRequest;
-import com.alibaba.fluss.rpc.messages.GetLatestKvSnapshotsRequest;
-import com.alibaba.fluss.rpc.messages.GetLatestLakeSnapshotRequest;
-import com.alibaba.fluss.rpc.messages.GetTableInfoRequest;
-import com.alibaba.fluss.rpc.messages.GetTableSchemaRequest;
-import com.alibaba.fluss.rpc.messages.ListAclsRequest;
-import com.alibaba.fluss.rpc.messages.ListDatabasesRequest;
-import com.alibaba.fluss.rpc.messages.ListDatabasesResponse;
-import com.alibaba.fluss.rpc.messages.ListOffsetsRequest;
-import com.alibaba.fluss.rpc.messages.ListPartitionInfosRequest;
-import com.alibaba.fluss.rpc.messages.ListTablesRequest;
-import com.alibaba.fluss.rpc.messages.ListTablesResponse;
-import com.alibaba.fluss.rpc.messages.PbListOffsetsRespForBucket;
-import com.alibaba.fluss.rpc.messages.PbPartitionSpec;
-import com.alibaba.fluss.rpc.messages.PbTablePath;
-import com.alibaba.fluss.rpc.messages.TableExistsRequest;
-import com.alibaba.fluss.rpc.messages.TableExistsResponse;
-import com.alibaba.fluss.rpc.protocol.ApiError;
-import com.alibaba.fluss.security.acl.AclBinding;
-import com.alibaba.fluss.security.acl.AclBindingFilter;
-import com.alibaba.fluss.utils.MapUtils;
+package org.apache.fluss.client.admin;
+
+import org.apache.fluss.client.metadata.KvSnapshotMetadata;
+import org.apache.fluss.client.metadata.KvSnapshots;
+import org.apache.fluss.client.metadata.LakeSnapshot;
+import org.apache.fluss.client.metadata.MetadataUpdater;
+import org.apache.fluss.client.utils.ClientRpcMessageUtils;
+import org.apache.fluss.cluster.Cluster;
+import org.apache.fluss.cluster.ServerNode;
+import org.apache.fluss.exception.LeaderNotAvailableException;
+import org.apache.fluss.metadata.DatabaseDescriptor;
+import org.apache.fluss.metadata.DatabaseInfo;
+import org.apache.fluss.metadata.PartitionInfo;
+import org.apache.fluss.metadata.PartitionSpec;
+import org.apache.fluss.metadata.PhysicalTablePath;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.SchemaInfo;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.rpc.GatewayClientProxy;
+import org.apache.fluss.rpc.RpcClient;
+import org.apache.fluss.rpc.gateway.AdminGateway;
+import org.apache.fluss.rpc.gateway.AdminReadOnlyGateway;
+import org.apache.fluss.rpc.gateway.TabletServerGateway;
+import org.apache.fluss.rpc.messages.CreateAclsRequest;
+import org.apache.fluss.rpc.messages.CreateDatabaseRequest;
+import org.apache.fluss.rpc.messages.CreateTableRequest;
+import org.apache.fluss.rpc.messages.DatabaseExistsRequest;
+import org.apache.fluss.rpc.messages.DatabaseExistsResponse;
+import org.apache.fluss.rpc.messages.DropAclsRequest;
+import org.apache.fluss.rpc.messages.DropDatabaseRequest;
+import org.apache.fluss.rpc.messages.DropTableRequest;
+import org.apache.fluss.rpc.messages.GetDatabaseInfoRequest;
+import org.apache.fluss.rpc.messages.GetKvSnapshotMetadataRequest;
+import org.apache.fluss.rpc.messages.GetLatestKvSnapshotsRequest;
+import org.apache.fluss.rpc.messages.GetLatestLakeSnapshotRequest;
+import org.apache.fluss.rpc.messages.GetTableInfoRequest;
+import org.apache.fluss.rpc.messages.GetTableSchemaRequest;
+import org.apache.fluss.rpc.messages.ListAclsRequest;
+import org.apache.fluss.rpc.messages.ListDatabasesRequest;
+import org.apache.fluss.rpc.messages.ListDatabasesResponse;
+import org.apache.fluss.rpc.messages.ListOffsetsRequest;
+import org.apache.fluss.rpc.messages.ListPartitionInfosRequest;
+import org.apache.fluss.rpc.messages.ListTablesRequest;
+import org.apache.fluss.rpc.messages.ListTablesResponse;
+import org.apache.fluss.rpc.messages.PbListOffsetsRespForBucket;
+import org.apache.fluss.rpc.messages.PbPartitionSpec;
+import org.apache.fluss.rpc.messages.PbTablePath;
+import org.apache.fluss.rpc.messages.TableExistsRequest;
+import org.apache.fluss.rpc.messages.TableExistsResponse;
+import org.apache.fluss.rpc.protocol.ApiError;
+import org.apache.fluss.security.acl.AclBinding;
+import org.apache.fluss.security.acl.AclBindingFilter;
+import org.apache.fluss.utils.MapUtils;
import javax.annotation.Nullable;
@@ -82,16 +82,16 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
-import static com.alibaba.fluss.client.utils.ClientRpcMessageUtils.makeCreatePartitionRequest;
-import static com.alibaba.fluss.client.utils.ClientRpcMessageUtils.makeDropPartitionRequest;
-import static com.alibaba.fluss.client.utils.ClientRpcMessageUtils.makeListOffsetsRequest;
-import static com.alibaba.fluss.client.utils.ClientRpcMessageUtils.makePbPartitionSpec;
-import static com.alibaba.fluss.client.utils.MetadataUtils.sendMetadataRequestAndRebuildCluster;
-import static com.alibaba.fluss.rpc.util.CommonRpcMessageUtils.toAclBindings;
-import static com.alibaba.fluss.rpc.util.CommonRpcMessageUtils.toPbAclBindingFilters;
-import static com.alibaba.fluss.rpc.util.CommonRpcMessageUtils.toPbAclFilter;
-import static com.alibaba.fluss.rpc.util.CommonRpcMessageUtils.toPbAclInfos;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.client.utils.ClientRpcMessageUtils.makeCreatePartitionRequest;
+import static org.apache.fluss.client.utils.ClientRpcMessageUtils.makeDropPartitionRequest;
+import static org.apache.fluss.client.utils.ClientRpcMessageUtils.makeListOffsetsRequest;
+import static org.apache.fluss.client.utils.ClientRpcMessageUtils.makePbPartitionSpec;
+import static org.apache.fluss.client.utils.MetadataUtils.sendMetadataRequestAndRebuildCluster;
+import static org.apache.fluss.rpc.util.CommonRpcMessageUtils.toAclBindings;
+import static org.apache.fluss.rpc.util.CommonRpcMessageUtils.toPbAclBindingFilters;
+import static org.apache.fluss.rpc.util.CommonRpcMessageUtils.toPbAclFilter;
+import static org.apache.fluss.rpc.util.CommonRpcMessageUtils.toPbAclInfos;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/**
* The default implementation of {@link Admin}.
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/lookup/LookupSender.java b/fluss-client/src/main/java/org/apache/fluss/client/lookup/LookupSender.java
index db150e2e2..41f6888a3 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/lookup/LookupSender.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/lookup/LookupSender.java
@@ -15,24 +15,23 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.exception.LeaderNotAvailableException;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.rpc.gateway.TabletServerGateway;
-import com.alibaba.fluss.rpc.messages.LookupRequest;
-import com.alibaba.fluss.rpc.messages.LookupResponse;
-import com.alibaba.fluss.rpc.messages.PbLookupRespForBucket;
-import com.alibaba.fluss.rpc.messages.PbPrefixLookupRespForBucket;
-import com.alibaba.fluss.rpc.messages.PbValueList;
-import com.alibaba.fluss.rpc.messages.PrefixLookupRequest;
-import com.alibaba.fluss.rpc.messages.PrefixLookupResponse;
-import com.alibaba.fluss.rpc.protocol.ApiError;
-import com.alibaba.fluss.utils.types.Tuple2;
-
+package org.apache.fluss.client.lookup;
+
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.client.metadata.MetadataUpdater;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.exception.LeaderNotAvailableException;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.rpc.gateway.TabletServerGateway;
+import org.apache.fluss.rpc.messages.LookupRequest;
+import org.apache.fluss.rpc.messages.LookupResponse;
+import org.apache.fluss.rpc.messages.PbLookupRespForBucket;
+import org.apache.fluss.rpc.messages.PbPrefixLookupRespForBucket;
+import org.apache.fluss.rpc.messages.PbValueList;
+import org.apache.fluss.rpc.messages.PrefixLookupRequest;
+import org.apache.fluss.rpc.messages.PrefixLookupResponse;
+import org.apache.fluss.rpc.protocol.ApiError;
+import org.apache.fluss.utils.types.Tuple2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,8 +42,8 @@ import java.util.Map;
import java.util.concurrent.Semaphore;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.client.utils.ClientRpcMessageUtils.makeLookupRequest;
-import static com.alibaba.fluss.client.utils.ClientRpcMessageUtils.makePrefixLookupRequest;
+import static org.apache.fluss.client.utils.ClientRpcMessageUtils.makeLookupRequest;
+import static org.apache.fluss.client.utils.ClientRpcMessageUtils.makePrefixLookupRequest;
/**
* This background thread pool lookup operations from {@link #lookupQueue}, and send lookup requests
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/lookup/PrefixKeyLookuper.java b/fluss-client/src/main/java/org/apache/fluss/client/lookup/PrefixKeyLookuper.java
index 59cb25d39..258d9b1c2 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/lookup/PrefixKeyLookuper.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/lookup/PrefixKeyLookuper.java
@@ -15,21 +15,21 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.bucketing.BucketingFunction;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.client.table.getter.PartitionGetter;
-import com.alibaba.fluss.exception.PartitionNotExistException;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.decode.RowDecoder;
-import com.alibaba.fluss.row.encode.KeyEncoder;
-import com.alibaba.fluss.row.encode.ValueDecoder;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.client.lookup;
+
+import org.apache.fluss.bucketing.BucketingFunction;
+import org.apache.fluss.client.metadata.MetadataUpdater;
+import org.apache.fluss.client.table.getter.PartitionGetter;
+import org.apache.fluss.exception.PartitionNotExistException;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.decode.RowDecoder;
+import org.apache.fluss.row.encode.KeyEncoder;
+import org.apache.fluss.row.encode.ValueDecoder;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.RowType;
import javax.annotation.Nullable;
@@ -40,7 +40,7 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.CompletableFuture;
-import static com.alibaba.fluss.client.utils.ClientUtils.getPartitionId;
+import static org.apache.fluss.client.utils.ClientUtils.getPartitionId;
/**
* An implementation of {@link Lookuper} that lookups by prefix key. A prefix key is a prefix subset
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/lookup/PrimaryKeyLookuper.java b/fluss-client/src/main/java/org/apache/fluss/client/lookup/PrimaryKeyLookuper.java
index 2dfaf436b..2a6233e46 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/lookup/PrimaryKeyLookuper.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/lookup/PrimaryKeyLookuper.java
@@ -15,29 +15,29 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.lookup;
-
-import com.alibaba.fluss.bucketing.BucketingFunction;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.client.table.getter.PartitionGetter;
-import com.alibaba.fluss.exception.PartitionNotExistException;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.decode.RowDecoder;
-import com.alibaba.fluss.row.encode.KeyEncoder;
-import com.alibaba.fluss.row.encode.ValueDecoder;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.client.lookup;
+
+import org.apache.fluss.bucketing.BucketingFunction;
+import org.apache.fluss.client.metadata.MetadataUpdater;
+import org.apache.fluss.client.table.getter.PartitionGetter;
+import org.apache.fluss.exception.PartitionNotExistException;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.decode.RowDecoder;
+import org.apache.fluss.row.encode.KeyEncoder;
+import org.apache.fluss.row.encode.ValueDecoder;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.RowType;
import javax.annotation.Nullable;
import java.util.Collections;
import java.util.concurrent.CompletableFuture;
-import static com.alibaba.fluss.client.utils.ClientUtils.getPartitionId;
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
+import static org.apache.fluss.client.utils.ClientUtils.getPartitionId;
+import static org.apache.fluss.utils.Preconditions.checkArgument;
/** An implementation of {@link Lookuper} that lookups by primary key. */
class PrimaryKeyLookuper implements Lookuper {
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/metadata/MetadataUpdater.java b/fluss-client/src/main/java/org/apache/fluss/client/metadata/MetadataUpdater.java
index b7e07d09b..1332ce656 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/metadata/MetadataUpdater.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/metadata/MetadataUpdater.java
@@ -15,31 +15,30 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.metadata;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.client.utils.ClientUtils;
-import com.alibaba.fluss.cluster.BucketLocation;
-import com.alibaba.fluss.cluster.Cluster;
-import com.alibaba.fluss.cluster.ServerNode;
-import com.alibaba.fluss.cluster.ServerType;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.exception.PartitionNotExistException;
-import com.alibaba.fluss.exception.RetriableException;
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePartition;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.rpc.GatewayClientProxy;
-import com.alibaba.fluss.rpc.RpcClient;
-import com.alibaba.fluss.rpc.gateway.AdminReadOnlyGateway;
-import com.alibaba.fluss.rpc.gateway.CoordinatorGateway;
-import com.alibaba.fluss.rpc.gateway.TabletServerGateway;
-import com.alibaba.fluss.utils.ExceptionUtils;
-
+package org.apache.fluss.client.metadata;
+
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.client.utils.ClientUtils;
+import org.apache.fluss.cluster.BucketLocation;
+import org.apache.fluss.cluster.Cluster;
+import org.apache.fluss.cluster.ServerNode;
+import org.apache.fluss.cluster.ServerType;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.exception.PartitionNotExistException;
+import org.apache.fluss.exception.RetriableException;
+import org.apache.fluss.metadata.PhysicalTablePath;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePartition;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.rpc.GatewayClientProxy;
+import org.apache.fluss.rpc.RpcClient;
+import org.apache.fluss.rpc.gateway.AdminReadOnlyGateway;
+import org.apache.fluss.rpc.gateway.CoordinatorGateway;
+import org.apache.fluss.rpc.gateway.TabletServerGateway;
+import org.apache.fluss.utils.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -55,7 +54,7 @@ import java.util.Set;
import java.util.concurrent.TimeoutException;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.client.utils.MetadataUtils.sendMetadataRequestAndRebuildCluster;
+import static org.apache.fluss.client.utils.MetadataUtils.sendMetadataRequestAndRebuildCluster;
/** The updater to initialize and update client metadata. */
public class MetadataUpdater {
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/batch/LimitBatchScanner.java b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/batch/LimitBatchScanner.java
index cf4d5be98..4915ab918 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/batch/LimitBatchScanner.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/batch/LimitBatchScanner.java
@@ -15,31 +15,31 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.table.scanner.batch;
-
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.exception.LeaderNotAvailableException;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.record.DefaultValueRecordBatch;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.record.LogRecordBatch;
-import com.alibaba.fluss.record.LogRecordReadContext;
-import com.alibaba.fluss.record.LogRecords;
-import com.alibaba.fluss.record.MemoryLogRecords;
-import com.alibaba.fluss.record.ValueRecord;
-import com.alibaba.fluss.record.ValueRecordReadContext;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.ProjectedRow;
-import com.alibaba.fluss.row.decode.RowDecoder;
-import com.alibaba.fluss.row.encode.ValueDecoder;
-import com.alibaba.fluss.rpc.gateway.TabletServerGateway;
-import com.alibaba.fluss.rpc.messages.LimitScanRequest;
-import com.alibaba.fluss.rpc.messages.LimitScanResponse;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.CloseableIterator;
+package org.apache.fluss.client.table.scanner.batch;
+
+import org.apache.fluss.client.metadata.MetadataUpdater;
+import org.apache.fluss.exception.LeaderNotAvailableException;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.record.DefaultValueRecordBatch;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.record.LogRecordBatch;
+import org.apache.fluss.record.LogRecordReadContext;
+import org.apache.fluss.record.LogRecords;
+import org.apache.fluss.record.MemoryLogRecords;
+import org.apache.fluss.record.ValueRecord;
+import org.apache.fluss.record.ValueRecordReadContext;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.ProjectedRow;
+import org.apache.fluss.row.decode.RowDecoder;
+import org.apache.fluss.row.encode.ValueDecoder;
+import org.apache.fluss.rpc.gateway.TabletServerGateway;
+import org.apache.fluss.rpc.messages.LimitScanRequest;
+import org.apache.fluss.rpc.messages.LimitScanResponse;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.CloseableIterator;
import javax.annotation.Nullable;
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java
index a11a71ca6..93f8d3600 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java
@@ -15,42 +15,41 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.client.metrics.ScannerMetricGroup;
-import com.alibaba.fluss.client.table.scanner.RemoteFileDownloader;
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.cluster.BucketLocation;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.InvalidMetadataException;
-import com.alibaba.fluss.exception.LeaderNotAvailableException;
-import com.alibaba.fluss.fs.FsPath;
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePartition;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.record.LogRecordReadContext;
-import com.alibaba.fluss.record.LogRecords;
-import com.alibaba.fluss.record.MemoryLogRecords;
-import com.alibaba.fluss.remote.RemoteLogFetchInfo;
-import com.alibaba.fluss.remote.RemoteLogSegment;
-import com.alibaba.fluss.rpc.entity.FetchLogResultForBucket;
-import com.alibaba.fluss.rpc.gateway.TabletServerGateway;
-import com.alibaba.fluss.rpc.messages.FetchLogRequest;
-import com.alibaba.fluss.rpc.messages.FetchLogResponse;
-import com.alibaba.fluss.rpc.messages.PbFetchLogReqForBucket;
-import com.alibaba.fluss.rpc.messages.PbFetchLogReqForTable;
-import com.alibaba.fluss.rpc.messages.PbFetchLogRespForBucket;
-import com.alibaba.fluss.rpc.messages.PbFetchLogRespForTable;
-import com.alibaba.fluss.rpc.protocol.Errors;
-import com.alibaba.fluss.utils.IOUtils;
-import com.alibaba.fluss.utils.Projection;
-
+package org.apache.fluss.client.table.scanner.log;
+
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.client.metadata.MetadataUpdater;
+import org.apache.fluss.client.metrics.ScannerMetricGroup;
+import org.apache.fluss.client.table.scanner.RemoteFileDownloader;
+import org.apache.fluss.client.table.scanner.ScanRecord;
+import org.apache.fluss.cluster.BucketLocation;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.InvalidMetadataException;
+import org.apache.fluss.exception.LeaderNotAvailableException;
+import org.apache.fluss.fs.FsPath;
+import org.apache.fluss.metadata.PhysicalTablePath;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePartition;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.record.LogRecordReadContext;
+import org.apache.fluss.record.LogRecords;
+import org.apache.fluss.record.MemoryLogRecords;
+import org.apache.fluss.remote.RemoteLogFetchInfo;
+import org.apache.fluss.remote.RemoteLogSegment;
+import org.apache.fluss.rpc.entity.FetchLogResultForBucket;
+import org.apache.fluss.rpc.gateway.TabletServerGateway;
+import org.apache.fluss.rpc.messages.FetchLogRequest;
+import org.apache.fluss.rpc.messages.FetchLogResponse;
+import org.apache.fluss.rpc.messages.PbFetchLogReqForBucket;
+import org.apache.fluss.rpc.messages.PbFetchLogReqForTable;
+import org.apache.fluss.rpc.messages.PbFetchLogRespForBucket;
+import org.apache.fluss.rpc.messages.PbFetchLogRespForTable;
+import org.apache.fluss.rpc.protocol.Errors;
+import org.apache.fluss.utils.IOUtils;
+import org.apache.fluss.utils.Projection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -68,8 +67,8 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.rpc.util.CommonRpcMessageUtils.getFetchLogResultForBucket;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.rpc.util.CommonRpcMessageUtils.getFetchLogResultForBucket;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/* This file is based on source code of Apache Kafka Project (https://kafka.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogScannerImpl.java b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogScannerImpl.java
index b6ac89a32..8d600fa06 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogScannerImpl.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogScannerImpl.java
@@ -15,22 +15,21 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.client.metrics.ScannerMetricGroup;
-import com.alibaba.fluss.client.table.scanner.RemoteFileDownloader;
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.WakeupException;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.rpc.metrics.ClientMetricGroup;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.Projection;
+package org.apache.fluss.client.table.scanner.log;
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.client.metadata.MetadataUpdater;
+import org.apache.fluss.client.metrics.ScannerMetricGroup;
+import org.apache.fluss.client.table.scanner.RemoteFileDownloader;
+import org.apache.fluss.client.table.scanner.ScanRecord;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.WakeupException;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.rpc.metrics.ClientMetricGroup;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.Projection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java b/fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java
index e0146b11f..8d6bae159 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java
@@ -15,32 +15,31 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.write;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.client.metrics.WriterMetricGroup;
-import com.alibaba.fluss.cluster.BucketLocation;
-import com.alibaba.fluss.cluster.Cluster;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.memory.LazyMemorySegmentPool;
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.memory.PreAllocatedPagedOutputView;
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metrics.MetricNames;
-import com.alibaba.fluss.record.LogRecordBatch;
-import com.alibaba.fluss.row.arrow.ArrowWriter;
-import com.alibaba.fluss.row.arrow.ArrowWriterPool;
-import com.alibaba.fluss.utils.CopyOnWriteMap;
-import com.alibaba.fluss.utils.MathUtils;
-import com.alibaba.fluss.utils.clock.Clock;
-
+package org.apache.fluss.client.write;
+
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.client.metrics.WriterMetricGroup;
+import org.apache.fluss.cluster.BucketLocation;
+import org.apache.fluss.cluster.Cluster;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.memory.LazyMemorySegmentPool;
+import org.apache.fluss.memory.MemorySegment;
+import org.apache.fluss.memory.PreAllocatedPagedOutputView;
+import org.apache.fluss.metadata.PhysicalTablePath;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metrics.MetricNames;
+import org.apache.fluss.record.LogRecordBatch;
+import org.apache.fluss.row.arrow.ArrowWriter;
+import org.apache.fluss.row.arrow.ArrowWriterPool;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
+import org.apache.fluss.utils.CopyOnWriteMap;
+import org.apache.fluss.utils.MathUtils;
+import org.apache.fluss.utils.clock.Clock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -61,8 +60,8 @@ import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicInteger;
-import static com.alibaba.fluss.record.LogRecordBatch.NO_WRITER_ID;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.record.LogRecordBatch.NO_WRITER_ID;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/* This file is based on source code of Apache Kafka Project (https://kafka.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java b/fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java
index e37e86b2c..8213a5b05 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java
@@ -15,33 +15,32 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.write;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.client.metrics.WriterMetricGroup;
-import com.alibaba.fluss.client.write.RecordAccumulator.ReadyCheckResult;
-import com.alibaba.fluss.cluster.Cluster;
-import com.alibaba.fluss.exception.InvalidMetadataException;
-import com.alibaba.fluss.exception.LeaderNotAvailableException;
-import com.alibaba.fluss.exception.OutOfOrderSequenceException;
-import com.alibaba.fluss.exception.PartitionNotExistException;
-import com.alibaba.fluss.exception.RetriableException;
-import com.alibaba.fluss.exception.UnknownTableOrBucketException;
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.rpc.gateway.TabletServerGateway;
-import com.alibaba.fluss.rpc.messages.PbProduceLogRespForBucket;
-import com.alibaba.fluss.rpc.messages.PbPutKvRespForBucket;
-import com.alibaba.fluss.rpc.messages.ProduceLogRequest;
-import com.alibaba.fluss.rpc.messages.ProduceLogResponse;
-import com.alibaba.fluss.rpc.messages.PutKvRequest;
-import com.alibaba.fluss.rpc.messages.PutKvResponse;
-import com.alibaba.fluss.rpc.protocol.ApiError;
-import com.alibaba.fluss.rpc.protocol.Errors;
-import com.alibaba.fluss.utils.ExceptionUtils;
-
+package org.apache.fluss.client.write;
+
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.client.metadata.MetadataUpdater;
+import org.apache.fluss.client.metrics.WriterMetricGroup;
+import org.apache.fluss.client.write.RecordAccumulator.ReadyCheckResult;
+import org.apache.fluss.cluster.Cluster;
+import org.apache.fluss.exception.InvalidMetadataException;
+import org.apache.fluss.exception.LeaderNotAvailableException;
+import org.apache.fluss.exception.OutOfOrderSequenceException;
+import org.apache.fluss.exception.PartitionNotExistException;
+import org.apache.fluss.exception.RetriableException;
+import org.apache.fluss.exception.UnknownTableOrBucketException;
+import org.apache.fluss.metadata.PhysicalTablePath;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.rpc.gateway.TabletServerGateway;
+import org.apache.fluss.rpc.messages.PbProduceLogRespForBucket;
+import org.apache.fluss.rpc.messages.PbPutKvRespForBucket;
+import org.apache.fluss.rpc.messages.ProduceLogRequest;
+import org.apache.fluss.rpc.messages.ProduceLogResponse;
+import org.apache.fluss.rpc.messages.PutKvRequest;
+import org.apache.fluss.rpc.messages.PutKvResponse;
+import org.apache.fluss.rpc.protocol.ApiError;
+import org.apache.fluss.rpc.protocol.Errors;
+import org.apache.fluss.utils.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,9 +53,9 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import static com.alibaba.fluss.client.utils.ClientRpcMessageUtils.makeProduceLogRequest;
-import static com.alibaba.fluss.client.utils.ClientRpcMessageUtils.makePutKvRequest;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.client.utils.ClientRpcMessageUtils.makeProduceLogRequest;
+import static org.apache.fluss.client.utils.ClientRpcMessageUtils.makePutKvRequest;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/* This file is based on source code of Apache Kafka Project (https://kafka.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-client/src/test/java/org/apache/fluss/client/security/acl/FlussAuthorizationITCase.java b/fluss-client/src/test/java/org/apache/fluss/client/security/acl/FlussAuthorizationITCase.java
index 08d72e272..c9806d309 100644
--- a/fluss-client/src/test/java/org/apache/fluss/client/security/acl/FlussAuthorizationITCase.java
+++ b/fluss-client/src/test/java/org/apache/fluss/client/security/acl/FlussAuthorizationITCase.java
@@ -15,48 +15,47 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.security.acl;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.FlussConnection;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.client.table.scanner.batch.BatchScanner;
-import com.alibaba.fluss.client.table.writer.AppendWriter;
-import com.alibaba.fluss.client.utils.ClientRpcMessageUtils;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.config.MemorySize;
-import com.alibaba.fluss.exception.AuthorizationException;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.DatabaseDescriptor;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.rpc.GatewayClientProxy;
-import com.alibaba.fluss.rpc.RpcClient;
-import com.alibaba.fluss.rpc.gateway.AdminGateway;
-import com.alibaba.fluss.rpc.gateway.TabletServerGateway;
-import com.alibaba.fluss.rpc.messages.InitWriterRequest;
-import com.alibaba.fluss.rpc.messages.InitWriterResponse;
-import com.alibaba.fluss.rpc.messages.MetadataRequest;
-import com.alibaba.fluss.rpc.metrics.TestingClientMetricGroup;
-import com.alibaba.fluss.security.acl.AccessControlEntry;
-import com.alibaba.fluss.security.acl.AccessControlEntryFilter;
-import com.alibaba.fluss.security.acl.AclBinding;
-import com.alibaba.fluss.security.acl.AclBindingFilter;
-import com.alibaba.fluss.security.acl.FlussPrincipal;
-import com.alibaba.fluss.security.acl.OperationType;
-import com.alibaba.fluss.security.acl.PermissionType;
-import com.alibaba.fluss.security.acl.Resource;
-import com.alibaba.fluss.security.acl.ResourceFilter;
-import com.alibaba.fluss.server.testutils.FlussClusterExtension;
-import com.alibaba.fluss.utils.CloseableIterator;
-
+package org.apache.fluss.client.security.acl;
+
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.FlussConnection;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.client.table.Table;
+import org.apache.fluss.client.table.scanner.batch.BatchScanner;
+import org.apache.fluss.client.table.writer.AppendWriter;
+import org.apache.fluss.client.utils.ClientRpcMessageUtils;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.config.MemorySize;
+import org.apache.fluss.exception.AuthorizationException;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.DatabaseDescriptor;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.rpc.GatewayClientProxy;
+import org.apache.fluss.rpc.RpcClient;
+import org.apache.fluss.rpc.gateway.AdminGateway;
+import org.apache.fluss.rpc.gateway.TabletServerGateway;
+import org.apache.fluss.rpc.messages.InitWriterRequest;
+import org.apache.fluss.rpc.messages.InitWriterResponse;
+import org.apache.fluss.rpc.messages.MetadataRequest;
+import org.apache.fluss.rpc.metrics.TestingClientMetricGroup;
+import org.apache.fluss.security.acl.AccessControlEntry;
+import org.apache.fluss.security.acl.AccessControlEntryFilter;
+import org.apache.fluss.security.acl.AclBinding;
+import org.apache.fluss.security.acl.AclBindingFilter;
+import org.apache.fluss.security.acl.FlussPrincipal;
+import org.apache.fluss.security.acl.OperationType;
+import org.apache.fluss.security.acl.PermissionType;
+import org.apache.fluss.security.acl.Resource;
+import org.apache.fluss.security.acl.ResourceFilter;
+import org.apache.fluss.server.testutils.FlussClusterExtension;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Lists;
+import org.apache.fluss.utils.CloseableIterator;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -69,16 +68,16 @@ import java.util.Collections;
import java.util.List;
import java.util.concurrent.ExecutionException;
-import static com.alibaba.fluss.record.TestData.DATA1_SCHEMA;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_DESCRIPTOR;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_DESCRIPTOR_PK;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_PATH;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_PATH_PK;
-import static com.alibaba.fluss.security.acl.AccessControlEntry.WILD_CARD_HOST;
-import static com.alibaba.fluss.security.acl.FlussPrincipal.WILD_CARD_PRINCIPAL;
-import static com.alibaba.fluss.security.acl.OperationType.READ;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.retry;
+import static org.apache.fluss.record.TestData.DATA1_SCHEMA;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_DESCRIPTOR;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_DESCRIPTOR_PK;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_PATH;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_PATH_PK;
+import static org.apache.fluss.security.acl.AccessControlEntry.WILD_CARD_HOST;
+import static org.apache.fluss.security.acl.FlussPrincipal.WILD_CARD_PRINCIPAL;
+import static org.apache.fluss.security.acl.OperationType.READ;
+import static org.apache.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.testutils.common.CommonTestUtils.retry;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.assertj.core.api.Assertions.catchThrowable;
@@ -671,7 +670,7 @@ public class FlussAuthorizationITCase {
conf.setString("security.sasl.enabled.mechanisms", "plain");
conf.setString(
"security.sasl.plain.jaas.config",
- "com.alibaba.fluss.security.auth.sasl.plain.PlainLoginModule required "
+ "org.apache.fluss.security.auth.sasl.plain.PlainLoginModule required "
+ " user_root=\"password\" "
+ " user_guest=\"password2\";");
conf.set(ConfigOptions.SUPER_USERS, "User:root");
diff --git a/fluss-client/src/test/java/org/apache/fluss/client/write/ArrowLogWriteBatchTest.java b/fluss-client/src/test/java/org/apache/fluss/client/write/ArrowLogWriteBatchTest.java
index a930bceff..cc5b7caa8 100644
--- a/fluss-client/src/test/java/org/apache/fluss/client/write/ArrowLogWriteBatchTest.java
+++ b/fluss-client/src/test/java/org/apache/fluss/client/write/ArrowLogWriteBatchTest.java
@@ -15,26 +15,25 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.write;
-
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.memory.PreAllocatedPagedOutputView;
-import com.alibaba.fluss.memory.TestingMemorySegmentPool;
-import com.alibaba.fluss.memory.UnmanagedPagedOutputView;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.record.LogRecordBatch;
-import com.alibaba.fluss.record.LogRecordReadContext;
-import com.alibaba.fluss.record.MemoryLogRecords;
-import com.alibaba.fluss.record.bytesview.BytesView;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.arrow.ArrowWriter;
-import com.alibaba.fluss.row.arrow.ArrowWriterPool;
-import com.alibaba.fluss.utils.CloseableIterator;
+package org.apache.fluss.client.write;
import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.fluss.memory.MemorySegment;
+import org.apache.fluss.memory.PreAllocatedPagedOutputView;
+import org.apache.fluss.memory.TestingMemorySegmentPool;
+import org.apache.fluss.memory.UnmanagedPagedOutputView;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.record.LogRecordBatch;
+import org.apache.fluss.record.LogRecordReadContext;
+import org.apache.fluss.record.MemoryLogRecords;
+import org.apache.fluss.record.bytesview.BytesView;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.arrow.ArrowWriter;
+import org.apache.fluss.row.arrow.ArrowWriterPool;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
+import org.apache.fluss.utils.CloseableIterator;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -43,13 +42,13 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
-import static com.alibaba.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
-import static com.alibaba.fluss.record.LogRecordReadContext.createArrowReadContext;
-import static com.alibaba.fluss.record.TestData.DATA1_PHYSICAL_TABLE_PATH;
-import static com.alibaba.fluss.record.TestData.DATA1_ROW_TYPE;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_ID;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_INFO;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
+import static org.apache.fluss.record.LogRecordReadContext.createArrowReadContext;
+import static org.apache.fluss.record.TestData.DATA1_PHYSICAL_TABLE_PATH;
+import static org.apache.fluss.record.TestData.DATA1_ROW_TYPE;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_ID;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_INFO;
+import static org.apache.fluss.testutils.DataTestUtils.row;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSource.java b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSource.java
index 08c65cd9e..49a6c248e 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSource.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSource.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.source;
+package org.apache.fluss.lake.source;
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.predicate.Predicate;
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.predicate.Predicate;
import java.io.IOException;
import java.io.Serializable;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSplit.java b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSplit.java
index 99e375ef9..a70f04428 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSplit.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSplit.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.source;
+package org.apache.fluss.lake.source;
-import com.alibaba.fluss.annotation.PublicEvolving;
+import org.apache.fluss.annotation.PublicEvolving;
import java.util.List;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/Planner.java b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/Planner.java
index 13e1be11a..aaab7d94d 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/Planner.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/Planner.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.source;
+package org.apache.fluss.lake.source;
-import com.alibaba.fluss.annotation.PublicEvolving;
+import org.apache.fluss.annotation.PublicEvolving;
import java.io.IOException;
import java.util.List;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/RecordReader.java b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/RecordReader.java
index e6f3d6838..7fc166dbd 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/RecordReader.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/RecordReader.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.source;
+package org.apache.fluss.lake.source;
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.utils.CloseableIterator;
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.utils.CloseableIterator;
import java.io.IOException;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/SortedRecordReader.java b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/SortedRecordReader.java
index f69589683..82dad5497 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/SortedRecordReader.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/lake/source/SortedRecordReader.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.source;
+package org.apache.fluss.lake.source;
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.row.InternalRow;
import java.util.Comparator;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/And.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/And.java
index 59f79cd69..9d950b159 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/And.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/And.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import java.util.ArrayList;
import java.util.List;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompareUtils.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompareUtils.java
index 68b97a2ef..1af6afb72 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompareUtils.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompareUtils.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import static java.lang.Math.min;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompoundPredicate.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompoundPredicate.java
index f38599326..4ee163fb4 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompoundPredicate.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompoundPredicate.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import java.io.Serializable;
import java.util.List;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Contains.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/Contains.java
index 5c166813d..446a1490c 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Contains.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/Contains.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/EndsWith.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/EndsWith.java
index 38f4a67f8..654cecd3f 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/EndsWith.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/EndsWith.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Equal.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/Equal.java
index b7fbf776a..51050ef75 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Equal.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/Equal.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
-import static com.alibaba.fluss.predicate.CompareUtils.compareLiteral;
+import static org.apache.fluss.predicate.CompareUtils.compareLiteral;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/FieldRef.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/FieldRef.java
index b9e179ddc..93cb51bed 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/FieldRef.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/FieldRef.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.io.Serializable;
import java.util.Objects;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/FunctionVisitor.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/FunctionVisitor.java
index 806f2de37..44ad97ae3 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/FunctionVisitor.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/FunctionVisitor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterOrEqual.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterOrEqual.java
index 6f3ff9d85..dc7fa68fa 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterOrEqual.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterOrEqual.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
-import static com.alibaba.fluss.predicate.CompareUtils.compareLiteral;
+import static org.apache.fluss.predicate.CompareUtils.compareLiteral;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterThan.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterThan.java
index 9f088a773..2198ad095 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterThan.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterThan.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
-import static com.alibaba.fluss.predicate.CompareUtils.compareLiteral;
+import static org.apache.fluss.predicate.CompareUtils.compareLiteral;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/In.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/In.java
index 6697750ce..fc4922ded 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/In.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/In.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
-import static com.alibaba.fluss.predicate.CompareUtils.compareLiteral;
+import static org.apache.fluss.predicate.CompareUtils.compareLiteral;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNotNull.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNotNull.java
index 7facb9834..7ac22c123 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNotNull.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNotNull.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNull.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNull.java
index 126df7872..238280cc4 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNull.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNull.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafFunction.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafFunction.java
index e2b00a3aa..fa031f940 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafFunction.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafFunction.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.io.Serializable;
import java.util.List;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafPredicate.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafPredicate.java
index 58f6f7963..b52a713ec 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafPredicate.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafPredicate.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DecimalType;
-import com.alibaba.fluss.types.LocalZonedTimestampType;
-import com.alibaba.fluss.types.TimestampType;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DecimalType;
+import org.apache.fluss.types.LocalZonedTimestampType;
+import org.apache.fluss.types.TimestampType;
import java.util.List;
import java.util.Objects;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafUnaryFunction.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafUnaryFunction.java
index e03710aa0..5d8239ff8 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafUnaryFunction.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafUnaryFunction.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessOrEqual.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessOrEqual.java
index 019ba9c31..f2073cc72 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessOrEqual.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessOrEqual.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
-import static com.alibaba.fluss.predicate.CompareUtils.compareLiteral;
+import static org.apache.fluss.predicate.CompareUtils.compareLiteral;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessThan.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessThan.java
index a8ef1f9c8..3316eafb9 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessThan.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessThan.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
-import static com.alibaba.fluss.predicate.CompareUtils.compareLiteral;
+import static org.apache.fluss.predicate.CompareUtils.compareLiteral;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotEqual.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotEqual.java
index 0ad0f0dc5..e73e0bde0 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotEqual.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotEqual.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
-import static com.alibaba.fluss.predicate.CompareUtils.compareLiteral;
+import static org.apache.fluss.predicate.CompareUtils.compareLiteral;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotIn.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotIn.java
index efd2788f1..5d8c0642d 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotIn.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotIn.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
-import static com.alibaba.fluss.predicate.CompareUtils.compareLiteral;
+import static org.apache.fluss.predicate.CompareUtils.compareLiteral;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/NullFalseLeafBinaryFunction.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/NullFalseLeafBinaryFunction.java
index da170834e..a828b9854 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/NullFalseLeafBinaryFunction.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/NullFalseLeafBinaryFunction.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Or.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/Or.java
index 3b8ae43d2..5beb453e2 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Or.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/Or.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import java.util.ArrayList;
import java.util.List;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/PartitionPredicateVisitor.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/PartitionPredicateVisitor.java
index 6318aba9c..284451b74 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/PartitionPredicateVisitor.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/PartitionPredicateVisitor.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
import java.util.List;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Predicate.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/Predicate.java
index ecb65d1be..cb3e8e720 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Predicate.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/Predicate.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.row.InternalRow;
import java.io.Serializable;
import java.util.Optional;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateBuilder.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateBuilder.java
index 525c0e996..d59e37732 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateBuilder.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateBuilder.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.types.DataField;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DecimalType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.TypeUtils;
+package org.apache.fluss.predicate;
+
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.TimestampNtz;
+import org.apache.fluss.types.DataField;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DecimalType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.TypeUtils;
import javax.annotation.Nullable;
@@ -51,8 +51,8 @@ import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
import static java.util.Collections.singletonList;
+import static org.apache.fluss.utils.Preconditions.checkArgument;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateVisitor.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateVisitor.java
index fb6e854d2..80b52c864 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateVisitor.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateVisitor.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
* additional information regarding copyright ownership. */
-import com.alibaba.fluss.annotation.PublicEvolving;
+import org.apache.fluss.annotation.PublicEvolving;
/**
* A visitor to visit {@link Predicate}.
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/StartsWith.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/StartsWith.java
index 88205c156..ce894c69d 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/StartsWith.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/StartsWith.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
-import com.alibaba.fluss.types.DataType;
+import org.apache.fluss.types.DataType;
import java.util.List;
import java.util.Optional;
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/UnsupportedExpression.java b/fluss-common/src/main/java/com/alibaba/fluss/predicate/UnsupportedExpression.java
index f0eddff5a..291bff01a 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/predicate/UnsupportedExpression.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/predicate/UnsupportedExpression.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
+package org.apache.fluss.predicate;
/** Encounter an unsupported expression, the caller can choose to ignore this filter branch. */
public class UnsupportedExpression extends RuntimeException {
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriter.java b/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriter.java
index 4dd2ffeb9..9074759bb 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriter.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriter.java
@@ -15,20 +15,20 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.encode.iceberg;
+package org.apache.fluss.row.encode.iceberg;
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.utils.UnsafeUtils;
+import org.apache.fluss.memory.MemorySegment;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.TimestampNtz;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.utils.UnsafeUtils;
import java.io.Serializable;
import java.util.Arrays;
/**
- * A writer to encode Fluss's {@link com.alibaba.fluss.row.InternalRow} using Iceberg's binary
+ * A writer to encode Fluss's {@link org.apache.fluss.row.InternalRow} using Iceberg's binary
* encoding format.
*
* <p>The encoding logic is to encode different types of keys into bytes array, which will have the
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoder.java b/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoder.java
index e8df7a0af..466b2ceb6 100644
--- a/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoder.java
+++ b/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoder.java
@@ -15,16 +15,16 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.encode.iceberg;
+package org.apache.fluss.row.encode.iceberg;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.encode.KeyEncoder;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.RowType;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.encode.KeyEncoder;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.RowType;
import java.util.List;
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
+import static org.apache.fluss.utils.Preconditions.checkArgument;
/** An implementation of {@link KeyEncoder} to follow Iceberg's encoding strategy. */
public class IcebergKeyEncoder implements KeyEncoder {
diff --git a/fluss-common/src/main/java/org/apache/fluss/bucketing/IcebergBucketingFunction.java b/fluss-common/src/main/java/org/apache/fluss/bucketing/IcebergBucketingFunction.java
index 547a01dcb..5351e6ebb 100644
--- a/fluss-common/src/main/java/org/apache/fluss/bucketing/IcebergBucketingFunction.java
+++ b/fluss-common/src/main/java/org/apache/fluss/bucketing/IcebergBucketingFunction.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.bucketing;
+package org.apache.fluss.bucketing;
import org.apache.fluss.shaded.guava32.com.google.common.hash.HashFunction;
import org.apache.fluss.shaded.guava32.com.google.common.hash.Hashing;
diff --git a/fluss-common/src/main/java/org/apache/fluss/classloading/ComponentClassLoader.java b/fluss-common/src/main/java/org/apache/fluss/classloading/ComponentClassLoader.java
index a98fbed0d..4d2147cc7 100644
--- a/fluss-common/src/main/java/org/apache/fluss/classloading/ComponentClassLoader.java
+++ b/fluss-common/src/main/java/org/apache/fluss/classloading/ComponentClassLoader.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.classloading;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.utils.function.FunctionWithException;
+package org.apache.fluss.classloading;
+import org.apache.fluss.annotation.VisibleForTesting;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
+import org.apache.fluss.utils.function.FunctionWithException;
import java.io.IOException;
import java.io.InputStream;
diff --git a/fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionFactory.java b/fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionFactory.java
index 0910520f0..ab4d3a72c 100644
--- a/fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionFactory.java
+++ b/fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionFactory.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.compression;
-
-import com.alibaba.fluss.annotation.Internal;
+package org.apache.fluss.compression;
+import org.apache.fluss.annotation.Internal;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.compression.CompressionCodec;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.compression.CompressionUtil;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.compression.NoCompressionCodec;
diff --git a/fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionInfo.java b/fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionInfo.java
index 4bcd2b3d3..7b6a81c43 100644
--- a/fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionInfo.java
+++ b/fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionInfo.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.compression;
-
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
+package org.apache.fluss.compression;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.compression.CompressionCodec;
/** Compression information for Arrow record batches. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/compression/Lz4ArrowCompressionCodec.java b/fluss-common/src/main/java/org/apache/fluss/compression/Lz4ArrowCompressionCodec.java
index cf12cd347..70333c30d 100644
--- a/fluss-common/src/main/java/org/apache/fluss/compression/Lz4ArrowCompressionCodec.java
+++ b/fluss-common/src/main/java/org/apache/fluss/compression/Lz4ArrowCompressionCodec.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.compression;
-
-import com.alibaba.fluss.utils.IOUtils;
+package org.apache.fluss.compression;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.ArrowBuf;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.compression.AbstractCompressionCodec;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.compression.CompressionUtil;
+import org.apache.fluss.utils.IOUtils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -31,7 +30,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
+import static org.apache.fluss.utils.Preconditions.checkArgument;
/* This file is based on source code of Apache Arrow-java Project (https://github.com/apache/arrow-java), licensed by
* the Apache Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with
diff --git a/fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java b/fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java
index 630a23470..dabaf901d 100644
--- a/fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java
+++ b/fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.compression;
+package org.apache.fluss.compression;
import com.github.luben.zstd.Zstd;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.ArrowBuf;
diff --git a/fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java b/fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java
index ceb70cfba..f4f83f9e6 100644
--- a/fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java
+++ b/fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java
@@ -15,21 +15,20 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs;
-
-import com.alibaba.fluss.annotation.PublicStable;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.IllegalConfigurationException;
-import com.alibaba.fluss.fs.local.LocalFileSystem;
-import com.alibaba.fluss.fs.local.LocalFileSystemPlugin;
-import com.alibaba.fluss.fs.token.ObtainedSecurityToken;
-import com.alibaba.fluss.plugin.PluginManager;
-import com.alibaba.fluss.utils.ExceptionUtils;
-import com.alibaba.fluss.utils.TemporaryClassLoaderContext;
-
+package org.apache.fluss.fs;
+
+import org.apache.fluss.annotation.PublicStable;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.IllegalConfigurationException;
+import org.apache.fluss.fs.local.LocalFileSystem;
+import org.apache.fluss.fs.local.LocalFileSystemPlugin;
+import org.apache.fluss.fs.token.ObtainedSecurityToken;
+import org.apache.fluss.plugin.PluginManager;
import org.apache.fluss.shaded.guava32.com.google.common.collect.ImmutableMultimap;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Multimap;
+import org.apache.fluss.utils.ExceptionUtils;
+import org.apache.fluss.utils.TemporaryClassLoaderContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,8 +49,8 @@ import java.util.ServiceLoader;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Supplier;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-import static com.alibaba.fluss.utils.concurrent.LockUtils.inLock;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.concurrent.LockUtils.inLock;
/* This file is based on source code of Apache Flink Project (https://flink.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/org/apache/fluss/fs/token/CredentialsJsonSerde.java b/fluss-common/src/main/java/org/apache/fluss/fs/token/CredentialsJsonSerde.java
index 1cd541902..d28258630 100644
--- a/fluss-common/src/main/java/org/apache/fluss/fs/token/CredentialsJsonSerde.java
+++ b/fluss-common/src/main/java/org/apache/fluss/fs/token/CredentialsJsonSerde.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.token;
-
-import com.alibaba.fluss.utils.json.JsonDeserializer;
-import com.alibaba.fluss.utils.json.JsonSerdeUtils;
-import com.alibaba.fluss.utils.json.JsonSerializer;
+package org.apache.fluss.fs.token;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
+import org.apache.fluss.utils.json.JsonDeserializer;
+import org.apache.fluss.utils.json.JsonSerdeUtils;
+import org.apache.fluss.utils.json.JsonSerializer;
import java.io.IOException;
diff --git a/fluss-common/src/main/java/org/apache/fluss/lake/committer/BucketOffset.java b/fluss-common/src/main/java/org/apache/fluss/lake/committer/BucketOffset.java
index ae8fdbdb1..1c8faf5d8 100644
--- a/fluss-common/src/main/java/org/apache/fluss/lake/committer/BucketOffset.java
+++ b/fluss-common/src/main/java/org/apache/fluss/lake/committer/BucketOffset.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.committer;
+package org.apache.fluss.lake.committer;
import javax.annotation.Nullable;
diff --git a/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStorage.java b/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStorage.java
index 9d6331d5e..7ea8cce02 100644
--- a/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStorage.java
+++ b/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStorage.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lakestorage;
+package org.apache.fluss.lake.lakestorage;
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
-import com.alibaba.fluss.metadata.TablePath;
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
+import org.apache.fluss.metadata.TablePath;
/**
* The LakeStorage interface defines how to implement lakehouse storage system such as Paimon and
diff --git a/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStoragePluginSetUp.java b/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStoragePluginSetUp.java
index 2607a0502..cc5270e1c 100644
--- a/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStoragePluginSetUp.java
+++ b/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/LakeStoragePluginSetUp.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lakestorage;
-
-import com.alibaba.fluss.plugin.PluginManager;
+package org.apache.fluss.lake.lakestorage;
+import org.apache.fluss.plugin.PluginManager;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
import javax.annotation.Nullable;
diff --git a/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/PluginLakeStorageWrapper.java b/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/PluginLakeStorageWrapper.java
index 457f6747d..ce4143d88 100644
--- a/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/PluginLakeStorageWrapper.java
+++ b/fluss-common/src/main/java/org/apache/fluss/lake/lakestorage/PluginLakeStorageWrapper.java
@@ -15,16 +15,16 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lakestorage;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.TableAlreadyExistException;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.utils.TemporaryClassLoaderContext;
-import com.alibaba.fluss.utils.WrappingProxy;
+package org.apache.fluss.lake.lakestorage;
+
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.TableAlreadyExistException;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.utils.TemporaryClassLoaderContext;
+import org.apache.fluss.utils.WrappingProxy;
/**
* A wrapper around {@link LakeStoragePlugin} that ensures the plugin classloader is used for all
diff --git a/fluss-common/src/main/java/org/apache/fluss/metrics/reporter/ReporterSetup.java b/fluss-common/src/main/java/org/apache/fluss/metrics/reporter/ReporterSetup.java
index 43cdfbd9d..7a712b666 100644
--- a/fluss-common/src/main/java/org/apache/fluss/metrics/reporter/ReporterSetup.java
+++ b/fluss-common/src/main/java/org/apache/fluss/metrics/reporter/ReporterSetup.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.metrics.reporter;
-
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.plugin.PluginManager;
-import com.alibaba.fluss.utils.CollectionUtils;
+package org.apache.fluss.metrics.reporter;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.plugin.PluginManager;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
+import org.apache.fluss.utils.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java b/fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java
index 26579e554..c9441b1db 100644
--- a/fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java
+++ b/fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.plugin;
-
-import com.alibaba.fluss.annotation.Internal;
+package org.apache.fluss.plugin;
+import org.apache.fluss.annotation.Internal;
import org.apache.fluss.shaded.guava32.com.google.common.base.Joiner;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
import org.slf4j.Logger;
@@ -36,7 +35,7 @@ import java.util.Map;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
-import static com.alibaba.fluss.utils.concurrent.LockUtils.inLock;
+import static org.apache.fluss.utils.concurrent.LockUtils.inLock;
/* This file is based on source code of Apache Flink Project (https://flink.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/BytesViewLogRecords.java b/fluss-common/src/main/java/org/apache/fluss/record/BytesViewLogRecords.java
index f16dcbd62..8f315763d 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/BytesViewLogRecords.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/BytesViewLogRecords.java
@@ -15,17 +15,16 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record;
-
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.record.bytesview.BytesView;
-import com.alibaba.fluss.record.bytesview.MultiBytesView;
-import com.alibaba.fluss.record.send.ByteBufWritableOutput;
+package org.apache.fluss.record;
+import org.apache.fluss.memory.MemorySegment;
+import org.apache.fluss.record.bytesview.BytesView;
+import org.apache.fluss.record.bytesview.MultiBytesView;
+import org.apache.fluss.record.send.ByteBufWritableOutput;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkState;
/**
* A {@link LogRecords} that represented as a view of bytes. The bytes may be a sequence of bytes
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/DefaultLogRecordBatch.java b/fluss-common/src/main/java/org/apache/fluss/record/DefaultLogRecordBatch.java
index eb77c4bb2..c2c7b5fb1 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/DefaultLogRecordBatch.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/DefaultLogRecordBatch.java
@@ -15,23 +15,22 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.exception.CorruptMessageException;
-import com.alibaba.fluss.exception.OutOfOrderSequenceException;
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.metadata.LogFormat;
-import com.alibaba.fluss.row.arrow.ArrowReader;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.ArrowUtils;
-import com.alibaba.fluss.utils.CloseableIterator;
-import com.alibaba.fluss.utils.MurmurHashUtils;
-import com.alibaba.fluss.utils.crc.Crc32C;
-
+package org.apache.fluss.record;
+
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.exception.CorruptMessageException;
+import org.apache.fluss.exception.OutOfOrderSequenceException;
+import org.apache.fluss.memory.MemorySegment;
+import org.apache.fluss.metadata.LogFormat;
+import org.apache.fluss.row.arrow.ArrowReader;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.ArrowUtils;
+import org.apache.fluss.utils.CloseableIterator;
+import org.apache.fluss.utils.MurmurHashUtils;
+import org.apache.fluss.utils.crc.Crc32C;
import java.nio.ByteBuffer;
import java.util.NoSuchElementException;
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/FileLogProjection.java b/fluss-common/src/main/java/org/apache/fluss/record/FileLogProjection.java
index 84071a060..736ae63e8 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/FileLogProjection.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/FileLogProjection.java
@@ -15,16 +15,12 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.compression.ArrowCompressionInfo;
-import com.alibaba.fluss.exception.InvalidColumnProjectionException;
-import com.alibaba.fluss.record.bytesview.MultiBytesView;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.ArrowUtils;
-import com.alibaba.fluss.utils.types.Tuple2;
+package org.apache.fluss.record;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.compression.ArrowCompressionInfo;
+import org.apache.fluss.exception.InvalidColumnProjectionException;
+import org.apache.fluss.record.bytesview.MultiBytesView;
import org.apache.fluss.shaded.arrow.com.google.flatbuffers.FlatBufferBuilder;
import org.apache.fluss.shaded.arrow.org.apache.arrow.flatbuf.Buffer;
import org.apache.fluss.shaded.arrow.org.apache.arrow.flatbuf.FieldNode;
@@ -40,6 +36,9 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.ArrowRe
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.MessageSerializer;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Field;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.ArrowUtils;
+import org.apache.fluss.utils.types.Tuple2;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -54,16 +53,16 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.record.DefaultLogRecordBatch.APPEND_ONLY_FLAG_MASK;
-import static com.alibaba.fluss.record.DefaultLogRecordBatch.ARROW_CHANGETYPE_OFFSET;
-import static com.alibaba.fluss.record.DefaultLogRecordBatch.ATTRIBUTES_OFFSET;
-import static com.alibaba.fluss.record.DefaultLogRecordBatch.LENGTH_OFFSET;
-import static com.alibaba.fluss.record.DefaultLogRecordBatch.LOG_OVERHEAD;
-import static com.alibaba.fluss.record.DefaultLogRecordBatch.RECORDS_COUNT_OFFSET;
-import static com.alibaba.fluss.record.DefaultLogRecordBatch.RECORD_BATCH_HEADER_SIZE;
-import static com.alibaba.fluss.utils.FileUtils.readFullyOrFail;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.record.DefaultLogRecordBatch.APPEND_ONLY_FLAG_MASK;
+import static org.apache.fluss.record.DefaultLogRecordBatch.ARROW_CHANGETYPE_OFFSET;
+import static org.apache.fluss.record.DefaultLogRecordBatch.ATTRIBUTES_OFFSET;
+import static org.apache.fluss.record.DefaultLogRecordBatch.LENGTH_OFFSET;
+import static org.apache.fluss.record.DefaultLogRecordBatch.LOG_OVERHEAD;
+import static org.apache.fluss.record.DefaultLogRecordBatch.RECORDS_COUNT_OFFSET;
+import static org.apache.fluss.record.DefaultLogRecordBatch.RECORD_BATCH_HEADER_SIZE;
+import static org.apache.fluss.utils.FileUtils.readFullyOrFail;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** Column projection util on Arrow format {@link FileLogRecords}. */
public class FileLogProjection {
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/LogRecordBatch.java b/fluss-common/src/main/java/org/apache/fluss/record/LogRecordBatch.java
index 90b6b5b58..8dcab1be2 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/LogRecordBatch.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/LogRecordBatch.java
@@ -15,15 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.metadata.LogFormat;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.CloseableIterator;
+package org.apache.fluss.record;
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.metadata.LogFormat;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.CloseableIterator;
import java.util.Iterator;
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/LogRecordReadContext.java b/fluss-common/src/main/java/org/apache/fluss/record/LogRecordReadContext.java
index 7da48d685..1158dbc35 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/LogRecordReadContext.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/LogRecordReadContext.java
@@ -15,29 +15,28 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.metadata.LogFormat;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.InternalRow.FieldGetter;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.ArrowUtils;
-import com.alibaba.fluss.utils.Projection;
+package org.apache.fluss.record;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.metadata.LogFormat;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow.FieldGetter;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.ArrowUtils;
+import org.apache.fluss.utils.Projection;
import javax.annotation.Nullable;
import java.util.List;
import java.util.stream.IntStream;
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkArgument;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** A simple implementation for {@link LogRecordBatch.ReadContext}. */
public class LogRecordReadContext implements LogRecordBatch.ReadContext, AutoCloseable {
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/bytesview/BytesView.java b/fluss-common/src/main/java/org/apache/fluss/record/bytesview/BytesView.java
index 1fac0bbbf..0cce48adc 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/bytesview/BytesView.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/bytesview/BytesView.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record.bytesview;
-
-import com.alibaba.fluss.record.send.SendWritableOutput;
+package org.apache.fluss.record.bytesview;
+import org.apache.fluss.record.send.SendWritableOutput;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
/**
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/bytesview/FileRegionBytesView.java b/fluss-common/src/main/java/org/apache/fluss/record/bytesview/FileRegionBytesView.java
index dca9eae45..5c84e6354 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/bytesview/FileRegionBytesView.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/bytesview/FileRegionBytesView.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record.bytesview;
-
-import com.alibaba.fluss.exception.FlussRuntimeException;
+package org.apache.fluss.record.bytesview;
+import org.apache.fluss.exception.FlussRuntimeException;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
import org.apache.fluss.shaded.netty4.io.netty.channel.FileRegion;
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/bytesview/MemorySegmentBytesView.java b/fluss-common/src/main/java/org/apache/fluss/record/bytesview/MemorySegmentBytesView.java
index 200a5d814..89782c8e7 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/bytesview/MemorySegmentBytesView.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/bytesview/MemorySegmentBytesView.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record.bytesview;
-
-import com.alibaba.fluss.memory.MemorySegment;
+package org.apache.fluss.record.bytesview;
+import org.apache.fluss.memory.MemorySegment;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/bytesview/MultiBytesView.java b/fluss-common/src/main/java/org/apache/fluss/record/bytesview/MultiBytesView.java
index c53917e4b..010b9b42d 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/bytesview/MultiBytesView.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/bytesview/MultiBytesView.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record.bytesview;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.record.send.WritableOutput;
+package org.apache.fluss.record.bytesview;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.memory.MemorySegment;
+import org.apache.fluss.record.send.WritableOutput;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/send/ByteBufWritableOutput.java b/fluss-common/src/main/java/org/apache/fluss/record/send/ByteBufWritableOutput.java
index 68065bc43..cc4951296 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/send/ByteBufWritableOutput.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/send/ByteBufWritableOutput.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record.send;
-
-import com.alibaba.fluss.record.bytesview.BytesView;
-import com.alibaba.fluss.utils.ProtoCodecUtils;
+package org.apache.fluss.record.send;
+import org.apache.fluss.record.bytesview.BytesView;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
+import org.apache.fluss.utils.ProtoCodecUtils;
/**
* A basic implementation of {@link WritableOutput} that writes data into a {@link ByteBuf}.
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/send/SendWritableOutput.java b/fluss-common/src/main/java/org/apache/fluss/record/send/SendWritableOutput.java
index f91a81bf7..f38822c93 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/send/SendWritableOutput.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/send/SendWritableOutput.java
@@ -15,13 +15,12 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record.send;
-
-import com.alibaba.fluss.record.bytesview.BytesView;
-import com.alibaba.fluss.record.bytesview.FileRegionBytesView;
-import com.alibaba.fluss.record.bytesview.MemorySegmentBytesView;
-import com.alibaba.fluss.record.bytesview.MultiBytesView;
+package org.apache.fluss.record.send;
+import org.apache.fluss.record.bytesview.BytesView;
+import org.apache.fluss.record.bytesview.FileRegionBytesView;
+import org.apache.fluss.record.bytesview.MemorySegmentBytesView;
+import org.apache.fluss.record.bytesview.MultiBytesView;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import java.util.ArrayDeque;
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/send/WritableOutput.java b/fluss-common/src/main/java/org/apache/fluss/record/send/WritableOutput.java
index 045fc4155..6df7beb99 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/send/WritableOutput.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/send/WritableOutput.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record.send;
-
-import com.alibaba.fluss.record.bytesview.BytesView;
-import com.alibaba.fluss.rpc.messages.ApiMessage;
+package org.apache.fluss.record.send;
+import org.apache.fluss.record.bytesview.BytesView;
+import org.apache.fluss.rpc.messages.ApiMessage;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
/** A writable output for writing {@link ApiMessage}. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowReader.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowReader.java
index 604112c01..ea5afe930 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowReader.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowReader.java
@@ -15,17 +15,16 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.columnar.ColumnVector;
-import com.alibaba.fluss.row.columnar.ColumnarRow;
-import com.alibaba.fluss.row.columnar.VectorizedColumnBatch;
+package org.apache.fluss.row.arrow;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.columnar.ColumnVector;
+import org.apache.fluss.row.columnar.ColumnarRow;
+import org.apache.fluss.row.columnar.VectorizedColumnBatch;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VectorSchemaRoot;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** {@link ArrowReader} which read the underlying Arrow format data as {@link InternalRow}. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriter.java
index b7c717a77..75302f27d 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriter.java
@@ -15,19 +15,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.compression.ArrowCompressionInfo;
-import com.alibaba.fluss.compression.ArrowCompressionRatioEstimator;
-import com.alibaba.fluss.memory.AbstractPagedOutputView;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.arrow.writers.ArrowFieldWriter;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.ArrowUtils;
-import com.alibaba.fluss.utils.PagedMemorySegmentWritableChannel;
-
+package org.apache.fluss.row.arrow;
+
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.compression.ArrowCompressionInfo;
+import org.apache.fluss.compression.ArrowCompressionRatioEstimator;
+import org.apache.fluss.memory.AbstractPagedOutputView;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.arrow.writers.ArrowFieldWriter;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.BaseFixedWidthVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.BaseVariableWidthVector;
@@ -40,11 +36,14 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.WriteChannel;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.ArrowBlock;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.ArrowRecordBatch;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.MessageSerializer;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.ArrowUtils;
+import org.apache.fluss.utils.PagedMemorySegmentWritableChannel;
import java.io.IOException;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkState;
/**
* Writer which serializes the Fluss rows to Arrow record batches. The {@link ArrowWriter} is pooled
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriterPool.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriterPool.java
index 6cdf89c0e..6a384849c 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriterPool.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/ArrowWriterPool.java
@@ -15,17 +15,16 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.compression.ArrowCompressionInfo;
-import com.alibaba.fluss.compression.ArrowCompressionRatioEstimator;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.row.arrow;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.compression.ArrowCompressionInfo;
+import org.apache.fluss.compression.ArrowCompressionRatioEstimator;
+import org.apache.fluss.exception.FlussRuntimeException;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.fluss.types.RowType;
import javax.annotation.concurrent.GuardedBy;
import javax.annotation.concurrent.ThreadSafe;
@@ -36,7 +35,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.ReentrantLock;
-import static com.alibaba.fluss.utils.concurrent.LockUtils.inLock;
+import static org.apache.fluss.utils.concurrent.LockUtils.inLock;
/**
* A pool that pools {@link ArrowWriter}. See Javadoc of {@link VectorSchemaRoot} for more
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBigIntColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBigIntColumnVector.java
index 09ba44b66..be1aa9362 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBigIntColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBigIntColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.LongColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.LongColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.BigIntVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for BigInt. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBinaryColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBinaryColumnVector.java
index bcccc5208..3451ae658 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBinaryColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBinaryColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.BytesColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.BytesColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.FixedSizeBinaryVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for Binary. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBooleanColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBooleanColumnVector.java
index 6b8b672a6..864b62446 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBooleanColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowBooleanColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.BooleanColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.BooleanColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.BitVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for Boolean. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDateColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDateColumnVector.java
index b3765d1ea..38cf58fb7 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDateColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDateColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.IntColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.IntColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.DateDayVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for Date. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDecimalColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDecimalColumnVector.java
index 017b0f215..3952fce90 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDecimalColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDecimalColumnVector.java
@@ -15,15 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.columnar.DecimalColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.columnar.DecimalColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.DecimalVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for Decimal. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDoubleColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDoubleColumnVector.java
index a235a020d..5e921f2c4 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDoubleColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowDoubleColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.DoubleColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.DoubleColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.Float8Vector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for Double. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowFloatColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowFloatColumnVector.java
index d0974d58d..2e853cc87 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowFloatColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowFloatColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.FloatColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.FloatColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.Float4Vector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for Float. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowIntColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowIntColumnVector.java
index 5482c1da9..9260b7256 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowIntColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowIntColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.IntColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.IntColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.IntVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for Int. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowSmallIntColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowSmallIntColumnVector.java
index 6a363d732..84ebcbc40 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowSmallIntColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowSmallIntColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.ShortColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.ShortColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.SmallIntVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for SmallInt. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimeColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimeColumnVector.java
index 00a843a47..12f770b7b 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimeColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimeColumnVector.java
@@ -15,19 +15,18 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.IntColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.IntColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeMicroVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeMilliVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeNanoVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeSecVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ValueVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** Arrow column vector for Time. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampLtzColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampLtzColumnVector.java
index 5e9f56a7e..9b870cdf1 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampLtzColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampLtzColumnVector.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.columnar.TimestampLtzColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.columnar.TimestampLtzColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampMicroVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampMilliVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampNanoVector;
@@ -29,8 +28,8 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ValueVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.ArrowType;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** Arrow column vector for TimestampLtz. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampNtzColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampNtzColumnVector.java
index 7cbd1aa28..37bc9f7b9 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampNtzColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTimestampNtzColumnVector.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.row.columnar.TimestampNtzColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.TimestampNtz;
+import org.apache.fluss.row.columnar.TimestampNtzColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampMicroVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampMilliVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampNanoVector;
@@ -29,8 +28,8 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ValueVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.ArrowType;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** Arrow column vector for TimestampNtz. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTinyIntColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTinyIntColumnVector.java
index 658b9f4dd..f2aa0a60e 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTinyIntColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowTinyIntColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.ByteColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.ByteColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TinyIntVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for TinyInt. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarBinaryColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarBinaryColumnVector.java
index 8511e65ba..8f65d808d 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarBinaryColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarBinaryColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.BytesColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.BytesColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VarBinaryVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for VarBinary. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarCharColumnVector.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarCharColumnVector.java
index 7c3ac9b74..d24e0836c 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarCharColumnVector.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/vectors/ArrowVarCharColumnVector.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.vectors;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.columnar.BytesColumnVector;
+package org.apache.fluss.row.arrow.vectors;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.columnar.BytesColumnVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VarCharVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Arrow column vector for VarChar. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBigIntWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBigIntWriter.java
index e36a20ad8..9bb5be4de 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBigIntWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBigIntWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.BigIntVector;
/** {@link ArrowFieldWriter} for BigInt. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBinaryWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBinaryWriter.java
index f2ffc3900..2b55e600c 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBinaryWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBinaryWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.FixedSizeBinaryVector;
/** {@link ArrowFieldWriter} for Binary. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBooleanWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBooleanWriter.java
index 1461ee037..91976ec93 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBooleanWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowBooleanWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.BitVector;
/** {@link ArrowFieldWriter} for Boolean. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDateWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDateWriter.java
index ea2bf6140..662fd5778 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDateWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDateWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.DateDayVector;
/** {@link ArrowFieldWriter} for Date. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDecimalWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDecimalWriter.java
index 1a0b454ef..71a52be6b 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDecimalWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDecimalWriter.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.DecimalVector;
import java.math.BigDecimal;
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDoubleWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDoubleWriter.java
index 8457386a5..88983f210 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDoubleWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowDoubleWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.Float8Vector;
/** {@link ArrowFieldWriter} for Double. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFieldWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFieldWriter.java
index 8ff75ddd8..a127359aa 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFieldWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFieldWriter.java
@@ -15,13 +15,12 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ValueVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/**
* Base class for arrow field writer which is used to convert a field to an Arrow format.
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFloatWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFloatWriter.java
index cc618486c..798da881b 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFloatWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowFloatWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.Float4Vector;
/** {@link ArrowFieldWriter} for Float. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowIntWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowIntWriter.java
index 811d8f86c..dfe6d5c8e 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowIntWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowIntWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.IntVector;
/** {@link ArrowFieldWriter} for Int. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowSmallIntWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowSmallIntWriter.java
index 2e0bfd5ca..0bca8f6b3 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowSmallIntWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowSmallIntWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.SmallIntVector;
/** {@link ArrowFieldWriter} for SmallInt. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimeWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimeWriter.java
index eb795b519..5af71d433 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimeWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimeWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.BaseFixedWidthVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeMicroVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeMilliVector;
@@ -27,7 +26,7 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeNanoVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeSecVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ValueVector;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** {@link ArrowFieldWriter} for Time. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampLtzWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampLtzWriter.java
index 6e765218b..aece74eab 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampLtzWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampLtzWriter.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.TimestampLtz;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.TimestampLtz;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampMicroVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampMilliVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampSecVector;
@@ -28,7 +27,7 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ValueVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.ArrowType;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** {@link ArrowFieldWriter} for TimestampLtz. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampNtzWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampNtzWriter.java
index 5cc625a7c..53eb5c41b 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampNtzWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTimestampNtzWriter.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.TimestampNtz;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.TimestampNtz;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampMicroVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampMilliVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampSecVector;
@@ -28,7 +27,7 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TimeStampVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ValueVector;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.ArrowType;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** {@link ArrowFieldWriter} for TimestampNtz. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTinyIntWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTinyIntWriter.java
index d8cc5175e..b2add78f3 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTinyIntWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowTinyIntWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.TinyIntVector;
/** {@link ArrowFieldWriter} for TinyInt. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarBinaryWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarBinaryWriter.java
index 308600793..b80a6096a 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarBinaryWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarBinaryWriter.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VarBinaryVector;
/** {@link ArrowFieldWriter} for VarBinary. */
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarCharWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarCharWriter.java
index 782759444..7297ade18 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarCharWriter.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/arrow/writers/ArrowVarCharWriter.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow.writers;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.row.arrow.writers;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.InternalRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VarCharVector;
import java.nio.ByteBuffer;
diff --git a/fluss-common/src/main/java/org/apache/fluss/row/encode/KeyEncoder.java b/fluss-common/src/main/java/org/apache/fluss/row/encode/KeyEncoder.java
index b9574aa8c..45e962f15 100644
--- a/fluss-common/src/main/java/org/apache/fluss/row/encode/KeyEncoder.java
+++ b/fluss-common/src/main/java/org/apache/fluss/row/encode/KeyEncoder.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.encode;
+package org.apache.fluss.row.encode;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.encode.iceberg.IcebergKeyEncoder;
-import com.alibaba.fluss.row.encode.paimon.PaimonKeyEncoder;
-import com.alibaba.fluss.types.RowType;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.encode.iceberg.IcebergKeyEncoder;
+import org.apache.fluss.row.encode.paimon.PaimonKeyEncoder;
+import org.apache.fluss.types.RowType;
import javax.annotation.Nullable;
diff --git a/fluss-common/src/main/java/org/apache/fluss/rpc/messages/ApiMessage.java b/fluss-common/src/main/java/org/apache/fluss/rpc/messages/ApiMessage.java
index db8235acc..4e58cc02b 100644
--- a/fluss-common/src/main/java/org/apache/fluss/rpc/messages/ApiMessage.java
+++ b/fluss-common/src/main/java/org/apache/fluss/rpc/messages/ApiMessage.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.rpc.messages;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.record.send.WritableOutput;
+package org.apache.fluss.rpc.messages;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.record.send.WritableOutput;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
/**
diff --git a/fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/DefaultLogin.java b/fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/DefaultLogin.java
index 88a8a984a..27b7b27ec 100644
--- a/fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/DefaultLogin.java
+++ b/fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/DefaultLogin.java
@@ -17,8 +17,7 @@
package org.apache.fluss.security.auth.sasl.jaas;
-import com.alibaba.fluss.utils.TemporaryClassLoaderContext;
-
+import org.apache.fluss.utils.TemporaryClassLoaderContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/ArrowUtils.java b/fluss-common/src/main/java/org/apache/fluss/utils/ArrowUtils.java
index 0d08f453e..8d4f62858 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/ArrowUtils.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/ArrowUtils.java
@@ -15,66 +15,46 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.compression.ArrowCompressionFactory;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.arrow.ArrowReader;
-import com.alibaba.fluss.row.arrow.vectors.ArrowBigIntColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowBinaryColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowBooleanColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowDateColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowDecimalColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowDoubleColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowFloatColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowIntColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowSmallIntColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowTimeColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowTimestampLtzColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowTimestampNtzColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowTinyIntColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowVarBinaryColumnVector;
-import com.alibaba.fluss.row.arrow.vectors.ArrowVarCharColumnVector;
-import com.alibaba.fluss.row.arrow.writers.ArrowBigIntWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowBinaryWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowBooleanWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowDateWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowDecimalWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowDoubleWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowFieldWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowFloatWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowIntWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowSmallIntWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowTimeWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowTimestampLtzWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowTimestampNtzWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowTinyIntWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowVarBinaryWriter;
-import com.alibaba.fluss.row.arrow.writers.ArrowVarCharWriter;
-import com.alibaba.fluss.row.columnar.ColumnVector;
-import com.alibaba.fluss.types.BigIntType;
-import com.alibaba.fluss.types.BinaryType;
-import com.alibaba.fluss.types.BooleanType;
-import com.alibaba.fluss.types.BytesType;
-import com.alibaba.fluss.types.CharType;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DataTypeDefaultVisitor;
-import com.alibaba.fluss.types.DateType;
-import com.alibaba.fluss.types.DecimalType;
-import com.alibaba.fluss.types.DoubleType;
-import com.alibaba.fluss.types.FloatType;
-import com.alibaba.fluss.types.IntType;
-import com.alibaba.fluss.types.LocalZonedTimestampType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.types.SmallIntType;
-import com.alibaba.fluss.types.StringType;
-import com.alibaba.fluss.types.TimeType;
-import com.alibaba.fluss.types.TimestampType;
-import com.alibaba.fluss.types.TinyIntType;
-
+package org.apache.fluss.utils;
+
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.compression.ArrowCompressionFactory;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.memory.MemorySegment;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.arrow.ArrowReader;
+import org.apache.fluss.row.arrow.vectors.ArrowBigIntColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowBinaryColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowBooleanColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowDateColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowDecimalColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowDoubleColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowFloatColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowIntColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowSmallIntColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowTimeColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowTimestampLtzColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowTimestampNtzColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowTinyIntColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowVarBinaryColumnVector;
+import org.apache.fluss.row.arrow.vectors.ArrowVarCharColumnVector;
+import org.apache.fluss.row.arrow.writers.ArrowBigIntWriter;
+import org.apache.fluss.row.arrow.writers.ArrowBinaryWriter;
+import org.apache.fluss.row.arrow.writers.ArrowBooleanWriter;
+import org.apache.fluss.row.arrow.writers.ArrowDateWriter;
+import org.apache.fluss.row.arrow.writers.ArrowDecimalWriter;
+import org.apache.fluss.row.arrow.writers.ArrowDoubleWriter;
+import org.apache.fluss.row.arrow.writers.ArrowFieldWriter;
+import org.apache.fluss.row.arrow.writers.ArrowFloatWriter;
+import org.apache.fluss.row.arrow.writers.ArrowIntWriter;
+import org.apache.fluss.row.arrow.writers.ArrowSmallIntWriter;
+import org.apache.fluss.row.arrow.writers.ArrowTimeWriter;
+import org.apache.fluss.row.arrow.writers.ArrowTimestampLtzWriter;
+import org.apache.fluss.row.arrow.writers.ArrowTimestampNtzWriter;
+import org.apache.fluss.row.arrow.writers.ArrowTinyIntWriter;
+import org.apache.fluss.row.arrow.writers.ArrowVarBinaryWriter;
+import org.apache.fluss.row.arrow.writers.ArrowVarCharWriter;
+import org.apache.fluss.row.columnar.ColumnVector;
import org.apache.fluss.shaded.arrow.com.google.flatbuffers.FlatBufferBuilder;
import org.apache.fluss.shaded.arrow.org.apache.arrow.flatbuf.MessageHeader;
import org.apache.fluss.shaded.arrow.org.apache.arrow.flatbuf.RecordBatch;
@@ -120,6 +100,25 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Field;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.FieldType;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.util.DataSizeRoundingUtil;
+import org.apache.fluss.types.BigIntType;
+import org.apache.fluss.types.BinaryType;
+import org.apache.fluss.types.BooleanType;
+import org.apache.fluss.types.BytesType;
+import org.apache.fluss.types.CharType;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DataTypeDefaultVisitor;
+import org.apache.fluss.types.DateType;
+import org.apache.fluss.types.DecimalType;
+import org.apache.fluss.types.DoubleType;
+import org.apache.fluss.types.FloatType;
+import org.apache.fluss.types.IntType;
+import org.apache.fluss.types.LocalZonedTimestampType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.types.SmallIntType;
+import org.apache.fluss.types.StringType;
+import org.apache.fluss.types.TimeType;
+import org.apache.fluss.types.TimestampType;
+import org.apache.fluss.types.TinyIntType;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -129,8 +128,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
import static org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.MessageSerializer.deserializeRecordBatch;
+import static org.apache.fluss.utils.Preconditions.checkArgument;
/** Utilities for Arrow. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/BinaryStringUtils.java b/fluss-common/src/main/java/org/apache/fluss/utils/BinaryStringUtils.java
index 70967c362..6275182c4 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/BinaryStringUtils.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/BinaryStringUtils.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils;
+package org.apache.fluss.utils;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.TimestampNtz;
import java.time.DateTimeException;
import java.util.List;
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/DateTimeUtils.java b/fluss-common/src/main/java/org/apache/fluss/utils/DateTimeUtils.java
index bf27a06d3..9106993ea 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/DateTimeUtils.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/DateTimeUtils.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils;
+package org.apache.fluss.utils;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.TimestampNtz;
import java.time.DateTimeException;
import java.time.LocalDate;
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/NetUtils.java b/fluss-common/src/main/java/org/apache/fluss/utils/NetUtils.java
index 204b3a92c..dd9f28e0c 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/NetUtils.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/NetUtils.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.exception.IllegalConfigurationException;
+package org.apache.fluss.utils;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.exception.IllegalConfigurationException;
import org.apache.fluss.shaded.guava32.com.google.common.net.InetAddresses;
import java.io.IOException;
@@ -31,9 +30,9 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkArgument;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkState;
/* This file is based on source code of Apache Flink Project (https://flink.apache.org/), licensed by the Apache
* Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/json/BucketOffsetJsonSerde.java b/fluss-common/src/main/java/org/apache/fluss/utils/json/BucketOffsetJsonSerde.java
index 6a1bb1ebe..f57b2763a 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/json/BucketOffsetJsonSerde.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/json/BucketOffsetJsonSerde.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
-
-import com.alibaba.fluss.lake.committer.BucketOffset;
+package org.apache.fluss.utils.json;
+import org.apache.fluss.lake.committer.BucketOffset;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/json/ColumnJsonSerde.java b/fluss-common/src/main/java/org/apache/fluss/utils/json/ColumnJsonSerde.java
index 7df77be2f..1994ba61a 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/json/ColumnJsonSerde.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/json/ColumnJsonSerde.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.types.DataType;
+package org.apache.fluss.utils.json;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.metadata.Schema;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
+import org.apache.fluss.types.DataType;
import java.io.IOException;
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/json/DataTypeJsonSerde.java b/fluss-common/src/main/java/org/apache/fluss/utils/json/DataTypeJsonSerde.java
index 944e991fd..9bcd3262b 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/json/DataTypeJsonSerde.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/json/DataTypeJsonSerde.java
@@ -15,31 +15,30 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.TableException;
-import com.alibaba.fluss.types.ArrayType;
-import com.alibaba.fluss.types.DataField;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DataTypeRoot;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.types.DecimalType;
-import com.alibaba.fluss.types.LocalZonedTimestampType;
-import com.alibaba.fluss.types.MapType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.types.TimeType;
-import com.alibaba.fluss.types.TimestampType;
+package org.apache.fluss.utils.json;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.metadata.TableException;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.node.ArrayNode;
+import org.apache.fluss.types.ArrayType;
+import org.apache.fluss.types.DataField;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DataTypeRoot;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.types.DecimalType;
+import org.apache.fluss.types.LocalZonedTimestampType;
+import org.apache.fluss.types.MapType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.types.TimeType;
+import org.apache.fluss.types.TimestampType;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import static com.alibaba.fluss.types.DataTypeChecks.getLength;
+import static org.apache.fluss.types.DataTypeChecks.getLength;
/** Json serializer and deserializer for {@link DataType}. */
@Internal
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/json/DatabaseDescriptorJsonSerde.java b/fluss-common/src/main/java/org/apache/fluss/utils/json/DatabaseDescriptorJsonSerde.java
index 2231b319e..06aa79c9a 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/json/DatabaseDescriptorJsonSerde.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/json/DatabaseDescriptorJsonSerde.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
-
-import com.alibaba.fluss.metadata.DatabaseDescriptor;
+package org.apache.fluss.utils.json;
+import org.apache.fluss.metadata.DatabaseDescriptor;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/json/JsonSerdeUtils.java b/fluss-common/src/main/java/org/apache/fluss/utils/json/JsonSerdeUtils.java
index 0ea5b6232..b6e0794be 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/json/JsonSerdeUtils.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/json/JsonSerdeUtils.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
-
-import com.alibaba.fluss.annotation.Internal;
+package org.apache.fluss.utils.json;
+import org.apache.fluss.annotation.Internal;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonEncoding;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.util.ByteArrayBuilder;
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/json/SchemaJsonSerde.java b/fluss-common/src/main/java/org/apache/fluss/utils/json/SchemaJsonSerde.java
index c9575ea31..a4e5fd8ad 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/json/SchemaJsonSerde.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/json/SchemaJsonSerde.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.Schema;
+package org.apache.fluss.utils.json;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.metadata.Schema;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/json/TableDescriptorJsonSerde.java b/fluss-common/src/main/java/org/apache/fluss/utils/json/TableDescriptorJsonSerde.java
index 55408b394..694519607 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/json/TableDescriptorJsonSerde.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/json/TableDescriptorJsonSerde.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableDescriptor;
+package org.apache.fluss.utils.json;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableDescriptor;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/json/TablePartitionJsonSerde.java b/fluss-common/src/main/java/org/apache/fluss/utils/json/TablePartitionJsonSerde.java
index 8c9560ed0..8cf17ce70 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/json/TablePartitionJsonSerde.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/json/TablePartitionJsonSerde.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.metadata.TablePartition;
+package org.apache.fluss.utils.json;
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.metadata.TablePartition;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/bucketing/IcebergBucketingFunctionTest.java b/fluss-common/src/test/java/com/alibaba/fluss/bucketing/IcebergBucketingFunctionTest.java
index 278136aa5..2ca6c51bb 100644
--- a/fluss-common/src/test/java/com/alibaba/fluss/bucketing/IcebergBucketingFunctionTest.java
+++ b/fluss-common/src/test/java/com/alibaba/fluss/bucketing/IcebergBucketingFunctionTest.java
@@ -15,17 +15,16 @@
* limitations under the License.
*/
-package com.alibaba.fluss.bucketing;
-
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.row.encode.iceberg.IcebergKeyEncoder;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.types.RowType;
-
+package org.apache.fluss.bucketing;
+
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.TimestampNtz;
+import org.apache.fluss.row.encode.iceberg.IcebergKeyEncoder;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.types.RowType;
import org.apache.iceberg.transforms.Transform;
import org.apache.iceberg.transforms.Transforms;
import org.apache.iceberg.types.Types;
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateBuilderTest.java b/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateBuilderTest.java
index a47275bc6..3c5013407 100644
--- a/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateBuilderTest.java
+++ b/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateBuilderTest.java
@@ -15,18 +15,17 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
-
-import com.alibaba.fluss.types.IntType;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.predicate;
+import org.apache.fluss.types.IntType;
+import org.apache.fluss.types.RowType;
import org.junit.jupiter.api.Test;
import javax.annotation.Nullable;
import java.util.Arrays;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.testutils.DataTestUtils.row;
import static org.assertj.core.api.Assertions.assertThat;
/** Tests for {@link PredicateBuilder}. */
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateTest.java b/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateTest.java
index f5e1e30aa..b116e4283 100644
--- a/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateTest.java
+++ b/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateTest.java
@@ -15,23 +15,21 @@
* limitations under the License.
*/
-package com.alibaba.fluss.predicate;
-
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.types.IntType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.types.StringType;
+package org.apache.fluss.predicate;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.types.IntType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.types.StringType;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import static com.alibaba.fluss.predicate.PredicateBuilderTest.test;
-import static com.alibaba.fluss.row.BinaryString.fromString;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.apache.fluss.predicate.PredicateBuilderTest.test;
+import static org.apache.fluss.row.BinaryString.fromString;
+import static org.apache.fluss.testutils.DataTestUtils.row;
/** Test for {@link Predicate}s. */
public class PredicateTest {
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java b/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java
index 8d2109301..c62363b0b 100644
--- a/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java
+++ b/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.encode.iceberg;
-
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.Decimal;
+package org.apache.fluss.row.encode.iceberg;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.Decimal;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java b/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java
index 14f0cf1b6..c9430e1d4 100644
--- a/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java
+++ b/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java
@@ -15,16 +15,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.encode.iceberg;
-
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.types.RowType;
-
+package org.apache.fluss.row.encode.iceberg;
+
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.TimestampNtz;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.types.RowType;
import org.apache.iceberg.types.Conversions;
import org.apache.iceberg.types.Types;
import org.junit.jupiter.api.Test;
diff --git a/fluss-common/src/test/java/org/apache/fluss/cluster/ClusterTest.java b/fluss-common/src/test/java/org/apache/fluss/cluster/ClusterTest.java
index 495754f2b..caa491a6d 100644
--- a/fluss-common/src/test/java/org/apache/fluss/cluster/ClusterTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/cluster/ClusterTest.java
@@ -15,13 +15,12 @@
* limitations under the License.
*/
-package com.alibaba.fluss.cluster;
-
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.SchemaInfo;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
+package org.apache.fluss.cluster;
+import org.apache.fluss.metadata.PhysicalTablePath;
+import org.apache.fluss.metadata.SchemaInfo;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePath;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -31,15 +30,15 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.record.TestData.DATA1_PHYSICAL_TABLE_PATH;
-import static com.alibaba.fluss.record.TestData.DATA1_SCHEMA;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_ID;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_INFO;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_PATH;
-import static com.alibaba.fluss.record.TestData.DATA2_SCHEMA;
-import static com.alibaba.fluss.record.TestData.DATA2_TABLE_ID;
-import static com.alibaba.fluss.record.TestData.DATA2_TABLE_INFO;
-import static com.alibaba.fluss.record.TestData.DATA2_TABLE_PATH;
+import static org.apache.fluss.record.TestData.DATA1_PHYSICAL_TABLE_PATH;
+import static org.apache.fluss.record.TestData.DATA1_SCHEMA;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_ID;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_INFO;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_PATH;
+import static org.apache.fluss.record.TestData.DATA2_SCHEMA;
+import static org.apache.fluss.record.TestData.DATA2_TABLE_ID;
+import static org.apache.fluss.record.TestData.DATA2_TABLE_INFO;
+import static org.apache.fluss.record.TestData.DATA2_TABLE_PATH;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
diff --git a/fluss-common/src/test/java/org/apache/fluss/compression/ArrowCompressionCodecTest.java b/fluss-common/src/test/java/org/apache/fluss/compression/ArrowCompressionCodecTest.java
index 57ec03436..d9ab2b3e5 100644
--- a/fluss-common/src/test/java/org/apache/fluss/compression/ArrowCompressionCodecTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/compression/ArrowCompressionCodecTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.compression;
+package org.apache.fluss.compression;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.ArrowBuf;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
diff --git a/fluss-common/src/test/java/org/apache/fluss/lake/lakestorage/LakeStorageTest.java b/fluss-common/src/test/java/org/apache/fluss/lake/lakestorage/LakeStorageTest.java
index 304f05e17..e2fcd0290 100644
--- a/fluss-common/src/test/java/org/apache/fluss/lake/lakestorage/LakeStorageTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/lake/lakestorage/LakeStorageTest.java
@@ -15,16 +15,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lakestorage;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.TableAlreadyExistException;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.plugin.PluginManager;
-
+package org.apache.fluss.lake.lakestorage;
+
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.TableAlreadyExistException;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.plugin.PluginManager;
import org.junit.jupiter.api.Test;
import java.util.Collections;
diff --git a/fluss-common/src/test/java/org/apache/fluss/plugin/DefaultPluginManagerTest.java b/fluss-common/src/test/java/org/apache/fluss/plugin/DefaultPluginManagerTest.java
index 1abaeefb7..4c63f2ea4 100644
--- a/fluss-common/src/test/java/org/apache/fluss/plugin/DefaultPluginManagerTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/plugin/DefaultPluginManagerTest.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.plugin;
-
-import com.alibaba.fluss.plugin.jar.pluginb.TestServiceB;
+package org.apache.fluss.plugin;
+import org.apache.fluss.plugin.jar.pluginb.TestServiceB;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Lists;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -35,7 +34,7 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkState;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link DefaultPluginManager}. */
diff --git a/fluss-common/src/test/java/org/apache/fluss/record/FileLogRecordsTest.java b/fluss-common/src/test/java/org/apache/fluss/record/FileLogRecordsTest.java
index 80551c863..ac57c8652 100644
--- a/fluss-common/src/test/java/org/apache/fluss/record/FileLogRecordsTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/record/FileLogRecordsTest.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record;
-
-import com.alibaba.fluss.exception.FlussRuntimeException;
+package org.apache.fluss.record;
+import org.apache.fluss.exception.FlussRuntimeException;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -36,13 +35,13 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
-import static com.alibaba.fluss.record.TestData.DATA1;
-import static com.alibaba.fluss.record.TestData.DATA1_ROW_TYPE;
-import static com.alibaba.fluss.testutils.DataTestUtils.assertLogRecordBatchEquals;
-import static com.alibaba.fluss.testutils.DataTestUtils.assertLogRecordsEquals;
-import static com.alibaba.fluss.testutils.DataTestUtils.genLogRecordsWithBaseOffsetAndTimestamp;
-import static com.alibaba.fluss.testutils.DataTestUtils.genMemoryLogRecordsWithBaseOffset;
+import static org.apache.fluss.record.TestData.DATA1;
+import static org.apache.fluss.record.TestData.DATA1_ROW_TYPE;
import static org.apache.fluss.shaded.guava32.com.google.common.collect.Lists.newArrayList;
+import static org.apache.fluss.testutils.DataTestUtils.assertLogRecordBatchEquals;
+import static org.apache.fluss.testutils.DataTestUtils.assertLogRecordsEquals;
+import static org.apache.fluss.testutils.DataTestUtils.genLogRecordsWithBaseOffsetAndTimestamp;
+import static org.apache.fluss.testutils.DataTestUtils.genMemoryLogRecordsWithBaseOffset;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.ArgumentMatchers.anyLong;
diff --git a/fluss-common/src/test/java/org/apache/fluss/record/MemoryLogRecordsArrowBuilderTest.java b/fluss-common/src/test/java/org/apache/fluss/record/MemoryLogRecordsArrowBuilderTest.java
index 575afad0f..fa68822f8 100644
--- a/fluss-common/src/test/java/org/apache/fluss/record/MemoryLogRecordsArrowBuilderTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/record/MemoryLogRecordsArrowBuilderTest.java
@@ -15,25 +15,24 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record;
-
-import com.alibaba.fluss.compression.ArrowCompressionInfo;
-import com.alibaba.fluss.compression.ArrowCompressionType;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.config.MemorySize;
-import com.alibaba.fluss.memory.ManagedPagedOutputView;
-import com.alibaba.fluss.memory.TestingMemorySegmentPool;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.arrow.ArrowWriter;
-import com.alibaba.fluss.row.arrow.ArrowWriterPool;
-import com.alibaba.fluss.testutils.DataTestUtils;
-import com.alibaba.fluss.utils.CloseableIterator;
+package org.apache.fluss.record;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.fluss.compression.ArrowCompressionInfo;
+import org.apache.fluss.compression.ArrowCompressionType;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.config.MemorySize;
+import org.apache.fluss.memory.ManagedPagedOutputView;
+import org.apache.fluss.memory.TestingMemorySegmentPool;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.arrow.ArrowWriter;
+import org.apache.fluss.row.arrow.ArrowWriterPool;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
+import org.apache.fluss.testutils.DataTestUtils;
+import org.apache.fluss.utils.CloseableIterator;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -47,14 +46,14 @@ import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
-import static com.alibaba.fluss.compression.ArrowCompressionInfo.NO_COMPRESSION;
-import static com.alibaba.fluss.record.TestData.DATA1;
-import static com.alibaba.fluss.record.TestData.DATA1_ROW_TYPE;
-import static com.alibaba.fluss.record.TestData.DEFAULT_SCHEMA_ID;
-import static com.alibaba.fluss.row.arrow.ArrowWriter.BUFFER_USAGE_RATIO;
-import static com.alibaba.fluss.testutils.DataTestUtils.assertLogRecordsEquals;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
+import static org.apache.fluss.compression.ArrowCompressionInfo.NO_COMPRESSION;
+import static org.apache.fluss.record.TestData.DATA1;
+import static org.apache.fluss.record.TestData.DATA1_ROW_TYPE;
+import static org.apache.fluss.record.TestData.DEFAULT_SCHEMA_ID;
+import static org.apache.fluss.row.arrow.ArrowWriter.BUFFER_USAGE_RATIO;
+import static org.apache.fluss.testutils.DataTestUtils.assertLogRecordsEquals;
+import static org.apache.fluss.testutils.DataTestUtils.row;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
diff --git a/fluss-common/src/test/java/org/apache/fluss/record/send/SendWritableOutputTest.java b/fluss-common/src/test/java/org/apache/fluss/record/send/SendWritableOutputTest.java
index ea1f8a15c..97b3ee829 100644
--- a/fluss-common/src/test/java/org/apache/fluss/record/send/SendWritableOutputTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/record/send/SendWritableOutputTest.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.record.send;
-
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.record.bytesview.FileRegionBytesView;
-import com.alibaba.fluss.record.bytesview.MemorySegmentBytesView;
-import com.alibaba.fluss.record.bytesview.MultiBytesView;
-import com.alibaba.fluss.row.BinaryString;
+package org.apache.fluss.record.send;
+import org.apache.fluss.memory.MemorySegment;
+import org.apache.fluss.record.bytesview.FileRegionBytesView;
+import org.apache.fluss.record.bytesview.MemorySegmentBytesView;
+import org.apache.fluss.record.bytesview.MultiBytesView;
+import org.apache.fluss.row.BinaryString;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
import org.junit.jupiter.api.Test;
@@ -34,9 +33,9 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
-import static com.alibaba.fluss.testutils.ByteBufChannel.toByteBuf;
-import static com.alibaba.fluss.utils.ProtoCodecUtils.readFixedInt32;
-import static com.alibaba.fluss.utils.ProtoCodecUtils.readFixedInt64;
+import static org.apache.fluss.testutils.ByteBufChannel.toByteBuf;
+import static org.apache.fluss.utils.ProtoCodecUtils.readFixedInt32;
+import static org.apache.fluss.utils.ProtoCodecUtils.readFixedInt64;
import static org.assertj.core.api.Assertions.assertThat;
/** Tests for {@link SendWritableOutput}. */
diff --git a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
index 9ba6f518f..25a3de17b 100644
--- a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
@@ -15,41 +15,39 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow;
-
-import com.alibaba.fluss.memory.AbstractPagedOutputView;
-import com.alibaba.fluss.memory.ManagedPagedOutputView;
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.memory.TestingMemorySegmentPool;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.row.columnar.ColumnarRow;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.ArrowUtils;
-
+package org.apache.fluss.row.arrow;
+
+import org.apache.fluss.memory.AbstractPagedOutputView;
+import org.apache.fluss.memory.ManagedPagedOutputView;
+import org.apache.fluss.memory.MemorySegment;
+import org.apache.fluss.memory.TestingMemorySegmentPool;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.TimestampNtz;
+import org.apache.fluss.row.columnar.ColumnarRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.ArrowUtils;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
-import static com.alibaba.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
-import static com.alibaba.fluss.compression.ArrowCompressionInfo.NO_COMPRESSION;
-import static com.alibaba.fluss.record.DefaultLogRecordBatch.ARROW_CHANGETYPE_OFFSET;
-import static com.alibaba.fluss.record.TestData.DATA1;
-import static com.alibaba.fluss.record.TestData.DATA1_ROW_TYPE;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
-import static com.alibaba.fluss.testutils.InternalRowAssert.assertThatRow;
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.apache.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
+import static org.apache.fluss.compression.ArrowCompressionInfo.NO_COMPRESSION;
+import static org.apache.fluss.record.DefaultLogRecordBatch.ARROW_CHANGETYPE_OFFSET;
+import static org.apache.fluss.record.TestData.DATA1;
+import static org.apache.fluss.record.TestData.DATA1_ROW_TYPE;
+import static org.apache.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.testutils.InternalRowAssert.assertThatRow;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
/** Tests for {@link ArrowReader} and {@link ArrowWriter}. */
diff --git a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowWriterPoolTest.java b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowWriterPoolTest.java
index 815df5562..b949418a0 100644
--- a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowWriterPoolTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowWriterPoolTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.row.arrow;
+package org.apache.fluss.row.arrow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
@@ -26,9 +26,9 @@ import org.junit.jupiter.api.Test;
import java.util.Deque;
import java.util.Map;
-import static com.alibaba.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
-import static com.alibaba.fluss.record.TestData.DATA1_ROW_TYPE;
-import static com.alibaba.fluss.row.arrow.ArrowWriter.BUFFER_USAGE_RATIO;
+import static org.apache.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
+import static org.apache.fluss.record.TestData.DATA1_ROW_TYPE;
+import static org.apache.fluss.row.arrow.ArrowWriter.BUFFER_USAGE_RATIO;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link ArrowWriterPool}. */
diff --git a/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java b/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
index 3bf5c57f9..dba58b4fd 100644
--- a/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
@@ -15,15 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.security.auth;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.metadata.ValidationException;
-import com.alibaba.fluss.security.auth.TestIdentifierAuthenticationPlugin.TestIdentifierClientAuthenticator;
-import com.alibaba.fluss.security.auth.TestIdentifierAuthenticationPlugin.TestIdentifierServerAuthenticator;
-import com.alibaba.fluss.utils.ParentResourceBlockingClassLoader;
-import com.alibaba.fluss.utils.TemporaryClassLoaderContext;
+package org.apache.fluss.security.auth;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.metadata.ValidationException;
+import org.apache.fluss.security.auth.TestIdentifierAuthenticationPlugin.TestIdentifierClientAuthenticator;
+import org.apache.fluss.security.auth.TestIdentifierAuthenticationPlugin.TestIdentifierServerAuthenticator;
+import org.apache.fluss.utils.ParentResourceBlockingClassLoader;
+import org.apache.fluss.utils.TemporaryClassLoaderContext;
import org.junit.jupiter.api.Test;
import java.net.URL;
@@ -42,8 +41,8 @@ public class AuthenticationFactoryTest {
String errorMsg =
"Multiple plugins for the same protocol 'conflicting' are found in the classpath.\n\n"
+ "Available plugins are:\n\n"
- + "com.alibaba.fluss.security.auth.TestConflictingAuthenticationPlugin1\n"
- + "com.alibaba.fluss.security.auth.TestConflictingAuthenticationPlugin2";
+ + "org.apache.fluss.security.auth.TestConflictingAuthenticationPlugin1\n"
+ + "org.apache.fluss.security.auth.TestConflictingAuthenticationPlugin2";
assertThatThrownBy(
() -> AuthenticationFactory.loadClientAuthenticatorSupplier(configuration))
.isExactlyInstanceOf(ValidationException.class)
diff --git a/fluss-common/src/test/java/org/apache/fluss/testutils/ByteBufChannel.java b/fluss-common/src/test/java/org/apache/fluss/testutils/ByteBufChannel.java
index 51653b97b..230a1bbe3 100644
--- a/fluss-common/src/test/java/org/apache/fluss/testutils/ByteBufChannel.java
+++ b/fluss-common/src/test/java/org/apache/fluss/testutils/ByteBufChannel.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.testutils;
-
-import com.alibaba.fluss.record.send.Send;
+package org.apache.fluss.testutils;
+import org.apache.fluss.record.send.Send;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelFuture;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelOutboundInvoker;
diff --git a/fluss-common/src/test/java/org/apache/fluss/testutils/DataTestUtils.java b/fluss-common/src/test/java/org/apache/fluss/testutils/DataTestUtils.java
index 0910e09bf..4f00fc14b 100644
--- a/fluss-common/src/test/java/org/apache/fluss/testutils/DataTestUtils.java
+++ b/fluss-common/src/test/java/org/apache/fluss/testutils/DataTestUtils.java
@@ -15,54 +15,53 @@
* limitations under the License.
*/
-package com.alibaba.fluss.testutils;
-
-import com.alibaba.fluss.compression.ArrowCompressionInfo;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.fs.FsPath;
-import com.alibaba.fluss.memory.ManagedPagedOutputView;
-import com.alibaba.fluss.memory.TestingMemorySegmentPool;
-import com.alibaba.fluss.memory.UnmanagedPagedOutputView;
-import com.alibaba.fluss.metadata.KvFormat;
-import com.alibaba.fluss.metadata.LogFormat;
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.record.DefaultLogRecordBatch;
-import com.alibaba.fluss.record.FileLogRecords;
-import com.alibaba.fluss.record.KvRecord;
-import com.alibaba.fluss.record.KvRecordBatch;
-import com.alibaba.fluss.record.KvRecordTestUtils;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.record.LogRecordBatch;
-import com.alibaba.fluss.record.LogRecordReadContext;
-import com.alibaba.fluss.record.LogRecords;
-import com.alibaba.fluss.record.MemoryLogRecords;
-import com.alibaba.fluss.record.MemoryLogRecordsArrowBuilder;
-import com.alibaba.fluss.record.MemoryLogRecordsIndexedBuilder;
-import com.alibaba.fluss.remote.RemoteLogSegment;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.arrow.ArrowWriter;
-import com.alibaba.fluss.row.arrow.ArrowWriterPool;
-import com.alibaba.fluss.row.compacted.CompactedRow;
-import com.alibaba.fluss.row.encode.CompactedKeyEncoder;
-import com.alibaba.fluss.row.encode.CompactedRowEncoder;
-import com.alibaba.fluss.row.encode.RowEncoder;
-import com.alibaba.fluss.row.encode.ValueEncoder;
-import com.alibaba.fluss.row.indexed.IndexedRow;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DataTypeRoot;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.BytesUtils;
-import com.alibaba.fluss.utils.CloseableIterator;
-import com.alibaba.fluss.utils.FlussPaths;
-import com.alibaba.fluss.utils.types.Tuple2;
-
+package org.apache.fluss.testutils;
+
+import org.apache.fluss.compression.ArrowCompressionInfo;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.fs.FsPath;
+import org.apache.fluss.memory.ManagedPagedOutputView;
+import org.apache.fluss.memory.TestingMemorySegmentPool;
+import org.apache.fluss.memory.UnmanagedPagedOutputView;
+import org.apache.fluss.metadata.KvFormat;
+import org.apache.fluss.metadata.LogFormat;
+import org.apache.fluss.metadata.PhysicalTablePath;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.record.ChangeType;
+import org.apache.fluss.record.DefaultLogRecordBatch;
+import org.apache.fluss.record.FileLogRecords;
+import org.apache.fluss.record.KvRecord;
+import org.apache.fluss.record.KvRecordBatch;
+import org.apache.fluss.record.KvRecordTestUtils;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.record.LogRecordBatch;
+import org.apache.fluss.record.LogRecordReadContext;
+import org.apache.fluss.record.LogRecords;
+import org.apache.fluss.record.MemoryLogRecords;
+import org.apache.fluss.record.MemoryLogRecordsArrowBuilder;
+import org.apache.fluss.record.MemoryLogRecordsIndexedBuilder;
+import org.apache.fluss.remote.RemoteLogSegment;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.arrow.ArrowWriter;
+import org.apache.fluss.row.arrow.ArrowWriterPool;
+import org.apache.fluss.row.compacted.CompactedRow;
+import org.apache.fluss.row.encode.CompactedKeyEncoder;
+import org.apache.fluss.row.encode.CompactedRowEncoder;
+import org.apache.fluss.row.encode.RowEncoder;
+import org.apache.fluss.row.encode.ValueEncoder;
+import org.apache.fluss.row.indexed.IndexedRow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DataTypeRoot;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.BytesUtils;
+import org.apache.fluss.utils.CloseableIterator;
+import org.apache.fluss.utils.FlussPaths;
+import org.apache.fluss.utils.types.Tuple2;
import java.io.File;
import java.util.ArrayList;
@@ -70,21 +69,21 @@ import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
-import static com.alibaba.fluss.record.LogRecordBatch.NO_BATCH_SEQUENCE;
-import static com.alibaba.fluss.record.LogRecordBatch.NO_WRITER_ID;
-import static com.alibaba.fluss.record.LogRecordReadContext.createArrowReadContext;
-import static com.alibaba.fluss.record.TestData.BASE_OFFSET;
-import static com.alibaba.fluss.record.TestData.DATA1;
-import static com.alibaba.fluss.record.TestData.DATA1_KEY_TYPE;
-import static com.alibaba.fluss.record.TestData.DATA1_ROW_TYPE;
-import static com.alibaba.fluss.record.TestData.DATA1_SCHEMA_PK;
-import static com.alibaba.fluss.record.TestData.DEFAULT_MAGIC;
-import static com.alibaba.fluss.record.TestData.DEFAULT_SCHEMA_ID;
-import static com.alibaba.fluss.testutils.LogRecordBatchAssert.assertThatLogRecordBatch;
-import static com.alibaba.fluss.utils.FlussPaths.remoteLogDir;
-import static com.alibaba.fluss.utils.FlussPaths.remoteLogSegmentDir;
-import static com.alibaba.fluss.utils.FlussPaths.remoteLogTabletDir;
+import static org.apache.fluss.compression.ArrowCompressionInfo.DEFAULT_COMPRESSION;
+import static org.apache.fluss.record.LogRecordBatch.NO_BATCH_SEQUENCE;
+import static org.apache.fluss.record.LogRecordBatch.NO_WRITER_ID;
+import static org.apache.fluss.record.LogRecordReadContext.createArrowReadContext;
+import static org.apache.fluss.record.TestData.BASE_OFFSET;
+import static org.apache.fluss.record.TestData.DATA1;
+import static org.apache.fluss.record.TestData.DATA1_KEY_TYPE;
+import static org.apache.fluss.record.TestData.DATA1_ROW_TYPE;
+import static org.apache.fluss.record.TestData.DATA1_SCHEMA_PK;
+import static org.apache.fluss.record.TestData.DEFAULT_MAGIC;
+import static org.apache.fluss.record.TestData.DEFAULT_SCHEMA_ID;
+import static org.apache.fluss.testutils.LogRecordBatchAssert.assertThatLogRecordBatch;
+import static org.apache.fluss.utils.FlussPaths.remoteLogDir;
+import static org.apache.fluss.utils.FlussPaths.remoteLogSegmentDir;
+import static org.apache.fluss.utils.FlussPaths.remoteLogTabletDir;
import static org.assertj.core.api.Assertions.assertThat;
/**
diff --git a/fluss-common/src/test/java/org/apache/fluss/utils/ArrowUtilsTest.java b/fluss-common/src/test/java/org/apache/fluss/utils/ArrowUtilsTest.java
index e90148574..76d2dac93 100644
--- a/fluss-common/src/test/java/org/apache/fluss/utils/ArrowUtilsTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/utils/ArrowUtilsTest.java
@@ -15,12 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils;
-
-import com.alibaba.fluss.types.DataField;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.utils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
@@ -47,6 +42,10 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.ArrowRe
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.MessageSerializer;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.util.Text;
+import org.apache.fluss.types.DataField;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.types.RowType;
import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
@@ -59,7 +58,7 @@ import java.util.List;
import static org.apache.fluss.shaded.arrow.org.apache.arrow.vector.compression.NoCompressionCodec.DEFAULT_BODY_COMPRESSION;
import static org.assertj.core.api.Assertions.assertThat;
-/** Tests for {@link com.alibaba.fluss.utils.ArrowUtils}. */
+/** Tests for {@link org.apache.fluss.utils.ArrowUtils}. */
class ArrowUtilsTest {
private static final List<DataType> TYPES =
diff --git a/fluss-common/src/test/java/org/apache/fluss/utils/ParentResourceBlockingClassLoader.java b/fluss-common/src/test/java/org/apache/fluss/utils/ParentResourceBlockingClassLoader.java
index cd68ebde8..6904661dc 100644
--- a/fluss-common/src/test/java/org/apache/fluss/utils/ParentResourceBlockingClassLoader.java
+++ b/fluss-common/src/test/java/org/apache/fluss/utils/ParentResourceBlockingClassLoader.java
@@ -15,15 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils;
+package org.apache.fluss.utils;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Enumeration;
-import static org.apache.logging.log4j.util.LoaderUtil.findResources;
-
/**
* A class loader that blocks resource loading from parent class loader. Designed to simulate SPI
* loading behavior without delegation to parent.
diff --git a/fluss-common/src/test/java/org/apache/fluss/utils/ProtoCodecUtilsTest.java b/fluss-common/src/test/java/org/apache/fluss/utils/ProtoCodecUtilsTest.java
index 5e9a1d566..ac5d45678 100644
--- a/fluss-common/src/test/java/org/apache/fluss/utils/ProtoCodecUtilsTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/utils/ProtoCodecUtilsTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils;
+package org.apache.fluss.utils;
import com.google.protobuf.CodedInputStream;
import com.google.protobuf.CodedOutputStream;
@@ -30,7 +30,7 @@ import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;
-/** Tests for {@link com.alibaba.fluss.utils.ProtoCodecUtils}. */
+/** Tests for {@link org.apache.fluss.utils.ProtoCodecUtils}. */
public class ProtoCodecUtilsTest {
private final byte[] b = new byte[4096];
diff --git a/fluss-common/src/test/java/org/apache/fluss/utils/json/BucketOffsetJsonSerdeTest.java b/fluss-common/src/test/java/org/apache/fluss/utils/json/BucketOffsetJsonSerdeTest.java
index c1913bae2..57bffe895 100644
--- a/fluss-common/src/test/java/org/apache/fluss/utils/json/BucketOffsetJsonSerdeTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/utils/json/BucketOffsetJsonSerdeTest.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
+package org.apache.fluss.utils.json;
-import com.alibaba.fluss.lake.committer.BucketOffset;
+import org.apache.fluss.lake.committer.BucketOffset;
/** Test for {@link BucketOffset}. */
public class BucketOffsetJsonSerdeTest extends JsonSerdeTestBase<BucketOffset> {
diff --git a/fluss-common/src/test/java/org/apache/fluss/utils/json/JsonSerdeTestBase.java b/fluss-common/src/test/java/org/apache/fluss/utils/json/JsonSerdeTestBase.java
index a8233a61e..8370ddfa8 100644
--- a/fluss-common/src/test/java/org/apache/fluss/utils/json/JsonSerdeTestBase.java
+++ b/fluss-common/src/test/java/org/apache/fluss/utils/json/JsonSerdeTestBase.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.utils.json;
+package org.apache.fluss.utils.json;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.junit.jupiter.api.Test;
diff --git a/fluss-common/src/test/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin b/fluss-common/src/test/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
index 83d4f9a02..f75628c8c 100644
--- a/fluss-common/src/test/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
+++ b/fluss-common/src/test/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-com.alibaba.fluss.fs.TestFileSystem$TestFileSystemPlugin
\ No newline at end of file
+org.apache.fluss.fs.TestFileSystem$TestFileSystemPlugin
\ No newline at end of file
diff --git a/fluss-dist/pom.xml b/fluss-dist/pom.xml
index b56265329..032ba5452 100644
--- a/fluss-dist/pom.xml
+++ b/fluss-dist/pom.xml
@@ -69,7 +69,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-fs-obs</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
@@ -98,14 +98,14 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-lake-iceberg</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-lake-lance</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
diff --git a/fluss-filesystems/fluss-fs-gs/pom.xml b/fluss-filesystems/fluss-fs-gs/pom.xml
index 2d2e2a6c9..156977ebe 100644
--- a/fluss-filesystems/fluss-fs-gs/pom.xml
+++ b/fluss-filesystems/fluss-fs-gs/pom.xml
@@ -410,7 +410,7 @@
</excludes>
</filter>
<filter>
- <artifact>com.alibaba.fluss:fluss-fs-hadoop</artifact>
+ <artifact>org.apache.fluss:fluss-fs-hadoop</artifact>
<excludes>
<exclude>META-INF/**</exclude>
</excludes>
diff --git a/fluss-filesystems/fluss-fs-gs/src/test/java/com/alibaba/fluss/fs/gs/AuthServerHandler.java b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/AuthServerHandler.java
similarity index 84%
rename from fluss-filesystems/fluss-fs-gs/src/test/java/com/alibaba/fluss/fs/gs/AuthServerHandler.java
rename to fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/AuthServerHandler.java
index a715c7345..3e814b788 100644
--- a/fluss-filesystems/fluss-fs-gs/src/test/java/com/alibaba/fluss/fs/gs/AuthServerHandler.java
+++ b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/AuthServerHandler.java
@@ -1,23 +1,20 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
-package com.alibaba.fluss.fs.gs;
-
-import com.alibaba.fluss.utils.IOUtils;
+package org.apache.fluss.fs.gs;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
@@ -29,6 +26,7 @@ import org.apache.fluss.shaded.netty4.io.netty.handler.codec.http.HttpObject;
import org.apache.fluss.shaded.netty4.io.netty.handler.codec.http.HttpRequest;
import org.apache.fluss.shaded.netty4.io.netty.handler.codec.http.HttpResponseStatus;
import org.apache.fluss.shaded.netty4.io.netty.util.AsciiString;
+import org.apache.fluss.utils.IOUtils;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
diff --git a/fluss-filesystems/fluss-fs-gs/src/test/java/com/alibaba/fluss/fs/gs/GSFileSystemBehaviorITCase.java b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-gs/src/test/java/com/alibaba/fluss/fs/gs/GSFileSystemBehaviorITCase.java
rename to fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java
diff --git a/fluss-filesystems/fluss-fs-gs/src/test/java/com/alibaba/fluss/fs/gs/MockAuthServer.java b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/MockAuthServer.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-gs/src/test/java/com/alibaba/fluss/fs/gs/MockAuthServer.java
rename to fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/MockAuthServer.java
diff --git a/fluss-filesystems/fluss-fs-hadoop/pom.xml b/fluss-filesystems/fluss-fs-hadoop/pom.xml
index e6cb94712..bb06257f2 100644
--- a/fluss-filesystems/fluss-fs-hadoop/pom.xml
+++ b/fluss-filesystems/fluss-fs-hadoop/pom.xml
@@ -196,7 +196,7 @@
<relocations>
<relocation>
<pattern>org.apache.commons</pattern>
- <shadedPattern>com.alibaba.fluss.shaded.org.apache.commons</shadedPattern>
+ <shadedPattern>org.apache.fluss.shaded.org.apache.commons</shadedPattern>
</relocation>
</relocations>
</configuration>
diff --git a/fluss-filesystems/fluss-fs-obs/pom.xml b/fluss-filesystems/fluss-fs-obs/pom.xml
index 1b7b41145..b05c182f1 100644
--- a/fluss-filesystems/fluss-fs-obs/pom.xml
+++ b/fluss-filesystems/fluss-fs-obs/pom.xml
@@ -22,7 +22,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-filesystems</artifactId>
<version>0.8-SNAPSHOT</version>
</parent>
@@ -38,20 +38,20 @@
<dependencies>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-fs-hadoop-shaded</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-fs-hadoop</artifactId>
<version>${project.version}</version>
<exclusions>
@@ -124,12 +124,12 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-test-utils</artifactId>
</dependency>
<!-- for the behavior test suite -->
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
<scope>test</scope>
@@ -243,7 +243,7 @@
</excludes>
</filter>
<filter>
- <artifact>com.alibaba.fluss:fluss-fs-hadoop</artifact>
+ <artifact>org.apache.fluss:fluss-fs-hadoop</artifact>
<excludes>
<exclude>META-INF/**</exclude>
</excludes>
@@ -252,7 +252,7 @@
<relocations>
<relocation>
<pattern>org.apache.commons</pattern>
- <shadedPattern>com.alibaba.fluss.shaded.org.apache.commons</shadedPattern>
+ <shadedPattern>org.apache.fluss.shaded.org.apache.commons</shadedPattern>
</relocation>
</relocations>
</configuration>
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/OBSFileSystem.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
similarity index 91%
rename from fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/OBSFileSystem.java
rename to fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
index c6d4f1b87..145ece1ab 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/OBSFileSystem.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.obs;
-
-import com.alibaba.fluss.fs.hdfs.HadoopFileSystem;
-import com.alibaba.fluss.fs.obs.token.OBSSecurityTokenProvider;
-import com.alibaba.fluss.fs.token.ObtainedSecurityToken;
+package org.apache.fluss.fs.obs;
+import org.apache.fluss.fs.hdfs.HadoopFileSystem;
+import org.apache.fluss.fs.obs.token.OBSSecurityTokenProvider;
+import org.apache.fluss.fs.token.ObtainedSecurityToken;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/OBSFileSystemPlugin.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
similarity index 93%
rename from fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/OBSFileSystemPlugin.java
rename to fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
index c23e12e9e..0750472a6 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/OBSFileSystemPlugin.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
@@ -15,15 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.obs;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.config.ConfigBuilder;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.fs.FileSystem;
-import com.alibaba.fluss.fs.FileSystemPlugin;
-import com.alibaba.fluss.fs.obs.token.OBSSecurityTokenReceiver;
-
+package org.apache.fluss.fs.obs;
+
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.config.ConfigBuilder;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.fs.FileSystem;
+import org.apache.fluss.fs.FileSystemPlugin;
+import org.apache.fluss.fs.obs.token.OBSSecurityTokenReceiver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
similarity index 96%
rename from fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
rename to fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
index f690c3848..f6e830d1f 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
@@ -15,13 +15,12 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.obs.token;
-
-import com.alibaba.fluss.annotation.Internal;
+package org.apache.fluss.fs.obs.token;
import com.obs.services.IObsCredentialsProvider;
import com.obs.services.internal.security.BasicSecurityKey;
import com.obs.services.model.ISecurityKey;
+import org.apache.fluss.annotation.Internal;
import org.apache.hadoop.fs.obs.OBSFileSystem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/token/OBSSecurityTokenProvider.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
similarity index 94%
rename from fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/token/OBSSecurityTokenProvider.java
rename to fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
index 48b2724d6..236764a22 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/token/OBSSecurityTokenProvider.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
@@ -15,11 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.obs.token;
-
-import com.alibaba.fluss.fs.token.Credentials;
-import com.alibaba.fluss.fs.token.CredentialsJsonSerde;
-import com.alibaba.fluss.fs.token.ObtainedSecurityToken;
+package org.apache.fluss.fs.obs.token;
import com.huaweicloud.sdk.core.auth.GlobalCredentials;
import com.huaweicloud.sdk.core.auth.ICredential;
@@ -32,6 +28,9 @@ import com.huaweicloud.sdk.iam.v3.model.IdentityToken;
import com.huaweicloud.sdk.iam.v3.model.TokenAuth;
import com.huaweicloud.sdk.iam.v3.model.TokenAuthIdentity;
import com.huaweicloud.sdk.iam.v3.region.IamRegion;
+import org.apache.fluss.fs.token.Credentials;
+import org.apache.fluss.fs.token.CredentialsJsonSerde;
+import org.apache.fluss.fs.token.ObtainedSecurityToken;
import org.apache.hadoop.conf.Configuration;
import java.time.Instant;
@@ -40,7 +39,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.fs.obs.OBSFileSystemPlugin.REGION_KEY;
+import static org.apache.fluss.fs.obs.OBSFileSystemPlugin.REGION_KEY;
/** A provider to provide HuaweiCloud obs security token. */
public class OBSSecurityTokenProvider {
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/token/OBSSecurityTokenReceiver.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
similarity index 70%
rename from fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
rename to fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
index 8a56e50ee..92423b41e 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/com/alibaba/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
@@ -1,35 +1,33 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
-package com.alibaba.fluss.fs.obs.token;
-
-import com.alibaba.fluss.fs.obs.OBSFileSystemPlugin;
-import com.alibaba.fluss.fs.token.CredentialsJsonSerde;
-import com.alibaba.fluss.fs.token.ObtainedSecurityToken;
-import com.alibaba.fluss.fs.token.SecurityTokenReceiver;
+package org.apache.fluss.fs.obs.token;
import com.obs.services.internal.security.BasicSecurityKey;
import com.obs.services.model.ISecurityKey;
+import org.apache.fluss.fs.obs.OBSFileSystemPlugin;
+import org.apache.fluss.fs.token.CredentialsJsonSerde;
+import org.apache.fluss.fs.token.ObtainedSecurityToken;
+import org.apache.fluss.fs.token.SecurityTokenReceiver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Map;
-import static com.alibaba.fluss.fs.obs.OBSFileSystemPlugin.CREDENTIALS_PROVIDER;
+import static org.apache.fluss.fs.obs.OBSFileSystemPlugin.CREDENTIALS_PROVIDER;
/** Security token receiver for HuaweiCloud OBS filesystem. */
public class OBSSecurityTokenReceiver implements SecurityTokenReceiver {
@@ -86,7 +84,7 @@ public class OBSSecurityTokenReceiver implements SecurityTokenReceiver {
byte[] tokenBytes = token.getToken();
- com.alibaba.fluss.fs.token.Credentials flussCredentials =
+ org.apache.fluss.fs.token.Credentials flussCredentials =
CredentialsJsonSerde.fromJson(tokenBytes);
// Create Credential from fluss credentials
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin b/fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
similarity index 94%
rename from fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
rename to fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
index b7911eea2..c6f51a30e 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
+++ b/fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-com.alibaba.fluss.fs.obs.OBSFileSystemPlugin
+org.apache.fluss.fs.obs.OBSFileSystemPlugin
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/com.alibaba.fluss.fs.token.SecurityTokenReceiver b/fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
similarity index 93%
rename from fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/com.alibaba.fluss.fs.token.SecurityTokenReceiver
rename to fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
index 90f6d232d..b774e6e25 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/com.alibaba.fluss.fs.token.SecurityTokenReceiver
+++ b/fluss-filesystems/fluss-fs-obs/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
@@ -14,4 +14,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-com.alibaba.fluss.fs.obs.token.OBSSecurityTokenReceiver
+org.apache.fluss.fs.obs.token.OBSSecurityTokenReceiver
diff --git a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSFileSystemBehaviorITCase.java b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSFileSystemBehaviorITCase.java
similarity index 90%
rename from fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSFileSystemBehaviorITCase.java
rename to fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSFileSystemBehaviorITCase.java
index 85b439f9e..2718496b2 100644
--- a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSFileSystemBehaviorITCase.java
+++ b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSFileSystemBehaviorITCase.java
@@ -15,13 +15,12 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.obs;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.fs.FileSystem;
-import com.alibaba.fluss.fs.FileSystemBehaviorTestSuite;
-import com.alibaba.fluss.fs.FsPath;
+package org.apache.fluss.fs.obs;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.fs.FileSystem;
+import org.apache.fluss.fs.FileSystemBehaviorTestSuite;
+import org.apache.fluss.fs.FsPath;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
diff --git a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSTestCredentials.java b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSTestCredentials.java
similarity index 99%
rename from fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSTestCredentials.java
rename to fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSTestCredentials.java
index 3193eb64b..929fcf79c 100644
--- a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSTestCredentials.java
+++ b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSTestCredentials.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.obs;
+package org.apache.fluss.fs.obs;
import javax.annotation.Nullable;
diff --git a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java
similarity index 88%
rename from fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java
rename to fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java
index 411e85326..441105620 100644
--- a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java
+++ b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java
@@ -15,20 +15,19 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.obs;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.fs.FileSystem;
-import com.alibaba.fluss.fs.FileSystemBehaviorTestSuite;
-import com.alibaba.fluss.fs.FsPath;
+package org.apache.fluss.fs.obs;
import com.obs.services.EnvironmentVariableObsCredentialsProvider;
import com.obs.services.IObsCredentialsProvider;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.fs.FileSystem;
+import org.apache.fluss.fs.FileSystemBehaviorTestSuite;
+import org.apache.fluss.fs.FsPath;
import org.junit.jupiter.api.BeforeAll;
import java.util.UUID;
-import static com.alibaba.fluss.fs.obs.OBSFileSystemPlugin.CREDENTIALS_PROVIDER;
+import static org.apache.fluss.fs.obs.OBSFileSystemPlugin.CREDENTIALS_PROVIDER;
/** IT case for access obs via set {@link IObsCredentialsProvider}. */
class OBSWithCredentialsProviderFileSystemBehaviorITCase extends FileSystemBehaviorTestSuite {
diff --git a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSWithTokenFileSystemBehaviorBaseITCase.java b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorBaseITCase.java
similarity index 89%
rename from fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSWithTokenFileSystemBehaviorBaseITCase.java
rename to fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorBaseITCase.java
index a2d8705db..5350a6084 100644
--- a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSWithTokenFileSystemBehaviorBaseITCase.java
+++ b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorBaseITCase.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.obs;
+package org.apache.fluss.fs.obs;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.fs.FileSystem;
-import com.alibaba.fluss.fs.FileSystemBehaviorTestSuite;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.fs.FileSystem;
+import org.apache.fluss.fs.FileSystemBehaviorTestSuite;
/** Base IT case for access obs with temporary credentials in hadoop sdk as OBS FileSystem. */
abstract class OBSWithTokenFileSystemBehaviorBaseITCase extends FileSystemBehaviorTestSuite {
diff --git a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java
similarity index 89%
rename from fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java
rename to fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java
index ae45379b3..0fa8fb5a6 100644
--- a/fluss-filesystems/fluss-fs-obs/src/test/java/com/alibaba/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java
+++ b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.fs.obs;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.fs.FileSystem;
-import com.alibaba.fluss.fs.FsPath;
-import com.alibaba.fluss.fs.obs.token.OBSSecurityTokenReceiver;
-import com.alibaba.fluss.fs.token.ObtainedSecurityToken;
+package org.apache.fluss.fs.obs;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.fs.FileSystem;
+import org.apache.fluss.fs.FsPath;
+import org.apache.fluss.fs.obs.token.OBSSecurityTokenReceiver;
+import org.apache.fluss.fs.token.ObtainedSecurityToken;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
diff --git a/fluss-filesystems/fluss-fs-obs/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/fluss-filesystems/fluss-fs-obs/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
index 590243ea8..ca0e907f6 100644
--- a/fluss-filesystems/fluss-fs-obs/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
+++ b/fluss-filesystems/fluss-fs-obs/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
@@ -16,4 +16,4 @@
# limitations under the License.
#
-com.alibaba.fluss.testutils.common.TestLoggerExtension
\ No newline at end of file
+org.apache.fluss.testutils.common.TestLoggerExtension
\ No newline at end of file
diff --git a/fluss-filesystems/fluss-fs-oss/pom.xml b/fluss-filesystems/fluss-fs-oss/pom.xml
index 8fdd97868..e77d0a5cd 100644
--- a/fluss-filesystems/fluss-fs-oss/pom.xml
+++ b/fluss-filesystems/fluss-fs-oss/pom.xml
@@ -227,7 +227,7 @@
</excludes>
</filter>
<filter>
- <artifact>com.alibaba.fluss:fluss-fs-hadoop</artifact>
+ <artifact>org.apache.fluss:fluss-fs-hadoop</artifact>
<excludes>
<exclude>META-INF/**</exclude>
</excludes>
@@ -236,7 +236,7 @@
<relocations>
<relocation>
<pattern>org.apache.commons</pattern>
- <shadedPattern>com.alibaba.fluss.shaded.org.apache.commons</shadedPattern>
+ <shadedPattern>org.apache.fluss.shaded.org.apache.commons</shadedPattern>
</relocation>
</relocations>
</configuration>
diff --git a/fluss-filesystems/fluss-fs-s3/pom.xml b/fluss-filesystems/fluss-fs-s3/pom.xml
index 40abf6756..bbe47238f 100644
--- a/fluss-filesystems/fluss-fs-s3/pom.xml
+++ b/fluss-filesystems/fluss-fs-s3/pom.xml
@@ -380,7 +380,7 @@
</excludes>
</filter>
<filter>
- <artifact>com.alibaba.fluss:fluss-fs-hadoop</artifact>
+ <artifact>org.apache.fluss:fluss-fs-hadoop</artifact>
<excludes>
<exclude>META-INF/**</exclude>
</excludes>
diff --git a/fluss-filesystems/fluss-fs-s3/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin b/fluss-filesystems/fluss-fs-s3/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
index aca49ba50..024cda57d 100644
--- a/fluss-filesystems/fluss-fs-s3/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
+++ b/fluss-filesystems/fluss-fs-s3/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
@@ -14,5 +14,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-com.alibaba.fluss.fs.s3.S3AFileSystemPlugin
-com.alibaba.fluss.fs.s3.S3FileSystemPlugin
\ No newline at end of file
+org.apache.fluss.fs.s3.S3AFileSystemPlugin
+org.apache.fluss.fs.s3.S3FileSystemPlugin
\ No newline at end of file
diff --git a/fluss-filesystems/fluss-fs-s3/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver b/fluss-filesystems/fluss-fs-s3/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
index c41f0efed..48b024745 100644
--- a/fluss-filesystems/fluss-fs-s3/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
+++ b/fluss-filesystems/fluss-fs-s3/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
@@ -14,5 +14,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-com.alibaba.fluss.fs.s3.token.S3DelegationTokenReceiver
-com.alibaba.fluss.fs.s3.token.S3ADelegationTokenReceiver
\ No newline at end of file
+org.apache.fluss.fs.s3.token.S3DelegationTokenReceiver
+org.apache.fluss.fs.s3.token.S3ADelegationTokenReceiver
\ No newline at end of file
diff --git a/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java b/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
index a047202f1..f41dc51e3 100644
--- a/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
+++ b/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.adapter;
+package org.apache.fluss.flink.adapter;
import org.apache.flink.table.api.Schema;
import org.apache.flink.table.catalog.CatalogTable;
diff --git a/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java b/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
index 31989c16b..e45155cec 100644
--- a/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
+++ b/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.adapter;
+package org.apache.fluss.flink.adapter;
import org.apache.flink.api.connector.source.SourceSplit;
import org.apache.flink.configuration.Configuration;
diff --git a/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java b/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
index 9dd864145..067a5b708 100644
--- a/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
+++ b/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.adapter;
+package org.apache.fluss.flink.adapter;
import org.apache.flink.api.connector.source.SourceReaderContext;
import org.apache.flink.api.connector.source.SourceSplit;
diff --git a/fluss-flink/fluss-flink-1.19/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java b/fluss-flink/fluss-flink-1.19/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
index a047202f1..f41dc51e3 100644
--- a/fluss-flink/fluss-flink-1.19/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
+++ b/fluss-flink/fluss-flink-1.19/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.adapter;
+package org.apache.fluss.flink.adapter;
import org.apache.flink.table.api.Schema;
import org.apache.flink.table.catalog.CatalogTable;
diff --git a/fluss-flink/fluss-flink-2.1/pom.xml b/fluss-flink/fluss-flink-2.1/pom.xml
index 79493a587..3f0731c1d 100644
--- a/fluss-flink/fluss-flink-2.1/pom.xml
+++ b/fluss-flink/fluss-flink-2.1/pom.xml
@@ -19,7 +19,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink</artifactId>
<version>0.8-SNAPSHOT</version>
</parent>
@@ -34,13 +34,13 @@
<dependencies>
<!-- Fluss dependency -->
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-client</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink-common</artifactId>
<version>${project.version}</version>
<exclusions>
@@ -68,7 +68,7 @@
<!-- test dependency -->
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink-common</artifactId>
<version>${project.version}</version>
<scope>test</scope>
@@ -76,7 +76,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-server</artifactId>
<version>${project.version}</version>
<scope>test</scope>
@@ -97,7 +97,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-server</artifactId>
<version>${project.version}</version>
<scope>test</scope>
@@ -105,7 +105,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-rpc</artifactId>
<scope>test</scope>
<type>test-jar</type>
@@ -137,12 +137,12 @@
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-test-utils</artifactId>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
<scope>test</scope>
@@ -216,8 +216,8 @@
<configuration>
<artifactSet>
<includes combine.children="append">
- <include>com.alibaba.fluss:fluss-flink-common</include>
- <include>com.alibaba.fluss:fluss-client</include>
+ <include>org.apache.fluss:fluss-flink-common</include>
+ <include>org.apache.fluss:fluss-client</include>
</includes>
</artifactSet>
</configuration>
diff --git a/fluss-flink/fluss-flink-2.1/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory b/fluss-flink/fluss-flink-2.1/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
index fb9a3d86b..6544cb534 100644
--- a/fluss-flink/fluss-flink-2.1/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
+++ b/fluss-flink/fluss-flink-2.1/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
@@ -1,9 +1,11 @@
#
-# Copyright (c) 2025 Alibaba Group Holding Ltd.
-#
-# Licensed 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
+# 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
#
@@ -14,4 +16,4 @@
# limitations under the License.
#
-com.alibaba.fluss.flink.catalog.FlinkCatalogFactory
\ No newline at end of file
+org.apache.fluss.flink.catalog.FlinkCatalogFactory
\ No newline at end of file
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java
index 7f122dde7..cae4d4ebb 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java
@@ -16,7 +16,7 @@
*/
<<<<<<<< HEAD:fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java
-package com.alibaba.fluss.flink.catalog;
+package org.apache.fluss.flink.catalog;
========
package org.apache.fluss.flink;
>>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-1.19/src/main/java/org/apache/fluss/flink/DummyClass119.java
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/metrics/Flink21MetricsITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/metrics/Flink21MetricsITCase.java
index 72b690bbe..ca6b52f2f 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/metrics/Flink21MetricsITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/metrics/Flink21MetricsITCase.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.metrics;
+package org.apache.fluss.flink.metrics;
/** IT case for metrics in Flink 2.1. */
public class Flink21MetricsITCase extends FlinkMetricsITCase {}
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/procedure/Flink21ProcedureITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/procedure/Flink21ProcedureITCase.java
index 9183b24cc..2090c7895 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/procedure/Flink21ProcedureITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/procedure/Flink21ProcedureITCase.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.procedure;
+package org.apache.fluss.flink.procedure;
/** IT case for procedure in Flink 2.1. */
public class Flink21ProcedureITCase extends FlinkProcedureITCase {}
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/security/acl/Flink21AuthorizationITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/security/acl/Flink21AuthorizationITCase.java
index aa75e4851..11e7b7bee 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/security/acl/Flink21AuthorizationITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/security/acl/Flink21AuthorizationITCase.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.security.acl;
+package org.apache.fluss.flink.security.acl;
/** IT case for authorization in Flink 2.1. */
public class Flink21AuthorizationITCase extends FlinkAuthorizationITCase {}
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/sink/Flink21TableSinkITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/sink/Flink21TableSinkITCase.java
index ba29e5609..c50b4c8fd 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/sink/Flink21TableSinkITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/sink/Flink21TableSinkITCase.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.sink;
+package org.apache.fluss.flink.sink;
/** IT case for {@link FlinkTableSink} in Flink 2.1. */
public class Flink21TableSinkITCase extends FlinkTableSinkITCase {}
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceBatchITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceBatchITCase.java
index f96de12e0..a7839b0ab 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceBatchITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceBatchITCase.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source;
+package org.apache.fluss.flink.source;
/** IT case for batch source in Flink 2.1. */
public class Flink21TableSourceBatchITCase extends FlinkTableSourceBatchITCase {}
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceFailOverITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceFailOverITCase.java
index 150c142c6..0a27d6d98 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceFailOverITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceFailOverITCase.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source;
+package org.apache.fluss.flink.source;
/** IT case for source failover and recovery in Flink 2.1. */
public class Flink21TableSourceFailOverITCase extends FlinkTableSourceFailOverITCase {}
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceITCase.java
index 22078bb15..e9301889f 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceITCase.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source;
+package org.apache.fluss.flink.source;
/** IT case for {@link FlinkTableSource} in Flink 2.1. */
public class Flink21TableSourceITCase extends FlinkTableSourceITCase {}
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
index 7b3abe86d..8485c2f21 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.adapter;
+package org.apache.fluss.flink.adapter;
import org.apache.flink.table.api.Schema;
import org.apache.flink.table.catalog.CatalogTable;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
index bc97e2f22..3a33150db 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.adapter;
+package org.apache.fluss.flink.adapter;
import org.apache.flink.api.connector.source.SourceSplit;
import org.apache.flink.configuration.Configuration;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
index f6b858cbb..72a4540ea 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.adapter;
+package org.apache.fluss.flink.adapter;
import org.apache.flink.api.connector.source.SourceReaderContext;
import org.apache.flink.api.connector.source.SourceSplit;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeCatalog.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeCatalog.java
index d6f56d13b..ff1846fcb 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeCatalog.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeCatalog.java
@@ -15,12 +15,6 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeCatalog.java
-package com.alibaba.fluss.flink.lake;
-========
-package org.apache.fluss.flink.lakehouse;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeCatalog.java
-
import org.apache.flink.table.catalog.CatalogBaseTable;
import org.apache.flink.table.catalog.ObjectPath;
import org.apache.flink.table.catalog.exceptions.CatalogException;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeRecordRecordEmitter.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeRecordRecordEmitter.java
index 274fda6cb..566ef053c 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeRecordRecordEmitter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeRecordRecordEmitter.java
@@ -15,25 +15,12 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeRecordRecordEmitter.java
-package com.alibaba.fluss.flink.lake;
-
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.flink.lake.state.LakeSnapshotAndFlussLogSplitState;
-import com.alibaba.fluss.flink.lake.state.LakeSnapshotSplitState;
-import com.alibaba.fluss.flink.source.reader.RecordAndPos;
-import com.alibaba.fluss.flink.source.split.SourceSplitState;
-========
-package org.apache.fluss.flink.lakehouse;
-
+import org.apache.flink.api.connector.source.SourceOutput;
import org.apache.fluss.client.table.scanner.ScanRecord;
-import org.apache.fluss.flink.lakehouse.paimon.split.PaimonSnapshotAndFlussLogSplitState;
-import org.apache.fluss.flink.lakehouse.paimon.split.PaimonSnapshotSplitState;
+import org.apache.fluss.flink.lake.state.LakeSnapshotAndFlussLogSplitState;
+import org.apache.fluss.flink.lake.state.LakeSnapshotSplitState;
import org.apache.fluss.flink.source.reader.RecordAndPos;
import org.apache.fluss.flink.source.split.SourceSplitState;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeRecordRecordEmitter.java
-
-import org.apache.flink.api.connector.source.SourceOutput;
import java.util.function.BiConsumer;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitGenerator.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitGenerator.java
index 320c6539f..915d1f076 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitGenerator.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitGenerator.java
@@ -15,35 +15,18 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitGenerator.java
-package com.alibaba.fluss.flink.lake;
-
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.metadata.LakeSnapshot;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotSplit;
-import com.alibaba.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
-import com.alibaba.fluss.flink.source.split.LogSplit;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.PartitionInfo;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-========
-package org.apache.fluss.flink.lakehouse;
-
import org.apache.fluss.client.admin.Admin;
import org.apache.fluss.client.metadata.LakeSnapshot;
-import org.apache.fluss.flink.lakehouse.paimon.split.PaimonSnapshotAndFlussLogSplit;
-import org.apache.fluss.flink.lakehouse.paimon.split.PaimonSnapshotSplit;
+import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
+import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
import org.apache.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
import org.apache.fluss.flink.source.split.LogSplit;
import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
import org.apache.fluss.metadata.PartitionInfo;
import org.apache.fluss.metadata.TableBucket;
import org.apache.fluss.metadata.TableInfo;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeSplitGenerator.java
import javax.annotation.Nullable;
@@ -58,13 +41,8 @@ import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitGenerator.java
-import static com.alibaba.fluss.client.table.scanner.log.LogScanner.EARLIEST_OFFSET;
-import static com.alibaba.fluss.metadata.ResolvedPartitionSpec.PARTITION_SPEC_SEPARATOR;
-========
import static org.apache.fluss.client.table.scanner.log.LogScanner.EARLIEST_OFFSET;
-import static org.apache.fluss.flink.utils.DataLakeUtils.extractLakeCatalogProperties;
-import static org.apache.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.metadata.ResolvedPartitionSpec.PARTITION_SPEC_SEPARATOR;
>>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeSplitGenerator.java
/** A generator for lake splits. */
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitReaderGenerator.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitReaderGenerator.java
index 86a72f66c..36958736a 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitReaderGenerator.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitReaderGenerator.java
@@ -15,17 +15,17 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake;
+package org.apache.fluss.flink.lake;
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.flink.lake.reader.LakeSnapshotAndLogSplitScanner;
-import com.alibaba.fluss.flink.lake.reader.LakeSnapshotScanner;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotSplit;
-import com.alibaba.fluss.flink.source.reader.BoundedSplitReader;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
+import org.apache.fluss.client.table.Table;
+import org.apache.fluss.flink.lake.reader.LakeSnapshotAndLogSplitScanner;
+import org.apache.fluss.flink.lake.reader.LakeSnapshotScanner;
+import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
+import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
+import org.apache.fluss.flink.source.reader.BoundedSplitReader;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
import javax.annotation.Nullable;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitSerializer.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitSerializer.java
index 0bfb897a6..9407cb749 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitSerializer.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitSerializer.java
@@ -15,18 +15,17 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake;
-
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotSplit;
-import com.alibaba.fluss.flink.source.split.LogSplit;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.TableBucket;
+package org.apache.fluss.flink.lake;
import org.apache.flink.core.memory.DataInputDeserializer;
import org.apache.flink.core.memory.DataOutputSerializer;
+import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
+import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
+import org.apache.fluss.flink.source.split.LogSplit;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.TableBucket;
import javax.annotation.Nullable;
@@ -34,8 +33,8 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import static com.alibaba.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit.LAKE_SNAPSHOT_FLUSS_LOG_SPLIT_KIND;
-import static com.alibaba.fluss.flink.lake.split.LakeSnapshotSplit.LAKE_SNAPSHOT_SPLIT_KIND;
+import static org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit.LAKE_SNAPSHOT_FLUSS_LOG_SPLIT_KIND;
+import static org.apache.fluss.flink.lake.split.LakeSnapshotSplit.LAKE_SNAPSHOT_SPLIT_KIND;
/** A serializer for lake split. */
public class LakeSplitSerializer {
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitStateInitializer.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitStateInitializer.java
index 18005f3f9..0333d1366 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitStateInitializer.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitStateInitializer.java
@@ -15,22 +15,10 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitStateInitializer.java
-package com.alibaba.fluss.flink.lake;
-
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotSplit;
-import com.alibaba.fluss.flink.lake.state.LakeSnapshotAndFlussLogSplitState;
-import com.alibaba.fluss.flink.lake.state.LakeSnapshotSplitState;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.flink.source.split.SourceSplitState;
-========
-package org.apache.fluss.flink.lakehouse;
-
-import org.apache.fluss.flink.lakehouse.paimon.split.PaimonSnapshotAndFlussLogSplit;
-import org.apache.fluss.flink.lakehouse.paimon.split.PaimonSnapshotAndFlussLogSplitState;
-import org.apache.fluss.flink.lakehouse.paimon.split.PaimonSnapshotSplit;
-import org.apache.fluss.flink.lakehouse.paimon.split.PaimonSnapshotSplitState;
+import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
+import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
+import org.apache.fluss.flink.lake.state.LakeSnapshotAndFlussLogSplitState;
+import org.apache.fluss.flink.lake.state.LakeSnapshotSplitState;
import org.apache.fluss.flink.source.split.SourceSplitBase;
import org.apache.fluss.flink.source.split.SourceSplitState;
>>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeSplitStateInitializer.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeTableFactory.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeTableFactory.java
index b74340498..b7f0da3da 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeTableFactory.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeTableFactory.java
@@ -15,12 +15,6 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeTableFactory.java
-package com.alibaba.fluss.flink.lake;
-========
-package org.apache.fluss.flink.lakehouse;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeTableFactory.java
-
import org.apache.flink.table.catalog.ObjectIdentifier;
import org.apache.flink.table.connector.source.DynamicTableSource;
import org.apache.flink.table.factories.DynamicTableFactory;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/KeyValueRow.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/KeyValueRow.java
index abb84a687..f8e7bd479 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/KeyValueRow.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/KeyValueRow.java
@@ -16,10 +16,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake.reader;
+package org.apache.fluss.flink.lake.reader;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.ProjectedRow;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.ProjectedRow;
/** An {@link InternalRow} with the key part. */
public class KeyValueRow {
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotAndLogSplitScanner.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotAndLogSplitScanner.java
index e3c835ee0..e04256911 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotAndLogSplitScanner.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotAndLogSplitScanner.java
@@ -16,23 +16,23 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake.reader;
-
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.client.table.scanner.batch.BatchScanner;
-import com.alibaba.fluss.client.table.scanner.log.LogScanner;
-import com.alibaba.fluss.client.table.scanner.log.ScanRecords;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.lake.source.RecordReader;
-import com.alibaba.fluss.lake.source.SortedRecordReader;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.utils.CloseableIterator;
+package org.apache.fluss.flink.lake.reader;
+
+import org.apache.fluss.client.table.Table;
+import org.apache.fluss.client.table.scanner.ScanRecord;
+import org.apache.fluss.client.table.scanner.batch.BatchScanner;
+import org.apache.fluss.client.table.scanner.log.LogScanner;
+import org.apache.fluss.client.table.scanner.log.ScanRecords;
+import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.lake.source.RecordReader;
+import org.apache.fluss.lake.source.SortedRecordReader;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.record.ChangeType;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.utils.CloseableIterator;
import javax.annotation.Nullable;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotScanner.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotScanner.java
index 8a51482ba..97c57256f 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotScanner.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotScanner.java
@@ -15,15 +15,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake.reader;
-
-import com.alibaba.fluss.client.table.scanner.batch.BatchScanner;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotSplit;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.utils.CloseableIterator;
+package org.apache.fluss.flink.lake.reader;
+
+import org.apache.fluss.client.table.scanner.batch.BatchScanner;
+import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.utils.CloseableIterator;
import javax.annotation.Nullable;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
index 17e6c8f8a..4a85d9b9e 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
@@ -16,18 +16,10 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
-package com.alibaba.fluss.flink.lake.reader;
-
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.ProjectedRow;
-import com.alibaba.fluss.utils.CloseableIterator;
-========
-package org.apache.fluss.flink.lakehouse.paimon.reader;
-
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.ProjectedRow;
import org.apache.fluss.utils.CloseableIterator;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/SortMergeReader.java
import javax.annotation.Nullable;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotAndFlussLogSplit.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotAndFlussLogSplit.java
index 3c5917414..c95bb51d4 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotAndFlussLogSplit.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotAndFlussLogSplit.java
@@ -16,11 +16,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake.split;
+package org.apache.fluss.flink.lake.split;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.TableBucket;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.TableBucket;
import javax.annotation.Nullable;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotSplit.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotSplit.java
index b2460177a..1cc883d3f 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotSplit.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotSplit.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake.split;
+package org.apache.fluss.flink.lake.split;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.TableBucket;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.TableBucket;
import javax.annotation.Nullable;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotAndFlussLogSplitState.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotAndFlussLogSplitState.java
index 65dda119f..c7ddf59d1 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotAndFlussLogSplitState.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotAndFlussLogSplitState.java
@@ -16,11 +16,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake.state;
+package org.apache.fluss.flink.lake.state;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.flink.source.split.SourceSplitState;
+import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.flink.source.split.SourceSplitState;
/** The state of {@link LakeSnapshotAndFlussLogSplit}. */
public class LakeSnapshotAndFlussLogSplitState extends SourceSplitState {
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotSplitState.java b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotSplitState.java
index cf999031c..9d976ad64 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotSplitState.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotSplitState.java
@@ -15,15 +15,8 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotSplitState.java
-package com.alibaba.fluss.flink.lake.state;
-
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotSplit;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.flink.source.split.SourceSplitState;
-========
-package org.apache.fluss.flink.lakehouse.paimon.split;
-
+import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
import org.apache.fluss.flink.source.split.SourceSplitState;
>>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/split/PaimonSnapshotAndFlussLogSplitState.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkCatalog.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkCatalog.java
index d2114bd89..43cecead7 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkCatalog.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkCatalog.java
@@ -15,28 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.catalog;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.exception.InvalidTableException;
-import com.alibaba.fluss.flink.lake.LakeCatalog;
-import com.alibaba.fluss.flink.procedure.ProcedureManager;
-import com.alibaba.fluss.flink.utils.CatalogExceptionUtils;
-import com.alibaba.fluss.flink.utils.DataLakeUtils;
-import com.alibaba.fluss.flink.utils.FlinkConversions;
-import com.alibaba.fluss.metadata.DatabaseDescriptor;
-import com.alibaba.fluss.metadata.PartitionInfo;
-import com.alibaba.fluss.metadata.PartitionSpec;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.utils.ExceptionUtils;
-import com.alibaba.fluss.utils.IOUtils;
+package org.apache.fluss.flink.catalog;
import org.apache.flink.annotation.VisibleForTesting;
import org.apache.flink.table.catalog.AbstractCatalog;
@@ -69,6 +48,26 @@ import org.apache.flink.table.catalog.stats.CatalogTableStatistics;
import org.apache.flink.table.expressions.Expression;
import org.apache.flink.table.factories.Factory;
import org.apache.flink.table.procedures.Procedure;
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.exception.InvalidTableException;
+import org.apache.fluss.flink.lake.LakeCatalog;
+import org.apache.fluss.flink.procedure.ProcedureManager;
+import org.apache.fluss.flink.utils.CatalogExceptionUtils;
+import org.apache.fluss.flink.utils.DataLakeUtils;
+import org.apache.fluss.flink.utils.FlinkConversions;
+import org.apache.fluss.metadata.DatabaseDescriptor;
+import org.apache.fluss.metadata.PartitionInfo;
+import org.apache.fluss.metadata.PartitionSpec;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.utils.ExceptionUtils;
+import org.apache.fluss.utils.IOUtils;
import javax.annotation.Nullable;
@@ -80,15 +79,15 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
-import static com.alibaba.fluss.config.ConfigOptions.BOOTSTRAP_SERVERS;
-import static com.alibaba.fluss.flink.utils.CatalogExceptionUtils.isPartitionAlreadyExists;
-import static com.alibaba.fluss.flink.utils.CatalogExceptionUtils.isPartitionInvalid;
-import static com.alibaba.fluss.flink.utils.CatalogExceptionUtils.isPartitionNotExist;
-import static com.alibaba.fluss.flink.utils.CatalogExceptionUtils.isTableInvalid;
-import static com.alibaba.fluss.flink.utils.CatalogExceptionUtils.isTableNotExist;
-import static com.alibaba.fluss.flink.utils.CatalogExceptionUtils.isTableNotPartitioned;
-import static com.alibaba.fluss.flink.utils.FlinkConversions.toFlussDatabase;
import static org.apache.flink.util.Preconditions.checkArgument;
+import static org.apache.fluss.config.ConfigOptions.BOOTSTRAP_SERVERS;
+import static org.apache.fluss.flink.utils.CatalogExceptionUtils.isPartitionAlreadyExists;
+import static org.apache.fluss.flink.utils.CatalogExceptionUtils.isPartitionInvalid;
+import static org.apache.fluss.flink.utils.CatalogExceptionUtils.isPartitionNotExist;
+import static org.apache.fluss.flink.utils.CatalogExceptionUtils.isTableInvalid;
+import static org.apache.fluss.flink.utils.CatalogExceptionUtils.isTableNotExist;
+import static org.apache.fluss.flink.utils.CatalogExceptionUtils.isTableNotPartitioned;
+import static org.apache.fluss.flink.utils.FlinkConversions.toFlussDatabase;
/**
* A Flink Catalog for fluss.
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkTableFactory.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkTableFactory.java
index c943aa5f3..8ecef4eb6 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkTableFactory.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkTableFactory.java
@@ -15,17 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.catalog;
-
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.flink.FlinkConnectorOptions;
-import com.alibaba.fluss.flink.lake.LakeTableFactory;
-import com.alibaba.fluss.flink.sink.FlinkTableSink;
-import com.alibaba.fluss.flink.source.FlinkTableSource;
-import com.alibaba.fluss.flink.utils.FlinkConnectorOptionsUtils;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.TablePath;
+package org.apache.fluss.flink.catalog;
import org.apache.flink.api.common.RuntimeExecutionMode;
import org.apache.flink.configuration.ConfigOption;
@@ -45,6 +35,15 @@ import org.apache.flink.table.factories.DynamicTableSinkFactory;
import org.apache.flink.table.factories.DynamicTableSourceFactory;
import org.apache.flink.table.factories.FactoryUtil;
import org.apache.flink.table.types.logical.RowType;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.flink.FlinkConnectorOptions;
+import org.apache.fluss.flink.lake.LakeTableFactory;
+import org.apache.fluss.flink.sink.FlinkTableSink;
+import org.apache.fluss.flink.source.FlinkTableSource;
+import org.apache.fluss.flink.utils.FlinkConnectorOptionsUtils;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.TablePath;
import java.io.File;
import java.time.ZoneId;
@@ -57,13 +56,13 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
-import static com.alibaba.fluss.config.ConfigOptions.TABLE_DATALAKE_FORMAT;
-import static com.alibaba.fluss.config.FlussConfigUtils.CLIENT_PREFIX;
-import static com.alibaba.fluss.flink.catalog.FlinkCatalog.LAKE_TABLE_SPLITTER;
-import static com.alibaba.fluss.flink.utils.DataLakeUtils.getDatalakeFormat;
-import static com.alibaba.fluss.flink.utils.FlinkConnectorOptionsUtils.getBucketKeyIndexes;
-import static com.alibaba.fluss.flink.utils.FlinkConnectorOptionsUtils.getBucketKeys;
-import static com.alibaba.fluss.flink.utils.FlinkConversions.toFlinkOption;
+import static org.apache.fluss.config.ConfigOptions.TABLE_DATALAKE_FORMAT;
+import static org.apache.fluss.config.FlussConfigUtils.CLIENT_PREFIX;
+import static org.apache.fluss.flink.catalog.FlinkCatalog.LAKE_TABLE_SPLITTER;
+import static org.apache.fluss.flink.utils.DataLakeUtils.getDatalakeFormat;
+import static org.apache.fluss.flink.utils.FlinkConnectorOptionsUtils.getBucketKeyIndexes;
+import static org.apache.fluss.flink.utils.FlinkConnectorOptionsUtils.getBucketKeys;
+import static org.apache.fluss.flink.utils.FlinkConversions.toFlinkOption;
/** Factory to create table source and table sink for Fluss. */
public class FlinkTableFactory implements DynamicTableSourceFactory, DynamicTableSinkFactory {
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkSource.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkSource.java
index 1b4f750b0..47a38e4c7 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkSource.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkSource.java
@@ -15,26 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.flink.source.deserializer.DeserializerInitContextImpl;
-import com.alibaba.fluss.flink.source.deserializer.FlussDeserializationSchema;
-import com.alibaba.fluss.flink.source.emitter.FlinkRecordEmitter;
-import com.alibaba.fluss.flink.source.enumerator.FlinkSourceEnumerator;
-import com.alibaba.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
-import com.alibaba.fluss.flink.source.metrics.FlinkSourceReaderMetrics;
-import com.alibaba.fluss.flink.source.reader.FlinkSourceReader;
-import com.alibaba.fluss.flink.source.reader.RecordAndPos;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.flink.source.split.SourceSplitSerializer;
-import com.alibaba.fluss.flink.source.state.FlussSourceEnumeratorStateSerializer;
-import com.alibaba.fluss.flink.source.state.SourceEnumeratorState;
-import com.alibaba.fluss.flink.utils.PushdownUtils.FieldEqual;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.flink.source;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.api.connector.source.Boundedness;
@@ -47,12 +28,30 @@ import org.apache.flink.api.java.typeutils.ResultTypeQueryable;
import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
import org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue;
import org.apache.flink.core.io.SimpleVersionedSerializer;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.flink.source.deserializer.DeserializerInitContextImpl;
+import org.apache.fluss.flink.source.deserializer.FlussDeserializationSchema;
+import org.apache.fluss.flink.source.emitter.FlinkRecordEmitter;
+import org.apache.fluss.flink.source.enumerator.FlinkSourceEnumerator;
+import org.apache.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
+import org.apache.fluss.flink.source.metrics.FlinkSourceReaderMetrics;
+import org.apache.fluss.flink.source.reader.FlinkSourceReader;
+import org.apache.fluss.flink.source.reader.RecordAndPos;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.flink.source.split.SourceSplitSerializer;
+import org.apache.fluss.flink.source.state.FlussSourceEnumeratorStateSerializer;
+import org.apache.fluss.flink.source.state.SourceEnumeratorState;
+import org.apache.fluss.flink.utils.PushdownUtils.FieldEqual;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.types.RowType;
import javax.annotation.Nullable;
import java.util.List;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Flink source for Fluss. */
public class FlinkSource<OUT>
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkTableSource.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkTableSource.java
index 15ee21c72..19df8fe24 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkTableSource.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkTableSource.java
@@ -15,26 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.flink.FlinkConnectorOptions;
-import com.alibaba.fluss.flink.source.deserializer.RowDataDeserializationSchema;
-import com.alibaba.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
-import com.alibaba.fluss.flink.source.lookup.FlinkAsyncLookupFunction;
-import com.alibaba.fluss.flink.source.lookup.FlinkLookupFunction;
-import com.alibaba.fluss.flink.source.lookup.LookupNormalizer;
-import com.alibaba.fluss.flink.utils.FlinkConnectorOptionsUtils;
-import com.alibaba.fluss.flink.utils.FlinkConversions;
-import com.alibaba.fluss.flink.utils.PushdownUtils;
-import com.alibaba.fluss.flink.utils.PushdownUtils.FieldEqual;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.MergeEngineType;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.predicate.Predicate;
-import com.alibaba.fluss.predicate.PredicateBuilder;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.flink.source;
import org.apache.flink.annotation.VisibleForTesting;
import org.apache.flink.api.common.typeinfo.TypeInformation;
@@ -68,6 +49,24 @@ import org.apache.flink.table.functions.FunctionDefinition;
import org.apache.flink.table.functions.LookupFunction;
import org.apache.flink.table.types.DataType;
import org.apache.flink.table.types.logical.LogicalType;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.flink.FlinkConnectorOptions;
+import org.apache.fluss.flink.source.deserializer.RowDataDeserializationSchema;
+import org.apache.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
+import org.apache.fluss.flink.source.lookup.FlinkAsyncLookupFunction;
+import org.apache.fluss.flink.source.lookup.FlinkLookupFunction;
+import org.apache.fluss.flink.source.lookup.LookupNormalizer;
+import org.apache.fluss.flink.utils.FlinkConnectorOptionsUtils;
+import org.apache.fluss.flink.utils.FlinkConversions;
+import org.apache.fluss.flink.utils.PushdownUtils;
+import org.apache.fluss.flink.utils.PushdownUtils.FieldEqual;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.MergeEngineType;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.predicate.Predicate;
+import org.apache.fluss.predicate.PredicateBuilder;
+import org.apache.fluss.types.RowType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -82,11 +81,11 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.flink.utils.LakeSourceUtils.createLakeSource;
-import static com.alibaba.fluss.flink.utils.PushdownUtils.ValueConversion.FLINK_INTERNAL_VALUE;
-import static com.alibaba.fluss.flink.utils.PushdownUtils.ValueConversion.FLUSS_INTERNAL_VALUE;
-import static com.alibaba.fluss.flink.utils.PushdownUtils.extractFieldEquals;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.flink.utils.LakeSourceUtils.createLakeSource;
+import static org.apache.fluss.flink.utils.PushdownUtils.ValueConversion.FLINK_INTERNAL_VALUE;
+import static org.apache.fluss.flink.utils.PushdownUtils.ValueConversion.FLUSS_INTERNAL_VALUE;
+import static org.apache.fluss.flink.utils.PushdownUtils.extractFieldEquals;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Flink table source to scan Fluss data. */
public class FlinkTableSource
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/deserializer/JsonStringDeserializationSchema.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/deserializer/JsonStringDeserializationSchema.java
index 3ff9e0b50..e06c144a0 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/deserializer/JsonStringDeserializationSchema.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/deserializer/JsonStringDeserializationSchema.java
@@ -15,20 +15,19 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source.deserializer;
-
-import com.alibaba.fluss.annotation.PublicEvolving;
-import com.alibaba.fluss.flink.utils.FlussRowToJsonConverters;
-import com.alibaba.fluss.flink.utils.TimestampFormat;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.flink.source.deserializer;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.api.common.typeinfo.Types;
+import org.apache.fluss.annotation.PublicEvolving;
+import org.apache.fluss.flink.utils.FlussRowToJsonConverters;
+import org.apache.fluss.flink.utils.TimestampFormat;
+import org.apache.fluss.record.LogRecord;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.SerializationFeature;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.node.ObjectNode;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import org.apache.fluss.types.RowType;
import java.util.LinkedHashMap;
import java.util.Map;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/emitter/FlinkRecordEmitter.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/emitter/FlinkRecordEmitter.java
index 84602ca35..5ef300f7c 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/emitter/FlinkRecordEmitter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/emitter/FlinkRecordEmitter.java
@@ -15,18 +15,17 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source.emitter;
-
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.flink.lake.LakeRecordRecordEmitter;
-import com.alibaba.fluss.flink.source.deserializer.FlussDeserializationSchema;
-import com.alibaba.fluss.flink.source.reader.FlinkSourceReader;
-import com.alibaba.fluss.flink.source.reader.RecordAndPos;
-import com.alibaba.fluss.flink.source.split.HybridSnapshotLogSplitState;
-import com.alibaba.fluss.flink.source.split.SourceSplitState;
+package org.apache.fluss.flink.source.emitter;
import org.apache.flink.api.connector.source.SourceOutput;
import org.apache.flink.connector.base.source.reader.RecordEmitter;
+import org.apache.fluss.client.table.scanner.ScanRecord;
+import org.apache.fluss.flink.lake.LakeRecordRecordEmitter;
+import org.apache.fluss.flink.source.deserializer.FlussDeserializationSchema;
+import org.apache.fluss.flink.source.reader.FlinkSourceReader;
+import org.apache.fluss.flink.source.reader.RecordAndPos;
+import org.apache.fluss.flink.source.split.HybridSnapshotLogSplitState;
+import org.apache.fluss.flink.source.split.SourceSplitState;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/enumerator/FlinkSourceEnumerator.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/enumerator/FlinkSourceEnumerator.java
index 3d29cbbf1..155220b7d 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/enumerator/FlinkSourceEnumerator.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/enumerator/FlinkSourceEnumerator.java
@@ -15,35 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source.enumerator;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.metadata.KvSnapshots;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.flink.lake.LakeSplitGenerator;
-import com.alibaba.fluss.flink.source.enumerator.initializer.BucketOffsetsRetrieverImpl;
-import com.alibaba.fluss.flink.source.enumerator.initializer.NoStoppingOffsetsInitializer;
-import com.alibaba.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
-import com.alibaba.fluss.flink.source.enumerator.initializer.OffsetsInitializer.BucketOffsetsRetriever;
-import com.alibaba.fluss.flink.source.enumerator.initializer.SnapshotOffsetsInitializer;
-import com.alibaba.fluss.flink.source.event.PartitionBucketsUnsubscribedEvent;
-import com.alibaba.fluss.flink.source.event.PartitionsRemovedEvent;
-import com.alibaba.fluss.flink.source.split.HybridSnapshotLogSplit;
-import com.alibaba.fluss.flink.source.split.LogSplit;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.flink.source.state.SourceEnumeratorState;
-import com.alibaba.fluss.flink.utils.PushdownUtils.FieldEqual;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.PartitionInfo;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.types.DataField;
-import com.alibaba.fluss.utils.ExceptionUtils;
+package org.apache.fluss.flink.source.enumerator;
import org.apache.flink.annotation.VisibleForTesting;
import org.apache.flink.api.connector.source.SourceEvent;
@@ -51,6 +23,33 @@ import org.apache.flink.api.connector.source.SplitEnumerator;
import org.apache.flink.api.connector.source.SplitEnumeratorContext;
import org.apache.flink.api.connector.source.SplitsAssignment;
import org.apache.flink.util.FlinkRuntimeException;
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.client.metadata.KvSnapshots;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.flink.lake.LakeSplitGenerator;
+import org.apache.fluss.flink.source.enumerator.initializer.BucketOffsetsRetrieverImpl;
+import org.apache.fluss.flink.source.enumerator.initializer.NoStoppingOffsetsInitializer;
+import org.apache.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
+import org.apache.fluss.flink.source.enumerator.initializer.OffsetsInitializer.BucketOffsetsRetriever;
+import org.apache.fluss.flink.source.enumerator.initializer.SnapshotOffsetsInitializer;
+import org.apache.fluss.flink.source.event.PartitionBucketsUnsubscribedEvent;
+import org.apache.fluss.flink.source.event.PartitionsRemovedEvent;
+import org.apache.fluss.flink.source.split.HybridSnapshotLogSplit;
+import org.apache.fluss.flink.source.split.LogSplit;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.flink.source.state.SourceEnumeratorState;
+import org.apache.fluss.flink.utils.PushdownUtils.FieldEqual;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.PartitionInfo;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.types.DataField;
+import org.apache.fluss.utils.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -71,8 +70,8 @@ import java.util.OptionalLong;
import java.util.Set;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkState;
/**
* An implementation of {@link SplitEnumerator} for the data of Fluss.
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceReader.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceReader.java
index 3efe46aa6..161d30cee 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceReader.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceReader.java
@@ -15,30 +15,29 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source.reader;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.flink.adapter.SingleThreadMultiplexSourceReaderBaseAdapter;
-import com.alibaba.fluss.flink.lake.LakeSplitStateInitializer;
-import com.alibaba.fluss.flink.source.emitter.FlinkRecordEmitter;
-import com.alibaba.fluss.flink.source.event.PartitionBucketsUnsubscribedEvent;
-import com.alibaba.fluss.flink.source.event.PartitionsRemovedEvent;
-import com.alibaba.fluss.flink.source.metrics.FlinkSourceReaderMetrics;
-import com.alibaba.fluss.flink.source.reader.fetcher.FlinkSourceFetcherManager;
-import com.alibaba.fluss.flink.source.split.HybridSnapshotLogSplitState;
-import com.alibaba.fluss.flink.source.split.LogSplitState;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.flink.source.split.SourceSplitState;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.flink.source.reader;
import org.apache.flink.api.connector.source.SourceEvent;
import org.apache.flink.api.connector.source.SourceReaderContext;
import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
import org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.flink.adapter.SingleThreadMultiplexSourceReaderBaseAdapter;
+import org.apache.fluss.flink.lake.LakeSplitStateInitializer;
+import org.apache.fluss.flink.source.emitter.FlinkRecordEmitter;
+import org.apache.fluss.flink.source.event.PartitionBucketsUnsubscribedEvent;
+import org.apache.fluss.flink.source.event.PartitionsRemovedEvent;
+import org.apache.fluss.flink.source.metrics.FlinkSourceReaderMetrics;
+import org.apache.fluss.flink.source.reader.fetcher.FlinkSourceFetcherManager;
+import org.apache.fluss.flink.source.split.HybridSnapshotLogSplitState;
+import org.apache.fluss.flink.source.split.LogSplitState;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.flink.source.split.SourceSplitState;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.types.RowType;
import javax.annotation.Nullable;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceSplitReader.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceSplitReader.java
index 9dfe4a028..208afc2e6 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceSplitReader.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceSplitReader.java
@@ -15,31 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source.reader;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.client.table.scanner.batch.BatchScanner;
-import com.alibaba.fluss.client.table.scanner.log.LogScanner;
-import com.alibaba.fluss.client.table.scanner.log.ScanRecords;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.PartitionNotExistException;
-import com.alibaba.fluss.flink.lake.LakeSplitReaderGenerator;
-import com.alibaba.fluss.flink.metrics.FlinkMetricRegistry;
-import com.alibaba.fluss.flink.source.metrics.FlinkSourceReaderMetrics;
-import com.alibaba.fluss.flink.source.split.HybridSnapshotLogSplit;
-import com.alibaba.fluss.flink.source.split.LogSplit;
-import com.alibaba.fluss.flink.source.split.SnapshotSplit;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.CloseableIterator;
-import com.alibaba.fluss.utils.ExceptionUtils;
+package org.apache.fluss.flink.source.reader;
import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
import org.apache.flink.connector.base.source.reader.splitreader.SplitReader;
@@ -47,6 +23,29 @@ import org.apache.flink.connector.base.source.reader.splitreader.SplitsAddition;
import org.apache.flink.connector.base.source.reader.splitreader.SplitsChange;
import org.apache.flink.table.api.ValidationException;
import org.apache.flink.util.FlinkRuntimeException;
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.table.Table;
+import org.apache.fluss.client.table.scanner.ScanRecord;
+import org.apache.fluss.client.table.scanner.batch.BatchScanner;
+import org.apache.fluss.client.table.scanner.log.LogScanner;
+import org.apache.fluss.client.table.scanner.log.ScanRecords;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.PartitionNotExistException;
+import org.apache.fluss.flink.lake.LakeSplitReaderGenerator;
+import org.apache.fluss.flink.metrics.FlinkMetricRegistry;
+import org.apache.fluss.flink.source.metrics.FlinkSourceReaderMetrics;
+import org.apache.fluss.flink.source.split.HybridSnapshotLogSplit;
+import org.apache.fluss.flink.source.split.LogSplit;
+import org.apache.fluss.flink.source.split.SnapshotSplit;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.CloseableIterator;
+import org.apache.fluss.utils.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -67,8 +66,8 @@ import java.util.Optional;
import java.util.Queue;
import java.util.Set;
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkArgument;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/**
* An implementation of {@link SplitReader} for reading splits into {@link RecordAndPos}.
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/fetcher/FlinkSourceFetcherManager.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/fetcher/FlinkSourceFetcherManager.java
index 001cd4a16..a9a360b1d 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/fetcher/FlinkSourceFetcherManager.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/fetcher/FlinkSourceFetcherManager.java
@@ -15,13 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source.reader.fetcher;
-
-import com.alibaba.fluss.flink.adapter.SingleThreadFetcherManagerAdapter;
-import com.alibaba.fluss.flink.source.reader.FlinkSourceSplitReader;
-import com.alibaba.fluss.flink.source.reader.RecordAndPos;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.metadata.TableBucket;
+package org.apache.fluss.flink.source.reader.fetcher;
import org.apache.flink.annotation.Internal;
import org.apache.flink.configuration.Configuration;
@@ -31,6 +25,11 @@ import org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher;
import org.apache.flink.connector.base.source.reader.fetcher.SplitFetcherTask;
import org.apache.flink.connector.base.source.reader.splitreader.SplitReader;
import org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue;
+import org.apache.fluss.flink.adapter.SingleThreadFetcherManagerAdapter;
+import org.apache.fluss.flink.source.reader.FlinkSourceSplitReader;
+import org.apache.fluss.flink.source.reader.RecordAndPos;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.metadata.TableBucket;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/split/SourceSplitSerializer.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/split/SourceSplitSerializer.java
index cdbbd3216..b31ef23c1 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/split/SourceSplitSerializer.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/split/SourceSplitSerializer.java
@@ -15,22 +15,21 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source.split;
-
-import com.alibaba.fluss.flink.lake.LakeSplitSerializer;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.TableBucket;
+package org.apache.fluss.flink.source.split;
import org.apache.flink.core.io.SimpleVersionedSerializer;
import org.apache.flink.core.memory.DataInputDeserializer;
import org.apache.flink.core.memory.DataOutputSerializer;
+import org.apache.fluss.flink.lake.LakeSplitSerializer;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.TableBucket;
import javax.annotation.Nullable;
import java.io.IOException;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** A serializer for the {@link SourceSplitBase}. */
public class SourceSplitSerializer implements SimpleVersionedSerializer<SourceSplitBase> {
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshot.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshot.java
index a9207ca49..b0ddc062a 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshot.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshot.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.tiering.committer;
+package org.apache.fluss.flink.tiering.committer;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.utils.types.Tuple2;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.utils.types.Tuple2;
import java.util.HashMap;
import java.util.Map;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitter.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitter.java
index e1b88e320..a0adc775b 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitter.java
@@ -15,24 +15,24 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.tiering.committer;
+package org.apache.fluss.flink.tiering.committer;
-import com.alibaba.fluss.client.metadata.MetadataUpdater;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.committer.CommittedLakeSnapshot;
-import com.alibaba.fluss.metadata.ResolvedPartitionSpec;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metrics.registry.MetricRegistry;
-import com.alibaba.fluss.rpc.GatewayClientProxy;
-import com.alibaba.fluss.rpc.RpcClient;
-import com.alibaba.fluss.rpc.gateway.CoordinatorGateway;
-import com.alibaba.fluss.rpc.messages.CommitLakeTableSnapshotRequest;
-import com.alibaba.fluss.rpc.messages.PbLakeTableOffsetForBucket;
-import com.alibaba.fluss.rpc.messages.PbLakeTableSnapshotInfo;
-import com.alibaba.fluss.rpc.metrics.ClientMetricGroup;
-import com.alibaba.fluss.utils.ExceptionUtils;
-import com.alibaba.fluss.utils.types.Tuple2;
+import org.apache.fluss.client.metadata.MetadataUpdater;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.metadata.ResolvedPartitionSpec;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metrics.registry.MetricRegistry;
+import org.apache.fluss.rpc.GatewayClientProxy;
+import org.apache.fluss.rpc.RpcClient;
+import org.apache.fluss.rpc.gateway.CoordinatorGateway;
+import org.apache.fluss.rpc.messages.CommitLakeTableSnapshotRequest;
+import org.apache.fluss.rpc.messages.PbLakeTableOffsetForBucket;
+import org.apache.fluss.rpc.messages.PbLakeTableSnapshotInfo;
+import org.apache.fluss.rpc.metrics.ClientMetricGroup;
+import org.apache.fluss.utils.ExceptionUtils;
+import org.apache.fluss.utils.types.Tuple2;
import java.io.IOException;
import java.util.Map;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperator.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperator.java
index 9ba32d0d6..5e7e5d5f9 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperator.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperator.java
@@ -15,29 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.tiering.committer;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.metadata.LakeSnapshot;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.LakeTableSnapshotNotExistException;
-import com.alibaba.fluss.flink.tiering.event.FailedTieringEvent;
-import com.alibaba.fluss.flink.tiering.event.FinishedTieringEvent;
-import com.alibaba.fluss.flink.tiering.source.TableBucketWriteResult;
-import com.alibaba.fluss.flink.tiering.source.TieringSource;
-import com.alibaba.fluss.lake.committer.BucketOffset;
-import com.alibaba.fluss.lake.committer.CommittedLakeSnapshot;
-import com.alibaba.fluss.lake.committer.LakeCommitter;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
-import com.alibaba.fluss.lake.writer.LakeWriter;
-import com.alibaba.fluss.metadata.ResolvedPartitionSpec;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.utils.ExceptionUtils;
-import com.alibaba.fluss.utils.json.BucketOffsetJsonSerde;
+package org.apache.fluss.flink.tiering.committer;
import org.apache.flink.runtime.operators.coordination.OperatorEventGateway;
import org.apache.flink.runtime.source.event.SourceEventWrapper;
@@ -45,8 +23,29 @@ import org.apache.flink.streaming.api.operators.AbstractStreamOperator;
import org.apache.flink.streaming.api.operators.OneInputStreamOperator;
import org.apache.flink.streaming.api.operators.StreamOperatorParameters;
import org.apache.flink.streaming.runtime.streamrecord.StreamRecord;
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.client.metadata.LakeSnapshot;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.LakeTableSnapshotNotExistException;
+import org.apache.fluss.flink.tiering.event.FailedTieringEvent;
+import org.apache.fluss.flink.tiering.event.FinishedTieringEvent;
+import org.apache.fluss.flink.tiering.source.TableBucketWriteResult;
+import org.apache.fluss.flink.tiering.source.TieringSource;
+import org.apache.fluss.lake.committer.BucketOffset;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.lake.committer.LakeCommitter;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
+import org.apache.fluss.lake.writer.LakeWriter;
+import org.apache.fluss.metadata.ResolvedPartitionSpec;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonFactory;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator;
+import org.apache.fluss.utils.ExceptionUtils;
+import org.apache.fluss.utils.json.BucketOffsetJsonSerde;
import javax.annotation.Nullable;
@@ -60,8 +59,8 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
+import static org.apache.fluss.utils.Preconditions.checkState;
/**
* A Flink operator to aggregate {@link WriteResult}s by table to {@link Committable} which will
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/TieringSource.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/TieringSource.java
index 53038c488..341304894 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/TieringSource.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/TieringSource.java
@@ -15,15 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.tiering.source;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.flink.tiering.source.enumerator.TieringSourceEnumerator;
-import com.alibaba.fluss.flink.tiering.source.split.TieringSplit;
-import com.alibaba.fluss.flink.tiering.source.split.TieringSplitSerializer;
-import com.alibaba.fluss.flink.tiering.source.state.TieringSourceEnumeratorState;
-import com.alibaba.fluss.flink.tiering.source.state.TieringSourceEnumeratorStateSerializer;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
+package org.apache.fluss.flink.tiering.source;
import org.apache.flink.api.connector.source.Boundedness;
import org.apache.flink.api.connector.source.Source;
@@ -34,13 +26,20 @@ import org.apache.flink.api.connector.source.SplitEnumeratorContext;
import org.apache.flink.core.io.SimpleVersionedSerializer;
import org.apache.flink.runtime.jobgraph.OperatorID;
import org.apache.flink.streaming.api.graph.StreamGraphHasherV2;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.flink.tiering.source.enumerator.TieringSourceEnumerator;
+import org.apache.fluss.flink.tiering.source.split.TieringSplit;
+import org.apache.fluss.flink.tiering.source.split.TieringSplitSerializer;
+import org.apache.fluss.flink.tiering.source.state.TieringSourceEnumeratorState;
+import org.apache.fluss.flink.tiering.source.state.TieringSourceEnumeratorStateSerializer;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
import org.apache.fluss.shaded.guava32.com.google.common.hash.HashFunction;
import org.apache.fluss.shaded.guava32.com.google.common.hash.Hasher;
import org.apache.fluss.shaded.guava32.com.google.common.hash.Hashing;
import java.nio.charset.StandardCharsets;
-import static com.alibaba.fluss.flink.tiering.source.TieringSourceOptions.POLL_TIERING_TABLE_INTERVAL;
+import static org.apache.fluss.flink.tiering.source.TieringSourceOptions.POLL_TIERING_TABLE_INTERVAL;
/**
* The flink source implementation for tiering data from Fluss to downstream lake.
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlinkConversions.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlinkConversions.java
index 49452d706..dd6045eed 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlinkConversions.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlinkConversions.java
@@ -15,25 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.utils;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.config.ConfigOption;
-import com.alibaba.fluss.config.FlussConfigUtils;
-import com.alibaba.fluss.config.MemorySize;
-import com.alibaba.fluss.config.Password;
-import com.alibaba.fluss.flink.FlinkConnectorOptions;
-import com.alibaba.fluss.flink.catalog.FlinkCatalogFactory;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.DatabaseDescriptor;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TableInfo;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.utils.StringUtils;
-import com.alibaba.fluss.utils.TimeUtils;
+package org.apache.fluss.flink.utils;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.table.catalog.CatalogDatabase;
@@ -43,6 +25,23 @@ import org.apache.flink.table.catalog.ResolvedCatalogTable;
import org.apache.flink.table.catalog.ResolvedSchema;
import org.apache.flink.table.catalog.exceptions.CatalogException;
import org.apache.flink.types.RowKind;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.config.ConfigOption;
+import org.apache.fluss.config.FlussConfigUtils;
+import org.apache.fluss.config.MemorySize;
+import org.apache.fluss.config.Password;
+import org.apache.fluss.flink.FlinkConnectorOptions;
+import org.apache.fluss.flink.catalog.FlinkCatalogFactory;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.DatabaseDescriptor;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.record.ChangeType;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.utils.StringUtils;
+import org.apache.fluss.utils.TimeUtils;
import java.time.Duration;
import java.util.ArrayList;
@@ -55,10 +54,10 @@ import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.flink.FlinkConnectorOptions.BUCKET_KEY;
-import static com.alibaba.fluss.flink.FlinkConnectorOptions.BUCKET_NUMBER;
-import static com.alibaba.fluss.flink.adapter.CatalogTableAdapter.toCatalogTable;
import static org.apache.flink.table.factories.FactoryUtil.CONNECTOR;
+import static org.apache.fluss.flink.FlinkConnectorOptions.BUCKET_KEY;
+import static org.apache.fluss.flink.FlinkConnectorOptions.BUCKET_NUMBER;
+import static org.apache.fluss.flink.adapter.CatalogTableAdapter.toCatalogTable;
/** Utils for conversion between Flink and Fluss. */
public class FlinkConversions {
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlussRowToJsonConverters.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlussRowToJsonConverters.java
index 041433b6d..680e697e1 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlussRowToJsonConverters.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlussRowToJsonConverters.java
@@ -15,21 +15,20 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.utils;
-
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.types.ArrayType;
-import com.alibaba.fluss.types.DataField;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.MapType;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.flink.utils;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.TimestampNtz;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.node.ObjectNode;
+import org.apache.fluss.types.ArrayType;
+import org.apache.fluss.types.DataField;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.MapType;
+import org.apache.fluss.types.RowType;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -38,15 +37,15 @@ import java.time.LocalTime;
import java.time.ZoneOffset;
import java.util.Arrays;
-import static com.alibaba.fluss.flink.utils.TimeFormats.ISO8601_TIMESTAMP_FORMAT;
-import static com.alibaba.fluss.flink.utils.TimeFormats.ISO8601_TIMESTAMP_WITH_LOCAL_TIMEZONE_FORMAT;
-import static com.alibaba.fluss.flink.utils.TimeFormats.SQL_TIMESTAMP_FORMAT;
-import static com.alibaba.fluss.flink.utils.TimeFormats.SQL_TIMESTAMP_WITH_LOCAL_TIMEZONE_FORMAT;
-import static com.alibaba.fluss.flink.utils.TimeFormats.SQL_TIME_FORMAT;
import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE;
+import static org.apache.fluss.flink.utils.TimeFormats.ISO8601_TIMESTAMP_FORMAT;
+import static org.apache.fluss.flink.utils.TimeFormats.ISO8601_TIMESTAMP_WITH_LOCAL_TIMEZONE_FORMAT;
+import static org.apache.fluss.flink.utils.TimeFormats.SQL_TIMESTAMP_FORMAT;
+import static org.apache.fluss.flink.utils.TimeFormats.SQL_TIMESTAMP_WITH_LOCAL_TIMEZONE_FORMAT;
+import static org.apache.fluss.flink.utils.TimeFormats.SQL_TIME_FORMAT;
import static org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN;
-/** A converter to convert Fluss's {@link com.alibaba.fluss.row.InternalRow} to {@link JsonNode}. */
+/** A converter to convert Fluss's {@link org.apache.fluss.row.InternalRow} to {@link JsonNode}. */
public class FlussRowToJsonConverters {
/** Timestamp format specification which is used to parse timestamp. */
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/LakeSourceUtils.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/LakeSourceUtils.java
index 6b849e243..88e0b5ddf 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/LakeSourceUtils.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/LakeSourceUtils.java
@@ -15,20 +15,20 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.utils;
+package org.apache.fluss.flink.utils;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.lakestorage.LakeStorage;
-import com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin;
-import com.alibaba.fluss.lake.lakestorage.LakeStoragePluginSetUp;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.TablePath;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.lakestorage.LakeStorage;
+import org.apache.fluss.lake.lakestorage.LakeStoragePlugin;
+import org.apache.fluss.lake.lakestorage.LakeStoragePluginSetUp;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.TablePath;
import java.util.Map;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Utils for create lake source. */
public class LakeSourceUtils {
diff --git a/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/LakeSplitSerializerTest.java b/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/LakeSplitSerializerTest.java
index 2796f16e8..d369e9f26 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/LakeSplitSerializerTest.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/LakeSplitSerializerTest.java
@@ -16,25 +16,24 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake;
-
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
-import com.alibaba.fluss.flink.lake.split.LakeSnapshotSplit;
-import com.alibaba.fluss.flink.source.split.SourceSplitBase;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.lake.source.LakeSplit;
-import com.alibaba.fluss.metadata.TableBucket;
+package org.apache.fluss.flink.lake;
import org.apache.flink.core.memory.DataInputDeserializer;
import org.apache.flink.core.memory.DataOutputSerializer;
+import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
+import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.TableBucket;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
-import static com.alibaba.fluss.client.table.scanner.log.LogScanner.EARLIEST_OFFSET;
-import static com.alibaba.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit.LAKE_SNAPSHOT_FLUSS_LOG_SPLIT_KIND;
+import static org.apache.fluss.client.table.scanner.log.LogScanner.EARLIEST_OFFSET;
+import static org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit.LAKE_SNAPSHOT_FLUSS_LOG_SPLIT_KIND;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
diff --git a/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/reader/SortMergeReaderTest.java b/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/reader/SortMergeReaderTest.java
index dd6bc430d..5e476b0e3 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/reader/SortMergeReaderTest.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/reader/SortMergeReaderTest.java
@@ -16,20 +16,19 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.lake.reader;
-
-import com.alibaba.fluss.client.table.scanner.ScanRecord;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.ProjectedRow;
-import com.alibaba.fluss.types.IntType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.types.StringType;
-import com.alibaba.fluss.utils.CloseableIterator;
-
+package org.apache.fluss.flink.lake.reader;
+
+import org.apache.fluss.client.table.scanner.ScanRecord;
+import org.apache.fluss.record.ChangeType;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.ProjectedRow;
+import org.apache.fluss.types.IntType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.types.StringType;
+import org.apache.fluss.utils.CloseableIterator;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
@@ -39,7 +38,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.testutils.DataTestUtils.row;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link SortMergeReader}. */
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/security/acl/FlinkAuthorizationITCase.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/security/acl/FlinkAuthorizationITCase.java
index 8e2afa937..595ac4ba6 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/security/acl/FlinkAuthorizationITCase.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/security/acl/FlinkAuthorizationITCase.java
@@ -15,25 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.security.acl;
-
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.config.MemorySize;
-import com.alibaba.fluss.exception.AuthorizationException;
-import com.alibaba.fluss.flink.catalog.FlinkCatalogOptions;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.security.acl.AccessControlEntry;
-import com.alibaba.fluss.security.acl.AclBinding;
-import com.alibaba.fluss.security.acl.FlussPrincipal;
-import com.alibaba.fluss.security.acl.OperationType;
-import com.alibaba.fluss.security.acl.PermissionType;
-import com.alibaba.fluss.security.acl.Resource;
-import com.alibaba.fluss.security.auth.sasl.jaas.LoginManager;
-import com.alibaba.fluss.server.testutils.FlussClusterExtension;
-import com.alibaba.fluss.utils.ParentResourceBlockingClassLoader;
-import com.alibaba.fluss.utils.TemporaryClassLoaderContext;
+package org.apache.fluss.flink.security.acl;
import org.apache.commons.lang3.RandomUtils;
import org.apache.flink.table.api.EnvironmentSettings;
@@ -41,6 +23,23 @@ import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.test.util.AbstractTestBase;
import org.apache.flink.types.Row;
import org.apache.flink.util.CollectionUtil;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.config.MemorySize;
+import org.apache.fluss.exception.AuthorizationException;
+import org.apache.fluss.flink.catalog.FlinkCatalogOptions;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.security.acl.AccessControlEntry;
+import org.apache.fluss.security.acl.AclBinding;
+import org.apache.fluss.security.acl.FlussPrincipal;
+import org.apache.fluss.security.acl.OperationType;
+import org.apache.fluss.security.acl.PermissionType;
+import org.apache.fluss.security.acl.Resource;
+import org.apache.fluss.security.auth.sasl.jaas.LoginManager;
+import org.apache.fluss.server.testutils.FlussClusterExtension;
+import org.apache.fluss.utils.ParentResourceBlockingClassLoader;
+import org.apache.fluss.utils.TemporaryClassLoaderContext;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
@@ -55,13 +54,13 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.concurrent.ExecutionException;
-import static com.alibaba.fluss.flink.source.testutils.FlinkRowAssertionsUtils.assertQueryResultExactOrder;
-import static com.alibaba.fluss.flink.utils.FlinkTestBase.waitUntilPartitions;
-import static com.alibaba.fluss.security.acl.OperationType.CREATE;
-import static com.alibaba.fluss.security.acl.OperationType.DESCRIBE;
-import static com.alibaba.fluss.security.acl.OperationType.DROP;
-import static com.alibaba.fluss.security.acl.OperationType.READ;
-import static com.alibaba.fluss.security.acl.OperationType.WRITE;
+import static org.apache.fluss.flink.source.testutils.FlinkRowAssertionsUtils.assertQueryResultExactOrder;
+import static org.apache.fluss.flink.utils.FlinkTestBase.waitUntilPartitions;
+import static org.apache.fluss.security.acl.OperationType.CREATE;
+import static org.apache.fluss.security.acl.OperationType.DESCRIBE;
+import static org.apache.fluss.security.acl.OperationType.DROP;
+import static org.apache.fluss.security.acl.OperationType.READ;
+import static org.apache.fluss.security.acl.OperationType.WRITE;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -470,7 +469,7 @@ abstract class FlinkAuthorizationITCase extends AbstractTestBase {
conf.setString("security.sasl.enabled.mechanisms", "plain");
conf.setString(
"security.sasl.plain.jaas.config",
- "com.alibaba.fluss.security.auth.sasl.plain.PlainLoginModule required "
+ "org.apache.fluss.security.auth.sasl.plain.PlainLoginModule required "
+ " user_root=\"password\" "
+ " user_guest=\"password2\";");
conf.set(ConfigOptions.SUPER_USERS, "User:root");
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/source/FlinkTableSourceITCase.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/source/FlinkTableSourceITCase.java
index da88014b3..cc41e04ac 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/source/FlinkTableSourceITCase.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/source/FlinkTableSourceITCase.java
@@ -15,21 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.source;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.metadata.KvSnapshots;
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.client.table.writer.UpsertWriter;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.server.testutils.FlussClusterExtension;
-import com.alibaba.fluss.utils.clock.ManualClock;
+package org.apache.fluss.flink.source;
import org.apache.commons.lang3.RandomUtils;
import org.apache.flink.api.common.typeinfo.TypeInformation;
@@ -45,6 +31,19 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions;
import org.apache.flink.test.util.AbstractTestBase;
import org.apache.flink.types.Row;
import org.apache.flink.util.CloseableIterator;
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.client.metadata.KvSnapshots;
+import org.apache.fluss.client.table.Table;
+import org.apache.fluss.client.table.writer.UpsertWriter;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.server.testutils.FlussClusterExtension;
+import org.apache.fluss.utils.clock.ManualClock;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
@@ -69,14 +68,14 @@ import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static com.alibaba.fluss.flink.FlinkConnectorOptions.BOOTSTRAP_SERVERS;
-import static com.alibaba.fluss.flink.source.testutils.FlinkRowAssertionsUtils.assertResultsIgnoreOrder;
-import static com.alibaba.fluss.flink.utils.FlinkTestBase.waitUntilPartitions;
-import static com.alibaba.fluss.flink.utils.FlinkTestBase.writeRows;
-import static com.alibaba.fluss.flink.utils.FlinkTestBase.writeRowsToPartition;
-import static com.alibaba.fluss.server.testutils.FlussClusterExtension.BUILTIN_DATABASE;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.waitUntil;
+import static org.apache.fluss.flink.FlinkConnectorOptions.BOOTSTRAP_SERVERS;
+import static org.apache.fluss.flink.source.testutils.FlinkRowAssertionsUtils.assertResultsIgnoreOrder;
+import static org.apache.fluss.flink.utils.FlinkTestBase.waitUntilPartitions;
+import static org.apache.fluss.flink.utils.FlinkTestBase.writeRows;
+import static org.apache.fluss.flink.utils.FlinkTestBase.writeRowsToPartition;
+import static org.apache.fluss.server.testutils.FlussClusterExtension.BUILTIN_DATABASE;
+import static org.apache.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.testutils.common.CommonTestUtils.waitUntil;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitterTest.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitterTest.java
index c73cd4999..4fb261964 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitterTest.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitterTest.java
@@ -15,15 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.tiering.committer;
-
-import com.alibaba.fluss.client.metadata.LakeSnapshot;
-import com.alibaba.fluss.flink.utils.FlinkTestBase;
-import com.alibaba.fluss.lake.committer.CommittedLakeSnapshot;
-import com.alibaba.fluss.metadata.ResolvedPartitionSpec;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TablePath;
-
+package org.apache.fluss.flink.tiering.committer;
+
+import org.apache.fluss.client.metadata.LakeSnapshot;
+import org.apache.fluss.flink.utils.FlinkTestBase;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.metadata.ResolvedPartitionSpec;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TablePath;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
@@ -35,8 +34,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.record.TestData.DATA1_PARTITIONED_TABLE_DESCRIPTOR;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_DESCRIPTOR;
+import static org.apache.fluss.record.TestData.DATA1_PARTITIONED_TABLE_DESCRIPTOR;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_DESCRIPTOR;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link FlussTableLakeSnapshotCommitter}. */
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperatorTest.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperatorTest.java
index 53721c4e1..1889ed0fd 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperatorTest.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperatorTest.java
@@ -15,21 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.flink.tiering.committer;
-
-import com.alibaba.fluss.client.metadata.LakeSnapshot;
-import com.alibaba.fluss.exception.LakeTableSnapshotNotExistException;
-import com.alibaba.fluss.flink.tiering.TestingLakeTieringFactory;
-import com.alibaba.fluss.flink.tiering.TestingWriteResult;
-import com.alibaba.fluss.flink.tiering.event.FailedTieringEvent;
-import com.alibaba.fluss.flink.tiering.event.FinishedTieringEvent;
-import com.alibaba.fluss.flink.tiering.source.TableBucketWriteResult;
-import com.alibaba.fluss.flink.utils.FlinkTestBase;
-import com.alibaba.fluss.lake.committer.CommittedLakeSnapshot;
-import com.alibaba.fluss.metadata.ResolvedPartitionSpec;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.utils.types.Tuple2;
+package org.apache.fluss.flink.tiering.committer;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.runtime.jobgraph.OperatorID;
@@ -45,6 +31,19 @@ import org.apache.flink.streaming.runtime.streamrecord.StreamRecord;
import org.apache.flink.streaming.runtime.tasks.SourceOperatorStreamTask;
import org.apache.flink.streaming.util.MockOutput;
import org.apache.flink.streaming.util.MockStreamConfig;
+import org.apache.fluss.client.metadata.LakeSnapshot;
+import org.apache.fluss.exception.LakeTableSnapshotNotExistException;
+import org.apache.fluss.flink.tiering.TestingLakeTieringFactory;
+import org.apache.fluss.flink.tiering.TestingWriteResult;
+import org.apache.fluss.flink.tiering.event.FailedTieringEvent;
+import org.apache.fluss.flink.tiering.event.FinishedTieringEvent;
+import org.apache.fluss.flink.tiering.source.TableBucketWriteResult;
+import org.apache.fluss.flink.utils.FlinkTestBase;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.metadata.ResolvedPartitionSpec;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.utils.types.Tuple2;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -57,7 +56,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.record.TestData.DATA1_PARTITIONED_TABLE_DESCRIPTOR;
+import static org.apache.fluss.record.TestData.DATA1_PARTITIONED_TABLE_DESCRIPTOR;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
diff --git a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowReadableChannelBenchmark.java b/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowReadableChannelBenchmark.java
index 775ce4aa1..5dfe2b1aa 100644
--- a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowReadableChannelBenchmark.java
+++ b/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowReadableChannelBenchmark.java
@@ -15,34 +15,6 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowReadableChannelBenchmark.java
-package com.alibaba.fluss.jmh;
-
-import com.alibaba.fluss.utils.ByteBufferReadableChannel;
-
-========
-package org.apache.fluss.benchmark;
-
-import org.apache.fluss.utils.ByteBufferReadableChannel;
-
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.IntVector;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.LargeVarBinaryVector;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.VectorLoader;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.VectorSchemaRoot;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.VectorUnloader;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.ipc.ReadChannel;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.ipc.WriteChannel;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.ArrowRecordBatch;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.IpcOption;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.MessageSerializer;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.ArrowType;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Field;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.FieldType;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
-import com.alibaba.fluss.shaded.zookeeper3.org.apache.zookeeper.server.ByteBufferInputStream;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-benchmark/src/test/java/org/apache/fluss/benchmark/ArrowReadableChannelBenchmark.java
import org.apache.commons.lang3.RandomUtils;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
@@ -61,6 +33,7 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Field;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.FieldType;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.server.ByteBufferInputStream;
+import org.apache.fluss.utils.ByteBufferReadableChannel;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Level;
diff --git a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowWritableChannelBenchmark.java b/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowWritableChannelBenchmark.java
index fb1f9c029..ec709c5a5 100644
--- a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowWritableChannelBenchmark.java
+++ b/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowWritableChannelBenchmark.java
@@ -15,34 +15,8 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowWritableChannelBenchmark.java
-package com.alibaba.fluss.jmh;
-
-import com.alibaba.fluss.memory.MemorySegment;
-import com.alibaba.fluss.utils.MemorySegmentWritableChannel;
-
-========
-package org.apache.fluss.benchmark;
-
-import org.apache.fluss.memory.MemorySegment;
-import org.apache.fluss.utils.MemorySegmentWritableChannel;
-
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.IntVector;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.LargeVarBinaryVector;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.VectorSchemaRoot;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.VectorUnloader;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.ipc.WriteChannel;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.ArrowRecordBatch;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.IpcOption;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.MessageSerializer;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.ArrowType;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Field;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.FieldType;
-import com.alibaba.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-benchmark/src/test/java/org/apache/fluss/benchmark/ArrowWritableChannelBenchmark.java
import org.apache.commons.lang3.RandomUtils;
+import org.apache.fluss.memory.MemorySegment;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.IntVector;
@@ -57,6 +31,7 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.ArrowTyp
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Field;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.FieldType;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
+import org.apache.fluss.utils.MemorySegmentWritableChannel;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Level;
diff --git a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/LogScannerBenchmark.java b/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/LogScannerBenchmark.java
index 1e45582cf..84da0cc03 100644
--- a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/LogScannerBenchmark.java
+++ b/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/LogScannerBenchmark.java
@@ -15,12 +15,6 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-jmh/src/test/java/com/alibaba/fluss/jmh/LogScannerBenchmark.java
-package com.alibaba.fluss.jmh;
-========
-package org.apache.fluss.benchmark;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-benchmark/src/test/java/org/apache/fluss/benchmark/LogScannerBenchmark.java
-
import org.apache.fluss.client.Connection;
import org.apache.fluss.client.ConnectionFactory;
import org.apache.fluss.client.admin.Admin;
@@ -36,7 +30,6 @@ import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.row.GenericRow;
import org.apache.fluss.server.testutils.FlussClusterExtension;
import org.apache.fluss.types.DataTypes;
-
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Level;
diff --git a/fluss-kafka/pom.xml b/fluss-kafka/pom.xml
index de8894d31..ce2bd5bd4 100644
--- a/fluss-kafka/pom.xml
+++ b/fluss-kafka/pom.xml
@@ -21,7 +21,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss</artifactId>
<version>0.8-SNAPSHOT</version>
</parent>
@@ -65,12 +65,12 @@
<!-- test dependency -->
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-test-utils</artifactId>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
@@ -78,7 +78,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-server</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
diff --git a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaChannelInitializer.java b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaChannelInitializer.java
index 34e986690..a96efebfc 100644
--- a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaChannelInitializer.java
+++ b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaChannelInitializer.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.kafka;
+package org.apache.fluss.kafka;
-import com.alibaba.fluss.rpc.netty.NettyChannelInitializer;
-import com.alibaba.fluss.rpc.netty.server.RequestChannel;
+import org.apache.fluss.rpc.netty.NettyChannelInitializer;
+import org.apache.fluss.rpc.netty.server.RequestChannel;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelInitializer;
import org.apache.fluss.shaded.netty4.io.netty.channel.socket.SocketChannel;
diff --git a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaCommandDecoder.java b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaCommandDecoder.java
index c0d892595..3bbe1a0c5 100644
--- a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaCommandDecoder.java
+++ b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaCommandDecoder.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.kafka;
+package org.apache.fluss.kafka;
-import com.alibaba.fluss.rpc.netty.server.RequestChannel;
-import com.alibaba.fluss.utils.MathUtils;
+import org.apache.fluss.rpc.netty.server.RequestChannel;
+import org.apache.fluss.utils.MathUtils;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
diff --git a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaProtocolPlugin.java b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaProtocolPlugin.java
index 861bb5ce0..5c07f5f16 100644
--- a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaProtocolPlugin.java
+++ b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaProtocolPlugin.java
@@ -15,15 +15,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.kafka;
+package org.apache.fluss.kafka;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.rpc.RpcGatewayService;
-import com.alibaba.fluss.rpc.gateway.TabletServerGateway;
-import com.alibaba.fluss.rpc.netty.server.RequestChannel;
-import com.alibaba.fluss.rpc.netty.server.RequestHandler;
-import com.alibaba.fluss.rpc.protocol.NetworkProtocolPlugin;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.rpc.RpcGatewayService;
+import org.apache.fluss.rpc.gateway.TabletServerGateway;
+import org.apache.fluss.rpc.netty.server.RequestChannel;
+import org.apache.fluss.rpc.netty.server.RequestHandler;
+import org.apache.fluss.rpc.protocol.NetworkProtocolPlugin;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandler;
diff --git a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaRequest.java b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaRequest.java
index 449969926..2e2e99df8 100644
--- a/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaRequest.java
+++ b/fluss-kafka/src/main/java/org/apache/fluss/kafka/KafkaRequest.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.kafka;
+package org.apache.fluss.kafka;
-import com.alibaba.fluss.rpc.netty.server.RpcRequest;
-import com.alibaba.fluss.rpc.protocol.RequestType;
+import org.apache.fluss.rpc.netty.server.RpcRequest;
+import org.apache.fluss.rpc.protocol.RequestType;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
diff --git a/fluss-kafka/src/test/java/org/apache/fluss/kafka/KafkaRequestHandlerTest.java b/fluss-kafka/src/test/java/org/apache/fluss/kafka/KafkaRequestHandlerTest.java
index 13a59c263..90775e3b7 100644
--- a/fluss-kafka/src/test/java/org/apache/fluss/kafka/KafkaRequestHandlerTest.java
+++ b/fluss-kafka/src/test/java/org/apache/fluss/kafka/KafkaRequestHandlerTest.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.kafka;
+package org.apache.fluss.kafka;
-import com.alibaba.fluss.rpc.TestingTabletGatewayService;
+import org.apache.fluss.rpc.TestingTabletGatewayService;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBufAllocator;
diff --git a/fluss-lake/fluss-lake-iceberg/pom.xml b/fluss-lake/fluss-lake-iceberg/pom.xml
index e0443c49b..0b328c1bc 100644
--- a/fluss-lake/fluss-lake-iceberg/pom.xml
+++ b/fluss-lake/fluss-lake-iceberg/pom.xml
@@ -22,7 +22,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-lake</artifactId>
<version>0.8-SNAPSHOT</version>
</parent>
@@ -71,25 +71,25 @@
<!-- test dependency -->
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink-common</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-server</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-server</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
@@ -97,7 +97,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
@@ -105,7 +105,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-test-utils</artifactId>
</dependency>
@@ -180,13 +180,13 @@
<!-- Flink test dependency -->
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink-${flink.major.version}</artifactId>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink-common</artifactId>
<version>${project.version}</version>
<scope>test</scope>
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java
similarity index 78%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java
index bfd47b05b..2ae0fcff6 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/FlussDataTypeToIcebergDataType.java
@@ -15,29 +15,28 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg;
-
-import com.alibaba.fluss.types.ArrayType;
-import com.alibaba.fluss.types.BigIntType;
-import com.alibaba.fluss.types.BinaryType;
-import com.alibaba.fluss.types.BooleanType;
-import com.alibaba.fluss.types.BytesType;
-import com.alibaba.fluss.types.CharType;
-import com.alibaba.fluss.types.DataTypeVisitor;
-import com.alibaba.fluss.types.DateType;
-import com.alibaba.fluss.types.DecimalType;
-import com.alibaba.fluss.types.DoubleType;
-import com.alibaba.fluss.types.FloatType;
-import com.alibaba.fluss.types.IntType;
-import com.alibaba.fluss.types.LocalZonedTimestampType;
-import com.alibaba.fluss.types.MapType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.types.SmallIntType;
-import com.alibaba.fluss.types.StringType;
-import com.alibaba.fluss.types.TimeType;
-import com.alibaba.fluss.types.TimestampType;
-import com.alibaba.fluss.types.TinyIntType;
-
+package org.apache.fluss.lake.iceberg;
+
+import org.apache.fluss.types.ArrayType;
+import org.apache.fluss.types.BigIntType;
+import org.apache.fluss.types.BinaryType;
+import org.apache.fluss.types.BooleanType;
+import org.apache.fluss.types.BytesType;
+import org.apache.fluss.types.CharType;
+import org.apache.fluss.types.DataTypeVisitor;
+import org.apache.fluss.types.DateType;
+import org.apache.fluss.types.DecimalType;
+import org.apache.fluss.types.DoubleType;
+import org.apache.fluss.types.FloatType;
+import org.apache.fluss.types.IntType;
+import org.apache.fluss.types.LocalZonedTimestampType;
+import org.apache.fluss.types.MapType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.types.SmallIntType;
+import org.apache.fluss.types.StringType;
+import org.apache.fluss.types.TimeType;
+import org.apache.fluss.types.TimestampType;
+import org.apache.fluss.types.TinyIntType;
import org.apache.iceberg.types.Type;
import org.apache.iceberg.types.Types;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/IcebergLakeCatalog.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
similarity index 87%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/IcebergLakeCatalog.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
index 46eb9f65d..a2be5fa39 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/IcebergLakeCatalog.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
@@ -1,31 +1,29 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
-package com.alibaba.fluss.lake.iceberg;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.TableAlreadyExistException;
-import com.alibaba.fluss.lake.iceberg.conf.IcebergConfiguration;
-import com.alibaba.fluss.lake.lakestorage.LakeCatalog;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.utils.IOUtils;
+package org.apache.fluss.lake.iceberg;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.TableAlreadyExistException;
+import org.apache.fluss.lake.iceberg.conf.IcebergConfiguration;
+import org.apache.fluss.lake.lakestorage.LakeCatalog;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.utils.IOUtils;
import org.apache.iceberg.PartitionSpec;
import org.apache.iceberg.Schema;
import org.apache.iceberg.SortOrder;
@@ -46,9 +44,9 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import static com.alibaba.fluss.metadata.TableDescriptor.BUCKET_COLUMN_NAME;
-import static com.alibaba.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
-import static com.alibaba.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.BUCKET_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
import static org.apache.iceberg.CatalogUtil.buildIcebergCatalog;
/** An Iceberg implementation of {@link LakeCatalog}. */
@@ -139,7 +137,7 @@ public class IcebergLakeCatalog implements LakeCatalog {
int fieldId = 0;
// general columns
- for (com.alibaba.fluss.metadata.Schema.Column column :
+ for (org.apache.fluss.metadata.Schema.Column column :
tableDescriptor.getSchema().getColumns()) {
String colName = column.getName();
if (SYSTEM_COLUMNS.containsKey(colName)) {
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/IcebergLakeStorage.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeStorage.java
similarity index 80%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/IcebergLakeStorage.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeStorage.java
index 9e8daf365..fc3bf97c7 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/IcebergLakeStorage.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeStorage.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.iceberg.tiering.IcebergLakeTieringFactory;
-import com.alibaba.fluss.lake.lakestorage.LakeStorage;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
-import com.alibaba.fluss.metadata.TablePath;
+package org.apache.fluss.lake.iceberg;
+
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.iceberg.tiering.IcebergLakeTieringFactory;
+import org.apache.fluss.lake.lakestorage.LakeStorage;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
+import org.apache.fluss.metadata.TablePath;
/** Iceberg implementation of {@link LakeStorage}. */
public class IcebergLakeStorage implements LakeStorage {
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/IcebergLakeStoragePlugin.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeStoragePlugin.java
similarity index 85%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/IcebergLakeStoragePlugin.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeStoragePlugin.java
index 8c5ece2ba..28ec4d19c 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/IcebergLakeStoragePlugin.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeStoragePlugin.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg;
+package org.apache.fluss.lake.iceberg;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.lakestorage.LakeStorage;
-import com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.lakestorage.LakeStorage;
+import org.apache.fluss.lake.lakestorage.LakeStoragePlugin;
/** Iceberg implementation of {@link LakeStoragePlugin}. */
public class IcebergLakeStoragePlugin implements LakeStoragePlugin {
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/conf/HadoopConfSerde.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopConfSerde.java
similarity index 97%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/conf/HadoopConfSerde.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopConfSerde.java
index ffb26c56d..d0334af0f 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/conf/HadoopConfSerde.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopConfSerde.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.conf;
+package org.apache.fluss.lake.iceberg.conf;
import org.apache.hadoop.conf.Configuration;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/conf/HadoopUtils.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java
similarity index 83%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/conf/HadoopUtils.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java
index f93cdd7df..79e0e8aea 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/conf/HadoopUtils.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java
@@ -1,24 +1,22 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
-package com.alibaba.fluss.lake.iceberg.conf;
-
-import com.alibaba.fluss.config.ConfigBuilder;
+package org.apache.fluss.lake.iceberg.conf;
+import org.apache.fluss.config.ConfigBuilder;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hdfs.HdfsConfiguration;
import org.slf4j.Logger;
@@ -40,7 +38,7 @@ public class HadoopUtils {
private static final String[] FLUSS_CONFIG_PREFIXES = {"iceberg.hadoop."};
public static Configuration getHadoopConfiguration(
- com.alibaba.fluss.config.Configuration flussConfiguration) {
+ org.apache.fluss.config.Configuration flussConfiguration) {
// Instantiate an HdfsConfiguration to load the hdfs-site.xml and hdfs-default.xml
// from the classpath
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/conf/IcebergConfiguration.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/IcebergConfiguration.java
similarity index 95%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/conf/IcebergConfiguration.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/IcebergConfiguration.java
index b2b277745..40f65f6a2 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/conf/IcebergConfiguration.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/IcebergConfiguration.java
@@ -15,11 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.conf;
-
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.config.Configuration;
+package org.apache.fluss.lake.iceberg.conf;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.config.Configuration;
import org.apache.iceberg.common.DynClasses;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/FlussRecordAsIcebergRecord.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/FlussRecordAsIcebergRecord.java
similarity index 100%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/FlussRecordAsIcebergRecord.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/FlussRecordAsIcebergRecord.java
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java
similarity index 86%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java
index b27f94e02..30ad7302d 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCatalogProvider.java
@@ -15,17 +15,16 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.iceberg.conf.IcebergConfiguration;
+package org.apache.fluss.lake.iceberg.tiering;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.iceberg.conf.IcebergConfiguration;
import org.apache.iceberg.catalog.Catalog;
import java.io.Serializable;
import java.util.Map;
-import static com.alibaba.fluss.lake.iceberg.IcebergLakeCatalog.ICEBERG_CATALOG_DEFAULT_NAME;
+import static org.apache.fluss.lake.iceberg.IcebergLakeCatalog.ICEBERG_CATALOG_DEFAULT_NAME;
import static org.apache.iceberg.CatalogUtil.buildIcebergCatalog;
/** A provider for Iceberg catalog. */
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergCommittable.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCommittable.java
similarity index 98%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergCommittable.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCommittable.java
index 938ebc477..1019eab45 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergCommittable.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCommittable.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
+package org.apache.fluss.lake.iceberg.tiering;
import org.apache.iceberg.DataFile;
import org.apache.iceberg.DeleteFile;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergCommittableSerializer.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCommittableSerializer.java
similarity index 91%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergCommittableSerializer.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCommittableSerializer.java
index 0ec247a74..fc722293a 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergCommittableSerializer.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergCommittableSerializer.java
@@ -16,10 +16,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
+package org.apache.fluss.lake.iceberg.tiering;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.utils.InstantiationUtils;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.utils.InstantiationUtils;
import java.io.IOException;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java
similarity index 94%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java
index 376589d3a..300c047eb 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeCommitter.java
@@ -15,16 +15,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
-
-import com.alibaba.fluss.lake.committer.BucketOffset;
-import com.alibaba.fluss.lake.committer.CommittedLakeSnapshot;
-import com.alibaba.fluss.lake.committer.LakeCommitter;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.utils.json.BucketOffsetJsonSerde;
+package org.apache.fluss.lake.iceberg.tiering;
+import org.apache.fluss.lake.committer.BucketOffset;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.lake.committer.LakeCommitter;
+import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.fluss.utils.json.BucketOffsetJsonSerde;
import org.apache.iceberg.AppendFiles;
import org.apache.iceberg.CatalogUtil;
import org.apache.iceberg.DataFile;
@@ -48,10 +47,10 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
-import static com.alibaba.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
-import static com.alibaba.fluss.lake.writer.LakeTieringFactory.FLUSS_LAKE_TIERING_COMMIT_USER;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
+import static org.apache.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
+import static org.apache.fluss.lake.writer.LakeTieringFactory.FLUSS_LAKE_TIERING_COMMIT_USER;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** Implementation of {@link LakeCommitter} for Iceberg. */
public class IcebergLakeCommitter implements LakeCommitter<IcebergWriteResult, IcebergCommittable> {
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergLakeTieringFactory.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeTieringFactory.java
similarity index 82%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergLakeTieringFactory.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeTieringFactory.java
index e3a101c4a..9f5510479 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergLakeTieringFactory.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeTieringFactory.java
@@ -15,15 +15,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.committer.CommitterInitContext;
-import com.alibaba.fluss.lake.committer.LakeCommitter;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
-import com.alibaba.fluss.lake.writer.LakeWriter;
-import com.alibaba.fluss.lake.writer.WriterInitContext;
+package org.apache.fluss.lake.iceberg.tiering;
+
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.committer.CommitterInitContext;
+import org.apache.fluss.lake.committer.LakeCommitter;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
+import org.apache.fluss.lake.writer.LakeWriter;
+import org.apache.fluss.lake.writer.WriterInitContext;
import java.io.IOException;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergLakeWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeWriter.java
similarity index 91%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergLakeWriter.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeWriter.java
index 8c3feb64e..d82f9a364 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergLakeWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergLakeWriter.java
@@ -15,15 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
-
-import com.alibaba.fluss.lake.iceberg.tiering.writer.AppendOnlyTaskWriter;
-import com.alibaba.fluss.lake.iceberg.tiering.writer.DeltaTaskWriter;
-import com.alibaba.fluss.lake.writer.LakeWriter;
-import com.alibaba.fluss.lake.writer.WriterInitContext;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.record.LogRecord;
-
+package org.apache.fluss.lake.iceberg.tiering;
+
+import org.apache.fluss.lake.iceberg.tiering.writer.AppendOnlyTaskWriter;
+import org.apache.fluss.lake.iceberg.tiering.writer.DeltaTaskWriter;
+import org.apache.fluss.lake.writer.LakeWriter;
+import org.apache.fluss.lake.writer.WriterInitContext;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.record.LogRecord;
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.Schema;
import org.apache.iceberg.Table;
@@ -38,7 +37,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import static com.alibaba.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
+import static org.apache.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
import static org.apache.iceberg.TableProperties.WRITE_TARGET_FILE_SIZE_BYTES;
import static org.apache.iceberg.TableProperties.WRITE_TARGET_FILE_SIZE_BYTES_DEFAULT;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergWriteResult.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResult.java
similarity index 97%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergWriteResult.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResult.java
index bc0c0605f..cd2825ce5 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergWriteResult.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResult.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
+package org.apache.fluss.lake.iceberg.tiering;
import org.apache.iceberg.io.WriteResult;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java
similarity index 91%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java
index 86c6e6849..6f1562837 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/IcebergWriteResultSerializer.java
@@ -16,11 +16,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
-
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.utils.InstantiationUtils;
+package org.apache.fluss.lake.iceberg.tiering;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.utils.InstantiationUtils;
import org.apache.iceberg.io.WriteResult;
import java.io.IOException;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/RecordWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/RecordWriter.java
similarity index 92%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/RecordWriter.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/RecordWriter.java
index 444338e3e..df81f63a0 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/RecordWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/RecordWriter.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
-
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.lake.iceberg.tiering;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.types.RowType;
import org.apache.iceberg.Schema;
import org.apache.iceberg.data.Record;
import org.apache.iceberg.io.TaskWriter;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java
similarity index 92%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java
index 59c05f7d6..b7d15d7c5 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/AppendOnlyTaskWriter.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering.writer;
-
-import com.alibaba.fluss.lake.iceberg.tiering.RecordWriter;
-import com.alibaba.fluss.lake.writer.WriterInitContext;
-import com.alibaba.fluss.record.LogRecord;
+package org.apache.fluss.lake.iceberg.tiering.writer;
+import org.apache.fluss.lake.iceberg.tiering.RecordWriter;
+import org.apache.fluss.lake.writer.WriterInitContext;
+import org.apache.fluss.record.LogRecord;
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.Table;
import org.apache.iceberg.data.GenericAppenderFactory;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java
similarity index 94%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java
index 573ca1265..6ea718a5b 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/DeltaTaskWriter.java
@@ -15,12 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering.writer;
-
-import com.alibaba.fluss.lake.iceberg.tiering.RecordWriter;
-import com.alibaba.fluss.lake.writer.WriterInitContext;
-import com.alibaba.fluss.record.LogRecord;
+package org.apache.fluss.lake.iceberg.tiering.writer;
+import org.apache.fluss.lake.iceberg.tiering.RecordWriter;
+import org.apache.fluss.lake.writer.WriterInitContext;
+import org.apache.fluss.record.LogRecord;
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.Schema;
import org.apache.iceberg.Table;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java
similarity index 92%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java
index 864414ee7..f31c37b89 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordAppendOnlyWriter.java
@@ -16,10 +16,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering.writer;
-
-import com.alibaba.fluss.lake.writer.WriterInitContext;
+package org.apache.fluss.lake.iceberg.tiering.writer;
+import org.apache.fluss.lake.writer.WriterInitContext;
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.Table;
import org.apache.iceberg.data.Record;
@@ -30,7 +29,7 @@ import org.apache.iceberg.io.OutputFileFactory;
import java.io.IOException;
-import static com.alibaba.fluss.lake.iceberg.utils.IcebergConversions.toPartition;
+import static org.apache.fluss.lake.iceberg.utils.IcebergConversions.toPartition;
/** A generic task writer to write {@link Record} for append-only table. * */
public class GenericRecordAppendOnlyWriter extends BaseTaskWriter<Record> {
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java
similarity index 93%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java
index 5adae1a3a..0ff13a0fc 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/writer/GenericRecordDeltaWriter.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering.writer;
-
-import com.alibaba.fluss.lake.writer.WriterInitContext;
+package org.apache.fluss.lake.iceberg.tiering.writer;
+import org.apache.fluss.lake.writer.WriterInitContext;
import org.apache.iceberg.FileFormat;
import org.apache.iceberg.PartitionKey;
import org.apache.iceberg.Schema;
@@ -32,7 +31,7 @@ import org.apache.iceberg.io.OutputFileFactory;
import java.io.IOException;
-import static com.alibaba.fluss.lake.iceberg.utils.IcebergConversions.toPartition;
+import static org.apache.fluss.lake.iceberg.utils.IcebergConversions.toPartition;
/** A generic task equality delta writer. * */
class GenericRecordDeltaWriter extends BaseTaskWriter<Record> {
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/utils/IcebergConversions.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/utils/IcebergConversions.java
similarity index 91%
rename from fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/utils/IcebergConversions.java
rename to fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/utils/IcebergConversions.java
index 617f33959..9d020db7d 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/com/alibaba/fluss/lake/iceberg/utils/IcebergConversions.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/utils/IcebergConversions.java
@@ -15,10 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.utils;
-
-import com.alibaba.fluss.metadata.TablePath;
+package org.apache.fluss.lake.iceberg.utils;
+import org.apache.fluss.metadata.TablePath;
import org.apache.iceberg.PartitionKey;
import org.apache.iceberg.PartitionSpec;
import org.apache.iceberg.Schema;
@@ -27,7 +26,7 @@ import org.apache.iceberg.catalog.TableIdentifier;
import javax.annotation.Nullable;
-import static com.alibaba.fluss.metadata.ResolvedPartitionSpec.PARTITION_SPEC_SEPARATOR;
+import static org.apache.fluss.metadata.ResolvedPartitionSpec.PARTITION_SPEC_SEPARATOR;
/** Utility class for static conversions between Fluss and Iceberg types. */
public class IcebergConversions {
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/resources/META-INF/services/com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin b/fluss-lake/fluss-lake-iceberg/src/main/resources/META-INF/services/com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin
deleted file mode 100644
index 164379dfc..000000000
--- a/fluss-lake/fluss-lake-iceberg/src/main/resources/META-INF/services/com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin
+++ /dev/null
@@ -1,19 +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.
-#
-
-com.alibaba.fluss.lake.iceberg.IcebergLakeStoragePlugin
\ No newline at end of file
diff --git a/fluss-lake/fluss-lake-lance/src/test/resources/org.junit.jupiter.api.extension.Extension b/fluss-lake/fluss-lake-iceberg/src/main/resources/META-INF/services/org.apache.fluss.lake.lakestorage.LakeStoragePlugin
similarity index 93%
copy from fluss-lake/fluss-lake-lance/src/test/resources/org.junit.jupiter.api.extension.Extension
copy to fluss-lake/fluss-lake-iceberg/src/main/resources/META-INF/services/org.apache.fluss.lake.lakestorage.LakeStoragePlugin
index 590243ea8..60cb90c3f 100644
--- a/fluss-lake/fluss-lake-lance/src/test/resources/org.junit.jupiter.api.extension.Extension
+++ b/fluss-lake/fluss-lake-iceberg/src/main/resources/META-INF/services/org.apache.fluss.lake.lakestorage.LakeStoragePlugin
@@ -16,4 +16,4 @@
# limitations under the License.
#
-com.alibaba.fluss.testutils.common.TestLoggerExtension
\ No newline at end of file
+org.apache.fluss.lake.iceberg.IcebergLakeStoragePlugin
\ No newline at end of file
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/IcebergLakeCatalogTest.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java
similarity index 97%
rename from fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/IcebergLakeCatalogTest.java
rename to fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java
index 393f5a17e..59d643a93 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/IcebergLakeCatalogTest.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalogTest.java
@@ -15,14 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.types.DataTypes;
+package org.apache.fluss.lake.iceberg;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.types.DataTypes;
import org.apache.iceberg.PartitionField;
import org.apache.iceberg.SortDirection;
import org.apache.iceberg.SortField;
@@ -39,9 +38,9 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
-import static com.alibaba.fluss.metadata.TableDescriptor.BUCKET_COLUMN_NAME;
-import static com.alibaba.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
-import static com.alibaba.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.BUCKET_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/conf/IcebergConfigurationTest.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/conf/IcebergConfigurationTest.java
similarity index 98%
rename from fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/conf/IcebergConfigurationTest.java
rename to fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/conf/IcebergConfigurationTest.java
index 749ae86ab..aa99af70a 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/conf/IcebergConfigurationTest.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/conf/IcebergConfigurationTest.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.conf;
+package org.apache.fluss.lake.iceberg.conf;
import org.apache.hadoop.conf.Configuration;
import org.junit.jupiter.api.Test;
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/testutils/FlinkIcebergTieringTestBase.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/testutils/FlinkIcebergTieringTestBase.java
similarity index 100%
rename from fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/testutils/FlinkIcebergTieringTestBase.java
rename to fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/testutils/FlinkIcebergTieringTestBase.java
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergTieringITCase.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringITCase.java
similarity index 100%
rename from fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergTieringITCase.java
rename to fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringITCase.java
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergTieringTest.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java
similarity index 88%
rename from fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergTieringTest.java
rename to fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java
index c55b834f7..946406d25 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/tiering/IcebergTieringTest.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java
@@ -1,38 +1,35 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.committer.LakeCommitter;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.lake.writer.LakeWriter;
-import com.alibaba.fluss.lake.writer.WriterInitContext;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.record.GenericRecord;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.utils.types.Tuple2;
-
+package org.apache.fluss.lake.iceberg.tiering;
+
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.committer.LakeCommitter;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.writer.LakeWriter;
+import org.apache.fluss.lake.writer.WriterInitContext;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.record.ChangeType;
+import org.apache.fluss.record.GenericRecord;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.utils.types.Tuple2;
import org.apache.iceberg.PartitionSpec;
import org.apache.iceberg.Snapshot;
import org.apache.iceberg.Table;
@@ -66,14 +63,14 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Stream;
-import static com.alibaba.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
-import static com.alibaba.fluss.metadata.TableDescriptor.BUCKET_COLUMN_NAME;
-import static com.alibaba.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
-import static com.alibaba.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
-import static com.alibaba.fluss.record.ChangeType.DELETE;
-import static com.alibaba.fluss.record.ChangeType.INSERT;
-import static com.alibaba.fluss.record.ChangeType.UPDATE_AFTER;
-import static com.alibaba.fluss.record.ChangeType.UPDATE_BEFORE;
+import static org.apache.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
+import static org.apache.fluss.metadata.TableDescriptor.BUCKET_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
+import static org.apache.fluss.record.ChangeType.DELETE;
+import static org.apache.fluss.record.ChangeType.INSERT;
+import static org.apache.fluss.record.ChangeType.UPDATE_AFTER;
+import static org.apache.fluss.record.ChangeType.UPDATE_BEFORE;
import static org.apache.iceberg.expressions.Expressions.equal;
import static org.assertj.core.api.Assertions.assertThat;
@@ -225,8 +222,8 @@ class IcebergTieringTest {
}
@Override
- public com.alibaba.fluss.metadata.Schema schema() {
- return com.alibaba.fluss.metadata.Schema.newBuilder()
+ public org.apache.fluss.metadata.Schema schema() {
+ return org.apache.fluss.metadata.Schema.newBuilder()
.column("c1", DataTypes.INT())
.column("c2", DataTypes.STRING())
.column("c3", DataTypes.STRING())
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/utils/IcebergConversionsTest.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/utils/IcebergConversionsTest.java
similarity index 93%
rename from fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/utils/IcebergConversionsTest.java
rename to fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/utils/IcebergConversionsTest.java
index 9e294f924..0facb2783 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/com/alibaba/fluss/lake/iceberg/utils/IcebergConversionsTest.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/utils/IcebergConversionsTest.java
@@ -16,12 +16,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.utils;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.iceberg.conf.IcebergConfiguration;
-import com.alibaba.fluss.metadata.TablePath;
+package org.apache.fluss.lake.iceberg.utils;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.iceberg.conf.IcebergConfiguration;
+import org.apache.fluss.metadata.TablePath;
import org.apache.iceberg.PartitionKey;
import org.apache.iceberg.PartitionSpec;
import org.apache.iceberg.Schema;
@@ -37,7 +36,7 @@ import org.junit.jupiter.api.io.TempDir;
import java.io.File;
import java.util.Map;
-import static com.alibaba.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
+import static org.apache.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
import static org.apache.iceberg.CatalogUtil.buildIcebergCatalog;
import static org.apache.iceberg.types.Types.NestedField.optional;
import static org.apache.iceberg.types.Types.NestedField.required;
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/resources/org.junit.jupiter.api.extension.Extension b/fluss-lake/fluss-lake-iceberg/src/test/resources/org.junit.jupiter.api.extension.Extension
index 590243ea8..ca0e907f6 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/resources/org.junit.jupiter.api.extension.Extension
+++ b/fluss-lake/fluss-lake-iceberg/src/test/resources/org.junit.jupiter.api.extension.Extension
@@ -16,4 +16,4 @@
# limitations under the License.
#
-com.alibaba.fluss.testutils.common.TestLoggerExtension
\ No newline at end of file
+org.apache.fluss.testutils.common.TestLoggerExtension
\ No newline at end of file
diff --git a/fluss-lake/fluss-lake-lance/pom.xml b/fluss-lake/fluss-lake-lance/pom.xml
index 960a3d4db..d37c6ca23 100644
--- a/fluss-lake/fluss-lake-lance/pom.xml
+++ b/fluss-lake/fluss-lake-lance/pom.xml
@@ -22,7 +22,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-lake</artifactId>
<version>0.8-SNAPSHOT</version>
</parent>
@@ -38,7 +38,7 @@
<dependencies>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
@@ -51,14 +51,14 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-client</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-test-utils</artifactId>
<scope>provided</scope>
</dependency>
@@ -71,7 +71,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-server</artifactId>
<version>${project.version}</version>
<scope>test</scope>
@@ -124,7 +124,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-server</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
@@ -133,13 +133,13 @@
<!-- Flink test dependency -->
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink-${flink.major.version}</artifactId>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-common</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
@@ -147,7 +147,7 @@
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink-common</artifactId>
<version>${project.version}</version>
<scope>test</scope>
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceConfig.java b/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceConfig.java
index 240b387e6..678b38e69 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceConfig.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceConfig.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance;
+package org.apache.fluss.lake.lance;
import com.lancedb.lance.ReadOptions;
import com.lancedb.lance.WriteParams;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeStoragePlugin.java b/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeStoragePlugin.java
index e5d65534d..d329c9ff7 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeStoragePlugin.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeStoragePlugin.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance;
+package org.apache.fluss.lake.lance;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.lakestorage.LakeStorage;
-import com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.lakestorage.LakeStorage;
+import org.apache.fluss.lake.lakestorage.LakeStoragePlugin;
/** Lance implementation of {@link LakeStoragePlugin}. */
public class LanceLakeStoragePlugin implements LakeStoragePlugin {
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceCommittable.java b/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceCommittable.java
index c54a444db..dee72046e 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceCommittable.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceCommittable.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
+package org.apache.fluss.lake.lance.tiering;
import com.lancedb.lance.FragmentMetadata;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResult.java b/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResult.java
index 269377403..b64e3e3f9 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResult.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResult.java
@@ -15,12 +15,6 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResult.java
-package com.alibaba.fluss.lake.lance.tiering;
-========
-package org.apache.fluss.flink.lakehouse.paimon.reader;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/KeyValueRow.java
-
import com.lancedb.lance.FragmentMetadata;
import java.io.Serializable;
diff --git a/fluss-lake/fluss-lake-lance/src/main/resources/META-INF/services/com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin b/fluss-lake/fluss-lake-lance/src/main/resources/META-INF/services/com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin
index 7ece859bd..39239347e 100644
--- a/fluss-lake/fluss-lake-lance/src/main/resources/META-INF/services/com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin
+++ b/fluss-lake/fluss-lake-lance/src/main/resources/META-INF/services/com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin
@@ -16,4 +16,4 @@
# limitations under the License.
#
-com.alibaba.fluss.lake.lance.LanceLakeStoragePlugin
\ No newline at end of file
+org.apache.fluss.lake.lance.LanceLakeStoragePlugin
\ No newline at end of file
diff --git a/fluss-lake/fluss-lake-lance/src/test/resources/org.junit.jupiter.api.extension.Extension b/fluss-lake/fluss-lake-lance/src/test/resources/org.junit.jupiter.api.extension.Extension
index 590243ea8..ca0e907f6 100644
--- a/fluss-lake/fluss-lake-lance/src/test/resources/org.junit.jupiter.api.extension.Extension
+++ b/fluss-lake/fluss-lake-lance/src/test/resources/org.junit.jupiter.api.extension.Extension
@@ -16,4 +16,4 @@
# limitations under the License.
#
-com.alibaba.fluss.testutils.common.TestLoggerExtension
\ No newline at end of file
+org.apache.fluss.testutils.common.TestLoggerExtension
\ No newline at end of file
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
index 63c5e7aa2..ae600ebfb 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
@@ -16,20 +16,9 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
-package com.alibaba.fluss.lake.paimon.source;
-
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
-========
-package org.apache.fluss.flink.lakehouse.paimon.reader;
-
-import org.apache.fluss.client.table.scanner.ScanRecord;
import org.apache.fluss.record.ChangeType;
import org.apache.fluss.row.TimestampLtz;
import org.apache.fluss.row.TimestampNtz;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/ScanRecordWrapper.java
-
import org.apache.paimon.data.BinaryString;
import org.apache.paimon.data.Decimal;
import org.apache.paimon.data.InternalArray;
@@ -45,7 +34,7 @@ import org.apache.paimon.types.RowType;
public class FlussRowAsPaimonRow implements InternalRow {
<<<<<<<< HEAD:fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
- protected com.alibaba.fluss.row.InternalRow internalRow;
+ protected org.apache.fluss.row.InternalRow internalRow;
protected final RowType tableRowType;
========
private final ChangeType changeType;
@@ -58,7 +47,7 @@ public class FlussRowAsPaimonRow implements InternalRow {
}
public FlussRowAsPaimonRow(
- com.alibaba.fluss.row.InternalRow internalRow, RowType tableTowType) {
+ org.apache.fluss.row.InternalRow internalRow, RowType tableTowType) {
this.internalRow = internalRow;
this.tableRowType = tableTowType;
}
@@ -125,7 +114,7 @@ public class FlussRowAsPaimonRow implements InternalRow {
@Override
public Decimal getDecimal(int pos, int precision, int scale) {
- com.alibaba.fluss.row.Decimal flussDecimal = internalRow.getDecimal(pos, precision, scale);
+ org.apache.fluss.row.Decimal flussDecimal = internalRow.getDecimal(pos, precision, scale);
if (flussDecimal.isCompact()) {
return Decimal.fromUnscaledLong(flussDecimal.toUnscaledLong(), precision, scale);
} else {
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSource.java b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSource.java
index 2d9462e52..67e760f57 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSource.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSource.java
@@ -16,16 +16,16 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.source;
+package org.apache.fluss.lake.paimon.source;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.paimon.utils.FlussToPaimonPredicateConverter;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.Planner;
-import com.alibaba.fluss.lake.source.RecordReader;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.predicate.Predicate;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.paimon.utils.FlussToPaimonPredicateConverter;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.Planner;
+import org.apache.fluss.lake.source.RecordReader;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.predicate.Predicate;
import org.apache.paimon.catalog.Catalog;
import org.apache.paimon.catalog.CatalogContext;
@@ -42,10 +42,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
-import static com.alibaba.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
+import static org.apache.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
/**
- * Paimon Lake format implementation of {@link com.alibaba.fluss.lake.source.LakeSource} for reading
+ * Paimon Lake format implementation of {@link org.apache.fluss.lake.source.LakeSource} for reading
* paimon table.
*/
public class PaimonLakeSource implements LakeSource<PaimonSplit> {
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReader.java b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReader.java
index d58337cb6..9d0630a58 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReader.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReader.java
@@ -16,15 +16,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.source;
+package org.apache.fluss.lake.paimon.source;
-import com.alibaba.fluss.lake.paimon.utils.PaimonRowAsFlussRow;
-import com.alibaba.fluss.lake.source.RecordReader;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.record.GenericRecord;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.ProjectedRow;
-import com.alibaba.fluss.utils.CloseableIterator;
+import org.apache.fluss.lake.paimon.utils.PaimonRowAsFlussRow;
+import org.apache.fluss.lake.source.RecordReader;
+import org.apache.fluss.record.ChangeType;
+import org.apache.fluss.record.GenericRecord;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.ProjectedRow;
+import org.apache.fluss.utils.CloseableIterator;
import org.apache.paimon.data.InternalRow;
import org.apache.paimon.predicate.Predicate;
@@ -39,9 +39,9 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.stream.IntStream;
-import static com.alibaba.fluss.lake.paimon.utils.PaimonConversions.toChangeType;
-import static com.alibaba.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
-import static com.alibaba.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
+import static org.apache.fluss.lake.paimon.utils.PaimonConversions.toChangeType;
+import static org.apache.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
/** Record reader for paimon table. */
public class PaimonRecordReader implements RecordReader {
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReader.java b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReader.java
index 281695105..78568e1db 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReader.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReader.java
@@ -16,11 +16,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.source;
-
-import com.alibaba.fluss.lake.source.SortedRecordReader;
-import com.alibaba.fluss.row.InternalRow;
+package org.apache.fluss.lake.paimon.source;
+import org.apache.fluss.lake.source.SortedRecordReader;
+import org.apache.fluss.row.InternalRow;
import org.apache.paimon.KeyValueFileStore;
import org.apache.paimon.predicate.Predicate;
import org.apache.paimon.table.FileStoreTable;
@@ -34,7 +33,7 @@ import java.util.Comparator;
/** Sorted record reader for primary key paimon table. */
public class PaimonSortedRecordReader extends PaimonRecordReader implements SortedRecordReader {
- Comparator<com.alibaba.fluss.row.InternalRow> comparator;
+ Comparator<org.apache.fluss.row.InternalRow> comparator;
public PaimonSortedRecordReader(
FileStoreTable fileStoreTable,
@@ -54,7 +53,7 @@ public class PaimonSortedRecordReader extends PaimonRecordReader implements Sort
return comparator;
}
- private Comparator<com.alibaba.fluss.row.InternalRow> toFlussRowComparator(
+ private Comparator<org.apache.fluss.row.InternalRow> toFlussRowComparator(
RowType rowType, Comparator<org.apache.paimon.data.InternalRow> paimonRowcomparator) {
return (row1, row2) ->
paimonRowcomparator.compare(
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplit.java b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplit.java
index b28f8b61c..8ec0cb244 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplit.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplit.java
@@ -16,9 +16,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.source;
+package org.apache.fluss.lake.paimon.source;
-import com.alibaba.fluss.lake.source.LakeSplit;
+import org.apache.fluss.lake.source.LakeSplit;
import org.apache.paimon.data.BinaryRow;
import org.apache.paimon.table.source.DataSplit;
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlanner.java b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlanner.java
index 0371a0159..99244a2c1 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlanner.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlanner.java
@@ -16,11 +16,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.source;
+package org.apache.fluss.lake.paimon.source;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.source.Planner;
-import com.alibaba.fluss.metadata.TablePath;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.source.Planner;
+import org.apache.fluss.metadata.TablePath;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.catalog.Catalog;
@@ -39,7 +39,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import static com.alibaba.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
+import static org.apache.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
/** Split panner for paimon table. */
public class PaimonSplitPlanner implements Planner<PaimonSplit> {
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializer.java b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializer.java
index 112a8a3f2..acb9716e3 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializer.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializer.java
@@ -16,9 +16,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.source;
+package org.apache.fluss.lake.paimon.source;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
import org.apache.paimon.io.DataOutputViewStreamWrapper;
import org.apache.paimon.table.source.DataSplit;
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/PaimonLakeStorage.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/PaimonLakeStorage.java
index f3eac859a..a61a3d03d 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/PaimonLakeStorage.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/PaimonLakeStorage.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.lakestorage.LakeStorage;
-import com.alibaba.fluss.lake.paimon.source.PaimonLakeSource;
-import com.alibaba.fluss.lake.paimon.source.PaimonSplit;
-import com.alibaba.fluss.lake.paimon.tiering.PaimonCommittable;
-import com.alibaba.fluss.lake.paimon.tiering.PaimonLakeTieringFactory;
-import com.alibaba.fluss.lake.paimon.tiering.PaimonWriteResult;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
-import com.alibaba.fluss.metadata.TablePath;
+package org.apache.fluss.lake.paimon;
+
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.lakestorage.LakeStorage;
+import org.apache.fluss.lake.paimon.source.PaimonLakeSource;
+import org.apache.fluss.lake.paimon.source.PaimonSplit;
+import org.apache.fluss.lake.paimon.tiering.PaimonCommittable;
+import org.apache.fluss.lake.paimon.tiering.PaimonLakeTieringFactory;
+import org.apache.fluss.lake.paimon.tiering.PaimonWriteResult;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
+import org.apache.fluss.metadata.TablePath;
/** Paimon implementation of {@link LakeStorage}. */
public class PaimonLakeStorage implements LakeStorage {
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/FlussRecordAsPaimonRow.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/FlussRecordAsPaimonRow.java
index 5edeb482a..b237365cb 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/FlussRecordAsPaimonRow.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/FlussRecordAsPaimonRow.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.tiering;
+package org.apache.fluss.lake.paimon.tiering;
-import com.alibaba.fluss.lake.paimon.source.FlussRowAsPaimonRow;
-import com.alibaba.fluss.record.LogRecord;
+import org.apache.fluss.lake.paimon.source.FlussRowAsPaimonRow;
+import org.apache.fluss.record.LogRecord;
import org.apache.paimon.data.InternalRow;
import org.apache.paimon.data.Timestamp;
import org.apache.paimon.types.RowKind;
import org.apache.paimon.types.RowType;
-import static com.alibaba.fluss.lake.paimon.utils.PaimonConversions.toRowKind;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.lake.paimon.utils.PaimonConversions.toRowKind;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** To wrap Fluss {@link LogRecord} as paimon {@link InternalRow}. */
public class FlussRecordAsPaimonRow extends FlussRowAsPaimonRow {
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java
index 9b4c1fb5f..9c07eacbe 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/tiering/PaimonLakeCommitter.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.tiering;
+package org.apache.fluss.lake.paimon.tiering;
-import com.alibaba.fluss.lake.committer.BucketOffset;
-import com.alibaba.fluss.lake.committer.CommittedLakeSnapshot;
-import com.alibaba.fluss.lake.committer.LakeCommitter;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.utils.json.BucketOffsetJsonSerde;
+import org.apache.fluss.lake.committer.BucketOffset;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.lake.committer.LakeCommitter;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.utils.json.BucketOffsetJsonSerde;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
@@ -43,10 +43,10 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
-import static com.alibaba.fluss.lake.paimon.tiering.PaimonLakeTieringFactory.FLUSS_LAKE_TIERING_COMMIT_USER;
-import static com.alibaba.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
+import static org.apache.fluss.lake.paimon.tiering.PaimonLakeTieringFactory.FLUSS_LAKE_TIERING_COMMIT_USER;
+import static org.apache.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
import static org.apache.paimon.table.sink.BatchWriteBuilder.COMMIT_IDENTIFIER;
/** Implementation of {@link LakeCommitter} for Paimon. */
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverter.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverter.java
index 0384ef693..9c10ab1d9 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverter.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverter.java
@@ -16,16 +16,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.utils;
-
-import com.alibaba.fluss.predicate.And;
-import com.alibaba.fluss.predicate.CompoundPredicate;
-import com.alibaba.fluss.predicate.FieldRef;
-import com.alibaba.fluss.predicate.FunctionVisitor;
-import com.alibaba.fluss.predicate.LeafPredicate;
-import com.alibaba.fluss.predicate.Or;
-import com.alibaba.fluss.predicate.PredicateVisitor;
-
+package org.apache.fluss.lake.paimon.utils;
+
+import org.apache.fluss.predicate.And;
+import org.apache.fluss.predicate.CompoundPredicate;
+import org.apache.fluss.predicate.FieldRef;
+import org.apache.fluss.predicate.FunctionVisitor;
+import org.apache.fluss.predicate.LeafPredicate;
+import org.apache.fluss.predicate.Or;
+import org.apache.fluss.predicate.PredicateVisitor;
import org.apache.paimon.predicate.Predicate;
import org.apache.paimon.predicate.PredicateBuilder;
import org.apache.paimon.types.RowType;
@@ -34,10 +33,10 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.lake.paimon.utils.PaimonConversions.toPaimonLiteral;
+import static org.apache.fluss.lake.paimon.utils.PaimonConversions.toPaimonLiteral;
/**
- * Converts a Fluss {@link com.alibaba.fluss.predicate.Predicate} into a Paimon {@link Predicate}.
+ * Converts a Fluss {@link org.apache.fluss.predicate.Predicate} into a Paimon {@link Predicate}.
*
* <p>This class implements the {@link PredicateVisitor} pattern to traverse a tree of Fluss
* predicates. It handles both leaf-level conditions (like equals, greater than) and compound
@@ -55,7 +54,7 @@ public class FlussToPaimonPredicateConverter implements PredicateVisitor<Predica
}
public static Optional<Predicate> convert(
- RowType rowType, com.alibaba.fluss.predicate.Predicate flussPredicate) {
+ RowType rowType, org.apache.fluss.predicate.Predicate flussPredicate) {
try {
return Optional.of(flussPredicate.visit(new FlussToPaimonPredicateConverter(rowType)));
} catch (UnsupportedOperationException e) {
@@ -87,7 +86,7 @@ public class FlussToPaimonPredicateConverter implements PredicateVisitor<Predica
/**
* A visitor that implements the logic to convert each type of {@link
- * com.alibaba.fluss.predicate.LeafFunction} to a Paimon {@link Predicate}.
+ * org.apache.fluss.predicate.LeafFunction} to a Paimon {@link Predicate}.
*/
private class LeafFunctionConverter implements FunctionVisitor<Predicate> {
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonConversions.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonConversions.java
index 071704565..72033f257 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonConversions.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonConversions.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.utils;
+package org.apache.fluss.lake.paimon.utils;
-import com.alibaba.fluss.lake.paimon.source.FlussRowAsPaimonRow;
-import com.alibaba.fluss.metadata.ResolvedPartitionSpec;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.lake.paimon.source.FlussRowAsPaimonRow;
+import org.apache.fluss.metadata.ResolvedPartitionSpec;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.record.ChangeType;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.paimon.catalog.Identifier;
import org.apache.paimon.data.BinaryRow;
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
index a92c75279..e4351eab2 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
@@ -17,7 +17,7 @@
*/
<<<<<<<< HEAD:fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
-package com.alibaba.fluss.lake.paimon.utils;
+package org.apache.fluss.lake.paimon.utils;
========
package org.apache.fluss.flink.lakehouse.paimon.reader;
>>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/PaimonRowWrapper.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRowTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRowTest.java
index b20e1a5f2..c41b28dad 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRowTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRowTest.java
@@ -18,15 +18,15 @@
*
*/
-package com.alibaba.fluss.lake.paimon.source;
+package org.apache.fluss.lake.paimon.source;
-import com.alibaba.fluss.record.GenericRecord;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
+import org.apache.fluss.record.GenericRecord;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.TimestampNtz;
import org.apache.paimon.types.RowKind;
import org.apache.paimon.types.RowType;
@@ -34,11 +34,11 @@ import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
-import static com.alibaba.fluss.record.ChangeType.APPEND_ONLY;
-import static com.alibaba.fluss.record.ChangeType.DELETE;
-import static com.alibaba.fluss.record.ChangeType.INSERT;
-import static com.alibaba.fluss.record.ChangeType.UPDATE_AFTER;
-import static com.alibaba.fluss.record.ChangeType.UPDATE_BEFORE;
+import static org.apache.fluss.record.ChangeType.APPEND_ONLY;
+import static org.apache.fluss.record.ChangeType.DELETE;
+import static org.apache.fluss.record.ChangeType.INSERT;
+import static org.apache.fluss.record.ChangeType.UPDATE_AFTER;
+import static org.apache.fluss.record.ChangeType.UPDATE_BEFORE;
import static org.assertj.core.api.Assertions.assertThat;
/** Test case for {@link FlussRowAsPaimonRow}. */
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSourceTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSourceTest.java
index 9802230af..9cbe5b9f9 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSourceTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSourceTest.java
@@ -16,26 +16,25 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.source;
-
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.RecordReader;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.predicate.FieldRef;
-import com.alibaba.fluss.predicate.FunctionVisitor;
-import com.alibaba.fluss.predicate.LeafFunction;
-import com.alibaba.fluss.predicate.LeafPredicate;
-import com.alibaba.fluss.predicate.Predicate;
-import com.alibaba.fluss.predicate.PredicateBuilder;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.types.IntType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.types.StringType;
-import com.alibaba.fluss.utils.CloseableIterator;
+package org.apache.fluss.lake.paimon.source;
import org.apache.flink.types.Row;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.RecordReader;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.predicate.FieldRef;
+import org.apache.fluss.predicate.FunctionVisitor;
+import org.apache.fluss.predicate.LeafFunction;
+import org.apache.fluss.predicate.LeafPredicate;
+import org.apache.fluss.predicate.Predicate;
+import org.apache.fluss.predicate.PredicateBuilder;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.types.IntType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.types.StringType;
+import org.apache.fluss.utils.CloseableIterator;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.data.BinaryString;
import org.apache.paimon.data.GenericRow;
@@ -110,7 +109,7 @@ class PaimonLakeSourceTest extends PaimonSourceTestBase {
Predicate filter1 = FLUSS_BUILDER.greaterOrEqual(0, 2);
Predicate filter2 = FLUSS_BUILDER.lessOrEqual(0, 3);
Predicate filter3 =
- FLUSS_BUILDER.startsWith(1, com.alibaba.fluss.row.BinaryString.fromString("name"));
+ FLUSS_BUILDER.startsWith(1, org.apache.fluss.row.BinaryString.fromString("name"));
List<Predicate> allFilters = Arrays.asList(filter1, filter2, filter3);
LakeSource<PaimonSplit> lakeSource = lakeStorage.createLakeSource(tablePath);
@@ -128,8 +127,8 @@ class PaimonLakeSourceTest extends PaimonSourceTestBase {
// read data with filter to mae sure the reader with filter works properly
List<Row> actual = new ArrayList<>();
- com.alibaba.fluss.row.InternalRow.FieldGetter[] fieldGetters =
- com.alibaba.fluss.row.InternalRow.createFieldGetters(
+ org.apache.fluss.row.InternalRow.FieldGetter[] fieldGetters =
+ org.apache.fluss.row.InternalRow.createFieldGetters(
RowType.of(new IntType(), new StringType()));
RecordReader recordReader = lakeSource.createRecordReader(() -> paimonSplit);
try (CloseableIterator<LogRecord> iterator = recordReader.read()) {
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReaderTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReaderTest.java
index e29560298..d3446a47a 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReaderTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReaderTest.java
@@ -16,33 +16,32 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.source;
-
-import com.alibaba.fluss.lake.paimon.utils.PaimonRowAsFlussRow;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.RecordReader;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.types.BigIntType;
-import com.alibaba.fluss.types.BinaryType;
-import com.alibaba.fluss.types.BooleanType;
-import com.alibaba.fluss.types.DecimalType;
-import com.alibaba.fluss.types.DoubleType;
-import com.alibaba.fluss.types.FloatType;
-import com.alibaba.fluss.types.IntType;
-import com.alibaba.fluss.types.LocalZonedTimestampType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.types.SmallIntType;
-import com.alibaba.fluss.types.StringType;
-import com.alibaba.fluss.types.TimestampType;
-import com.alibaba.fluss.types.TinyIntType;
-import com.alibaba.fluss.utils.CloseableIterator;
+package org.apache.fluss.lake.paimon.source;
import org.apache.flink.types.Row;
+import org.apache.fluss.lake.paimon.utils.PaimonRowAsFlussRow;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.RecordReader;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.TimestampNtz;
+import org.apache.fluss.types.BigIntType;
+import org.apache.fluss.types.BinaryType;
+import org.apache.fluss.types.BooleanType;
+import org.apache.fluss.types.DecimalType;
+import org.apache.fluss.types.DoubleType;
+import org.apache.fluss.types.FloatType;
+import org.apache.fluss.types.IntType;
+import org.apache.fluss.types.LocalZonedTimestampType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.types.SmallIntType;
+import org.apache.fluss.types.StringType;
+import org.apache.fluss.types.TimestampType;
+import org.apache.fluss.types.TinyIntType;
+import org.apache.fluss.utils.CloseableIterator;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.Snapshot;
import org.apache.paimon.schema.Schema;
@@ -62,7 +61,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.testutils.DataTestUtils.row;
import static org.assertj.core.api.Assertions.assertThat;
/** Test case for {@link PaimonRecordReader}. */
@@ -247,7 +246,7 @@ class PaimonRecordReaderTest extends PaimonSourceTestBase {
for (int i = 0; i < rowCount; i++) {
if (partition == null) {
- com.alibaba.fluss.row.GenericRow row =
+ org.apache.fluss.row.GenericRow row =
row(
true,
(byte) 100,
@@ -256,7 +255,7 @@ class PaimonRecordReaderTest extends PaimonSourceTestBase {
i + 400L,
500.1f,
600.0d,
- com.alibaba.fluss.row.BinaryString.fromString(
+ org.apache.fluss.row.BinaryString.fromString(
"another_string_" + i),
Decimal.fromUnscaledLong(900, 5, 2),
Decimal.fromBigDecimal(new java.math.BigDecimal(1000), 20, 0),
@@ -271,7 +270,7 @@ class PaimonRecordReaderTest extends PaimonSourceTestBase {
rows.add(new FlussRowAsPaimonRow(row, table.rowType()));
flussRows.add(row);
} else {
- com.alibaba.fluss.row.GenericRow row =
+ org.apache.fluss.row.GenericRow row =
row(
true,
(byte) 100,
@@ -280,7 +279,7 @@ class PaimonRecordReaderTest extends PaimonSourceTestBase {
i + 400L,
500.1f,
600.0d,
- com.alibaba.fluss.row.BinaryString.fromString(
+ org.apache.fluss.row.BinaryString.fromString(
"another_string_" + i),
Decimal.fromUnscaledLong(900, 5, 2),
Decimal.fromBigDecimal(new java.math.BigDecimal(1000), 20, 0),
@@ -289,7 +288,7 @@ class PaimonRecordReaderTest extends PaimonSourceTestBase {
TimestampNtz.fromMillis(1698235273501L),
TimestampNtz.fromMillis(1698235273501L, 8000),
new byte[] {5, 6, 7, 8},
- com.alibaba.fluss.row.BinaryString.fromString(partition),
+ org.apache.fluss.row.BinaryString.fromString(partition),
0,
(long) i,
TimestampNtz.fromMillis(System.currentTimeMillis()));
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java
index 6efc8706c..997735124 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java
@@ -18,19 +18,18 @@
*
*/
-package com.alibaba.fluss.lake.paimon.source;
-
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.source.RecordReader;
-import com.alibaba.fluss.lake.source.SortedRecordReader;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.utils.CloseableIterator;
-
+package org.apache.fluss.lake.paimon.source;
+
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.RecordReader;
+import org.apache.fluss.lake.source.SortedRecordReader;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.TimestampNtz;
+import org.apache.fluss.utils.CloseableIterator;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.Snapshot;
import org.apache.paimon.schema.Schema;
@@ -47,7 +46,7 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.testutils.DataTestUtils.row;
import static org.assertj.core.api.Assertions.assertThat;
/** Test case for {@link PaimonSortedRecordReader}. */
@@ -156,7 +155,7 @@ class PaimonSortedRecordReaderTest extends PaimonSourceTestBase {
for (int i = 0; i < rowCount; i++) {
if (partition == null) {
- com.alibaba.fluss.row.GenericRow row =
+ org.apache.fluss.row.GenericRow row =
row(
i + 30,
true,
@@ -165,7 +164,7 @@ class PaimonSortedRecordReaderTest extends PaimonSourceTestBase {
400L,
500.1f,
600.0d,
- com.alibaba.fluss.row.BinaryString.fromString(
+ org.apache.fluss.row.BinaryString.fromString(
"another_string_" + i),
Decimal.fromUnscaledLong(900, 5, 2),
Decimal.fromBigDecimal(new java.math.BigDecimal(1000), 20, 0),
@@ -180,7 +179,7 @@ class PaimonSortedRecordReaderTest extends PaimonSourceTestBase {
rows.add(new FlussRowAsPaimonRow(row, table.rowType()));
flussRows.add(row);
} else {
- com.alibaba.fluss.row.GenericRow row =
+ org.apache.fluss.row.GenericRow row =
row(
i + 30,
true,
@@ -189,7 +188,7 @@ class PaimonSortedRecordReaderTest extends PaimonSourceTestBase {
400L,
500.1f,
600.0d,
- com.alibaba.fluss.row.BinaryString.fromString(
+ org.apache.fluss.row.BinaryString.fromString(
"another_string_" + i),
Decimal.fromUnscaledLong(900, 5, 2),
Decimal.fromBigDecimal(new java.math.BigDecimal(1000), 20, 0),
@@ -198,7 +197,7 @@ class PaimonSortedRecordReaderTest extends PaimonSourceTestBase {
TimestampNtz.fromMillis(1698235273501L),
TimestampNtz.fromMillis(1698235273501L, 8000),
new byte[] {5, 6, 7, 8},
- com.alibaba.fluss.row.BinaryString.fromString(partition),
+ org.apache.fluss.row.BinaryString.fromString(partition),
0,
(long) i,
TimestampNtz.fromMillis(System.currentTimeMillis()));
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSourceTestBase.java b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSourceTestBase.java
index 9d0961152..cad90c706 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSourceTestBase.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSourceTestBase.java
@@ -16,14 +16,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.source;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.paimon.PaimonLakeStorage;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.utils.CloseableIterator;
+package org.apache.fluss.lake.paimon.source;
import org.apache.flink.types.Row;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.paimon.PaimonLakeStorage;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.utils.CloseableIterator;
import org.apache.paimon.catalog.Catalog;
import org.apache.paimon.catalog.CatalogContext;
import org.apache.paimon.catalog.CatalogFactory;
@@ -43,7 +42,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
-import static com.alibaba.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
+import static org.apache.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
/** Base class for paimon lakehouse test. */
class PaimonSourceTestBase {
@@ -90,11 +89,11 @@ class PaimonSourceTestBase {
}
public static List<Row> convertToFlinkRow(
- com.alibaba.fluss.row.InternalRow.FieldGetter[] fieldGetters,
- CloseableIterator<com.alibaba.fluss.row.InternalRow> flussRowIterator) {
+ org.apache.fluss.row.InternalRow.FieldGetter[] fieldGetters,
+ CloseableIterator<org.apache.fluss.row.InternalRow> flussRowIterator) {
List<Row> rows = new ArrayList<>();
while (flussRowIterator.hasNext()) {
- com.alibaba.fluss.row.InternalRow row = flussRowIterator.next();
+ org.apache.fluss.row.InternalRow row = flussRowIterator.next();
Row flinkRow = new Row(fieldGetters.length);
for (int i = 0; i < fieldGetters.length; i++) {
flinkRow.setField(i, fieldGetters[i].getFieldOrNull(row));
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlannerTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlannerTest.java
index 293248fc7..faaeba74a 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlannerTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlannerTest.java
@@ -18,10 +18,10 @@
*
*/
-package com.alibaba.fluss.lake.paimon.source;
+package org.apache.fluss.lake.paimon.source;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.metadata.TablePath;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.metadata.TablePath;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.Snapshot;
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializerTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializerTest.java
index daba334fe..c94d91e9b 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializerTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializerTest.java
@@ -18,10 +18,10 @@
*
*/
-package com.alibaba.fluss.lake.paimon.source;
+package org.apache.fluss.lake.paimon.source;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.metadata.TablePath;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.metadata.TablePath;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.Snapshot;
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitTest.java
index 4b499d521..a81800374 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitTest.java
@@ -18,10 +18,10 @@
*
*/
-package com.alibaba.fluss.lake.paimon.source;
+package org.apache.fluss.lake.paimon.source;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.metadata.TablePath;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.metadata.TablePath;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.Snapshot;
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/utils/FlussToPaimonPredicateConverterTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/utils/FlussToPaimonPredicateConverterTest.java
index d1f38e3af..2128571ca 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/utils/FlussToPaimonPredicateConverterTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/utils/FlussToPaimonPredicateConverterTest.java
@@ -16,13 +16,13 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.utils;
+package org.apache.fluss.lake.paimon.utils;
-import com.alibaba.fluss.predicate.Predicate;
-import com.alibaba.fluss.predicate.PredicateBuilder;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.types.RowType;
+import org.apache.fluss.predicate.Predicate;
+import org.apache.fluss.predicate.PredicateBuilder;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.types.RowType;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
@@ -32,7 +32,7 @@ import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import static com.alibaba.fluss.row.BinaryString.fromString;
+import static org.apache.fluss.row.BinaryString.fromString;
import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link FlussToPaimonPredicateConverter}. */
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/testutils/FlinkPaimonTieringTestBase.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/testutils/FlinkPaimonTieringTestBase.java
index fe2933906..39b1cd5f2 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/testutils/FlinkPaimonTieringTestBase.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/testutils/FlinkPaimonTieringTestBase.java
@@ -15,30 +15,30 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.testutils;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.client.table.writer.AppendWriter;
-import com.alibaba.fluss.client.table.writer.TableWriter;
-import com.alibaba.fluss.client.table.writer.UpsertWriter;
-import com.alibaba.fluss.config.AutoPartitionTimeUnit;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.flink.tiering.LakeTieringJobBuilder;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.server.replica.Replica;
-import com.alibaba.fluss.server.testutils.FlussClusterExtension;
-import com.alibaba.fluss.server.zk.ZooKeeperClient;
-import com.alibaba.fluss.types.DataTypes;
+package org.apache.fluss.lake.paimon.testutils;
+
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.client.table.Table;
+import org.apache.fluss.client.table.writer.AppendWriter;
+import org.apache.fluss.client.table.writer.TableWriter;
+import org.apache.fluss.client.table.writer.UpsertWriter;
+import org.apache.fluss.config.AutoPartitionTimeUnit;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.flink.tiering.LakeTieringJobBuilder;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.server.replica.Replica;
+import org.apache.fluss.server.testutils.FlussClusterExtension;
+import org.apache.fluss.server.zk.ZooKeeperClient;
+import org.apache.fluss.types.DataTypes;
import org.apache.flink.api.common.RuntimeExecutionMode;
import org.apache.flink.core.execution.JobClient;
@@ -67,11 +67,11 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
-import static com.alibaba.fluss.flink.tiering.source.TieringSourceOptions.POLL_TIERING_TABLE_INTERVAL;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.retry;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.waitUntil;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.waitValue;
+import static org.apache.fluss.flink.tiering.source.TieringSourceOptions.POLL_TIERING_TABLE_INTERVAL;
+import static org.apache.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.testutils.common.CommonTestUtils.retry;
+import static org.apache.fluss.testutils.common.CommonTestUtils.waitUntil;
+import static org.apache.fluss.testutils.common.CommonTestUtils.waitValue;
import static org.assertj.core.api.Assertions.assertThat;
/** Test base for sync to paimon by Flink. */
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringITCase.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringITCase.java
index 0bccd2fb7..0a4c3e0c9 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringITCase.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringITCase.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.tiering;
-
-import com.alibaba.fluss.config.AutoPartitionTimeUnit;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.lake.paimon.testutils.FlinkPaimonTieringTestBase;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.utils.types.Tuple2;
+package org.apache.fluss.lake.paimon.tiering;
+
+import org.apache.fluss.config.AutoPartitionTimeUnit;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.lake.paimon.testutils.FlinkPaimonTieringTestBase;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.utils.types.Tuple2;
import org.apache.flink.core.execution.JobClient;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
@@ -47,8 +47,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
+import static org.apache.fluss.testutils.DataTestUtils.row;
import static org.assertj.core.api.Assertions.assertThat;
/** IT case for tiering tables to paimon. */
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java
index c323a584f..92f491e82 100644
--- a/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java
+++ b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/tiering/PaimonTieringTest.java
@@ -15,23 +15,22 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.paimon.tiering;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.committer.CommittedLakeSnapshot;
-import com.alibaba.fluss.lake.committer.LakeCommitter;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.lake.writer.LakeWriter;
-import com.alibaba.fluss.lake.writer.WriterInitContext;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.record.GenericRecord;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.utils.types.Tuple2;
-
+package org.apache.fluss.lake.paimon.tiering;
+
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.lake.committer.LakeCommitter;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.writer.LakeWriter;
+import org.apache.fluss.lake.writer.WriterInitContext;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.record.ChangeType;
+import org.apache.fluss.record.GenericRecord;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.utils.types.Tuple2;
import org.apache.paimon.CoreOptions;
import org.apache.paimon.catalog.Catalog;
import org.apache.paimon.catalog.CatalogContext;
@@ -67,17 +66,17 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
-import static com.alibaba.fluss.flink.tiering.committer.TieringCommitOperator.toBucketOffsetsProperty;
-import static com.alibaba.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
-import static com.alibaba.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
-import static com.alibaba.fluss.metadata.TableDescriptor.BUCKET_COLUMN_NAME;
-import static com.alibaba.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
-import static com.alibaba.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
-import static com.alibaba.fluss.record.ChangeType.DELETE;
-import static com.alibaba.fluss.record.ChangeType.INSERT;
-import static com.alibaba.fluss.record.ChangeType.UPDATE_AFTER;
-import static com.alibaba.fluss.record.ChangeType.UPDATE_BEFORE;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.flink.tiering.committer.TieringCommitOperator.toBucketOffsetsProperty;
+import static org.apache.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
+import static org.apache.fluss.lake.paimon.utils.PaimonConversions.toPaimon;
+import static org.apache.fluss.metadata.TableDescriptor.BUCKET_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
+import static org.apache.fluss.metadata.TableDescriptor.TIMESTAMP_COLUMN_NAME;
+import static org.apache.fluss.record.ChangeType.DELETE;
+import static org.apache.fluss.record.ChangeType.INSERT;
+import static org.apache.fluss.record.ChangeType.UPDATE_AFTER;
+import static org.apache.fluss.record.ChangeType.UPDATE_BEFORE;
+import static org.apache.fluss.utils.Preconditions.checkState;
import static org.assertj.core.api.Assertions.assertThat;
/** The UT for tiering to Paimon via {@link PaimonLakeTieringFactory}. */
@@ -667,7 +666,7 @@ class PaimonTieringTest {
}
@Override
- public com.alibaba.fluss.metadata.Schema schema() {
+ public org.apache.fluss.metadata.Schema schema() {
throw new UnsupportedOperationException(
"The lake writer in Paimon currently uses paimonCatalog to determine the schema.");
}
diff --git a/fluss-lake/pom.xml b/fluss-lake/pom.xml
index ddff6936b..e13cc3026 100644
--- a/fluss-lake/pom.xml
+++ b/fluss-lake/pom.xml
@@ -65,7 +65,7 @@
<version>${flink.version}</version>
</dependency>
<dependency>
- <groupId>com.alibaba.fluss</groupId>
+ <groupId>org.apache.fluss</groupId>
<artifactId>fluss-flink-${flink.major.version}</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/fluss-metrics/fluss-metrics-prometheus/src/test/java/org/apache/fluss/metrics/prometheus/PrometheusReporterTest.java b/fluss-metrics/fluss-metrics-prometheus/src/test/java/org/apache/fluss/metrics/prometheus/PrometheusReporterTest.java
index 5884552c6..17341bec2 100644
--- a/fluss-metrics/fluss-metrics-prometheus/src/test/java/org/apache/fluss/metrics/prometheus/PrometheusReporterTest.java
+++ b/fluss-metrics/fluss-metrics-prometheus/src/test/java/org/apache/fluss/metrics/prometheus/PrometheusReporterTest.java
@@ -15,23 +15,22 @@
* limitations under the License.
*/
-package com.alibaba.fluss.metrics.prometheus;
-
-import com.alibaba.fluss.metrics.Counter;
-import com.alibaba.fluss.metrics.Gauge;
-import com.alibaba.fluss.metrics.Histogram;
-import com.alibaba.fluss.metrics.Meter;
-import com.alibaba.fluss.metrics.Metric;
-import com.alibaba.fluss.metrics.SimpleCounter;
-import com.alibaba.fluss.metrics.groups.MetricGroup;
-import com.alibaba.fluss.metrics.util.TestHistogram;
-import com.alibaba.fluss.metrics.util.TestMeter;
-import com.alibaba.fluss.utils.NetUtils;
+package org.apache.fluss.metrics.prometheus;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
+import org.apache.fluss.metrics.Counter;
+import org.apache.fluss.metrics.Gauge;
+import org.apache.fluss.metrics.Histogram;
+import org.apache.fluss.metrics.Meter;
+import org.apache.fluss.metrics.Metric;
+import org.apache.fluss.metrics.SimpleCounter;
+import org.apache.fluss.metrics.groups.MetricGroup;
+import org.apache.fluss.metrics.util.TestHistogram;
+import org.apache.fluss.metrics.util.TestMeter;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
+import org.apache.fluss.utils.NetUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoCodeGenerator.java b/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoCodeGenerator.java
index 367c3e692..6cd420e69 100644
--- a/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoCodeGenerator.java
+++ b/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoCodeGenerator.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package com.alibaba.fluss.protogen.generator.generator;
+package org.apache.fluss.protogen.generator.generator;
import io.protostuff.parser.Proto;
import io.protostuff.parser.ProtoUtil;
diff --git a/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoGenUtil.java b/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoGenUtil.java
index c2e172445..d348b1a99 100644
--- a/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoGenUtil.java
+++ b/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoGenUtil.java
@@ -15,20 +15,19 @@
* limitations under the License.
*/
-package com.alibaba.fluss.protogen.generator.generator;
... 4135 lines suppressed ...
(fluss) 10/12: WIP
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit 89a426d78c3e018bc0a61a3ae236e6f7f996eebc
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 15:02:36 2025 +0800
WIP
---
.../src/test/java/org/apache/fluss/predicate/PredicateTest.java | 1 +
.../src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java | 1 +
.../src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java | 2 ++
.../test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java | 1 +
4 files changed, 5 insertions(+)
diff --git a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
index ad04985d7..5899a4425 100644
--- a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
@@ -31,6 +31,7 @@ import java.util.List;
import static org.apache.fluss.predicate.PredicateBuilderTest.test;
import static org.apache.fluss.row.BinaryString.fromString;
import static org.apache.fluss.testutils.DataTestUtils.row;
+import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link Predicate}s. */
public class PredicateTest {
diff --git a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
index f94f147fe..cedaadcbd 100644
--- a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
@@ -49,6 +49,7 @@ import static org.apache.fluss.record.TestData.DATA1;
import static org.apache.fluss.record.TestData.DATA1_ROW_TYPE;
import static org.apache.fluss.testutils.DataTestUtils.row;
import static org.apache.fluss.testutils.InternalRowAssert.assertThatRow;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
/** Tests for {@link ArrowReader} and {@link ArrowWriter}. */
diff --git a/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java b/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java
index a76df2d2a..7509df095 100644
--- a/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java
+++ b/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java
@@ -31,6 +31,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
+import static org.assertj.core.api.Assertions.assertThat;
+
/** The test for {@link RequestChannel}. */
public class RequestChannelTest {
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java b/fluss-server/src/test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java
index 72e6441cd..16a079421 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java
@@ -46,6 +46,7 @@ import static org.apache.fluss.record.TestData.DATA1_TABLE_ID_PK;
import static org.apache.fluss.record.TestData.DEFAULT_SCHEMA_ID;
import static org.apache.fluss.testutils.DataTestUtils.assertLogRecordsEqualsWithRowKind;
import static org.apache.fluss.testutils.DataTestUtils.row;
+import static org.assertj.core.api.Assertions.assertThat;
/** Test for {@link ArrowWalBuilder}. */
class ArrowWalBuilderTest {
(fluss) 03/12: [Improve] Update NOTICE.
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit 0a821866cf9637e5d6e39a4f3fbc140e4282e6ce
Author: benjobs <be...@apache.org>
AuthorDate: Sat Jul 5 10:31:36 2025 +0800
[Improve] Update NOTICE.
---
.../META-INF/services/org.junit.jupiter.api.extension.Extension | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fluss-filesystems/fluss-fs-s3/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/fluss-filesystems/fluss-fs-s3/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
index 590243ea8..ca0e907f6 100644
--- a/fluss-filesystems/fluss-fs-s3/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
+++ b/fluss-filesystems/fluss-fs-s3/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
@@ -16,4 +16,4 @@
# limitations under the License.
#
-com.alibaba.fluss.testutils.common.TestLoggerExtension
\ No newline at end of file
+org.apache.fluss.testutils.common.TestLoggerExtension
\ No newline at end of file
(fluss) 12/12: fix
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit 15df98387542956642fb7c52b92d9913d44bf37d
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 19:18:21 2025 +0800
fix
---
.../client/table/scanner/RemoteFileDownloader.java | 20 +++---
.../table/scanner/log/RemoteLogDownloader.java | 38 +++++------
.../table/scanner/log/RemoteLogDownloaderTest.java | 44 ++++++-------
.../tiering/FlussRecordAsIcebergRecord.java | 63 +++++++++---------
.../testutils/FlinkIcebergTieringTestBase.java | 77 +++++++++++-----------
.../lake/iceberg/tiering/IcebergTieringITCase.java | 51 +++++++-------
.../apache/fluss/lake/lance/LanceLakeCatalog.java | 16 ++---
.../apache/fluss/lake/lance/LanceLakeStorage.java | 18 ++---
.../fluss/lake/lance/tiering/ArrowWriter.java | 10 +--
.../fluss/lake/lance/tiering/LanceArrowWriter.java | 10 +--
.../lance/tiering/LanceCommittableSerializer.java | 4 +-
.../lake/lance/tiering/LanceLakeCommitter.java | 26 ++++----
.../lance/tiering/LanceLakeTieringFactory.java | 18 ++---
.../fluss/lake/lance/tiering/LanceLakeWriter.java | 14 ++--
.../lance/tiering/LanceWriteResultSerializer.java | 4 +-
.../fluss/lake/lance/utils/LanceArrowUtils.java | 74 ++++++++++-----------
.../lake/lance/utils/LanceDatasetAdapter.java | 8 +--
.../lake/lance/writers/ArrowBigIntWriter.java | 4 +-
.../lake/lance/writers/ArrowBinaryWriter.java | 4 +-
.../lake/lance/writers/ArrowBooleanWriter.java | 4 +-
.../fluss/lake/lance/writers/ArrowDateWriter.java | 4 +-
.../lake/lance/writers/ArrowDecimalWriter.java | 6 +-
.../lake/lance/writers/ArrowDoubleWriter.java | 4 +-
.../fluss/lake/lance/writers/ArrowFieldWriter.java | 4 +-
.../fluss/lake/lance/writers/ArrowFloatWriter.java | 4 +-
.../fluss/lake/lance/writers/ArrowIntWriter.java | 4 +-
.../lake/lance/writers/ArrowSmallIntWriter.java | 4 +-
.../fluss/lake/lance/writers/ArrowTimeWriter.java | 6 +-
.../lance/writers/ArrowTimestampLtzWriter.java | 8 +--
.../lance/writers/ArrowTimestampNtzWriter.java | 8 +--
.../lake/lance/writers/ArrowTinyIntWriter.java | 4 +-
.../lake/lance/writers/ArrowVarBinaryWriter.java | 4 +-
.../lake/lance/writers/ArrowVarCharWriter.java | 6 +-
.../lance/testutils/FlinkLanceTieringTestBase.java | 50 +++++++-------
.../lake/lance/tiering/LanceTieringITCase.java | 20 +++---
.../fluss/lake/lance/tiering/LanceTieringTest.java | 44 ++++++-------
.../lake/lance/LakeEnabledTableCreateITCase.java | 32 ++++-----
37 files changed, 357 insertions(+), 362 deletions(-)
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/RemoteFileDownloader.java b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/RemoteFileDownloader.java
index bcde64769..9034da551 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/RemoteFileDownloader.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/RemoteFileDownloader.java
@@ -15,17 +15,17 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.table.scanner;
+package org.apache.fluss.client.table.scanner;
-import com.alibaba.fluss.fs.FSDataInputStream;
-import com.alibaba.fluss.fs.FileSystem;
-import com.alibaba.fluss.fs.FsPath;
-import com.alibaba.fluss.fs.FsPathAndFileName;
-import com.alibaba.fluss.fs.utils.FileDownloadSpec;
-import com.alibaba.fluss.fs.utils.FileDownloadUtils;
-import com.alibaba.fluss.utils.CloseableRegistry;
-import com.alibaba.fluss.utils.IOUtils;
-import com.alibaba.fluss.utils.concurrent.ExecutorThreadFactory;
+import org.apache.fluss.fs.FSDataInputStream;
+import org.apache.fluss.fs.FileSystem;
+import org.apache.fluss.fs.FsPath;
+import org.apache.fluss.fs.FsPathAndFileName;
+import org.apache.fluss.fs.utils.FileDownloadSpec;
+import org.apache.fluss.fs.utils.FileDownloadUtils;
+import org.apache.fluss.utils.CloseableRegistry;
+import org.apache.fluss.utils.IOUtils;
+import org.apache.fluss.utils.concurrent.ExecutorThreadFactory;
import java.io.Closeable;
import java.io.IOException;
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloader.java b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloader.java
index c3f357eac..20b5ca5b8 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloader.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloader.java
@@ -15,21 +15,21 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.annotation.Internal;
-import com.alibaba.fluss.annotation.VisibleForTesting;
-import com.alibaba.fluss.client.metrics.ScannerMetricGroup;
-import com.alibaba.fluss.client.table.scanner.RemoteFileDownloader;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.fs.FsPath;
-import com.alibaba.fluss.fs.FsPathAndFileName;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.remote.RemoteLogSegment;
-import com.alibaba.fluss.utils.ExceptionUtils;
-import com.alibaba.fluss.utils.FlussPaths;
-import com.alibaba.fluss.utils.concurrent.ShutdownableThread;
+package org.apache.fluss.client.table.scanner.log;
+
+import org.apache.fluss.annotation.Internal;
+import org.apache.fluss.annotation.VisibleForTesting;
+import org.apache.fluss.client.metrics.ScannerMetricGroup;
+import org.apache.fluss.client.table.scanner.RemoteFileDownloader;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.fs.FsPath;
+import org.apache.fluss.fs.FsPathAndFileName;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.remote.RemoteLogSegment;
+import org.apache.fluss.utils.ExceptionUtils;
+import org.apache.fluss.utils.FlussPaths;
+import org.apache.fluss.utils.concurrent.ShutdownableThread;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,10 +50,10 @@ import java.util.concurrent.PriorityBlockingQueue;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
-import static com.alibaba.fluss.utils.FileUtils.deleteDirectoryQuietly;
-import static com.alibaba.fluss.utils.FlussPaths.LOG_FILE_SUFFIX;
-import static com.alibaba.fluss.utils.FlussPaths.remoteLogSegmentDir;
-import static com.alibaba.fluss.utils.FlussPaths.remoteLogSegmentFile;
+import static org.apache.fluss.utils.FileUtils.deleteDirectoryQuietly;
+import static org.apache.fluss.utils.FlussPaths.LOG_FILE_SUFFIX;
+import static org.apache.fluss.utils.FlussPaths.remoteLogSegmentDir;
+import static org.apache.fluss.utils.FlussPaths.remoteLogSegmentFile;
/** Downloader to read remote log files to local disk. */
@ThreadSafe
diff --git a/fluss-client/src/test/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloaderTest.java b/fluss-client/src/test/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloaderTest.java
index 61e649d3f..407756a7e 100644
--- a/fluss-client/src/test/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloaderTest.java
+++ b/fluss-client/src/test/java/org/apache/fluss/client/table/scanner/log/RemoteLogDownloaderTest.java
@@ -15,20 +15,20 @@
* limitations under the License.
*/
-package com.alibaba.fluss.client.table.scanner.log;
-
-import com.alibaba.fluss.client.metrics.ScannerMetricGroup;
-import com.alibaba.fluss.client.metrics.TestingScannerMetricGroup;
-import com.alibaba.fluss.client.table.scanner.RemoteFileDownloader;
-import com.alibaba.fluss.client.table.scanner.log.RemoteLogDownloader.RemoteLogDownloadRequest;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.fs.FsPath;
-import com.alibaba.fluss.metadata.PhysicalTablePath;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.remote.RemoteLogSegment;
-import com.alibaba.fluss.utils.FileUtils;
-import com.alibaba.fluss.utils.IOUtils;
+package org.apache.fluss.client.table.scanner.log;
+
+import org.apache.fluss.client.metrics.ScannerMetricGroup;
+import org.apache.fluss.client.metrics.TestingScannerMetricGroup;
+import org.apache.fluss.client.table.scanner.RemoteFileDownloader;
+import org.apache.fluss.client.table.scanner.log.RemoteLogDownloader.RemoteLogDownloadRequest;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.fs.FsPath;
+import org.apache.fluss.metadata.PhysicalTablePath;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.remote.RemoteLogSegment;
+import org.apache.fluss.utils.FileUtils;
+import org.apache.fluss.utils.IOUtils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -50,14 +50,14 @@ import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.record.TestData.DATA1_PHYSICAL_TABLE_PATH;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_ID;
-import static com.alibaba.fluss.record.TestData.DATA1_TABLE_PATH;
-import static com.alibaba.fluss.testutils.DataTestUtils.genRemoteLogSegmentFile;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.retry;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.waitUntil;
-import static com.alibaba.fluss.utils.FlussPaths.remoteLogDir;
-import static com.alibaba.fluss.utils.FlussPaths.remoteLogTabletDir;
+import static org.apache.fluss.record.TestData.DATA1_PHYSICAL_TABLE_PATH;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_ID;
+import static org.apache.fluss.record.TestData.DATA1_TABLE_PATH;
+import static org.apache.fluss.testutils.DataTestUtils.genRemoteLogSegmentFile;
+import static org.apache.fluss.testutils.common.CommonTestUtils.retry;
+import static org.apache.fluss.testutils.common.CommonTestUtils.waitUntil;
+import static org.apache.fluss.utils.FlussPaths.remoteLogDir;
+import static org.apache.fluss.utils.FlussPaths.remoteLogTabletDir;
import static org.assertj.core.api.Assertions.assertThat;
/** Tests for {@link RemoteLogDownloader}. */
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/FlussRecordAsIcebergRecord.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/FlussRecordAsIcebergRecord.java
index a28378d0b..0748c89c3 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/FlussRecordAsIcebergRecord.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/tiering/FlussRecordAsIcebergRecord.java
@@ -1,13 +1,12 @@
/*
- * 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
+ * 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
+ * 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,
@@ -16,29 +15,29 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
-
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.types.BigIntType;
-import com.alibaba.fluss.types.BinaryType;
-import com.alibaba.fluss.types.BooleanType;
-import com.alibaba.fluss.types.BytesType;
-import com.alibaba.fluss.types.CharType;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DateType;
-import com.alibaba.fluss.types.DecimalType;
-import com.alibaba.fluss.types.DoubleType;
-import com.alibaba.fluss.types.FloatType;
-import com.alibaba.fluss.types.IntType;
-import com.alibaba.fluss.types.LocalZonedTimestampType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.types.SmallIntType;
-import com.alibaba.fluss.types.StringType;
-import com.alibaba.fluss.types.TimeType;
-import com.alibaba.fluss.types.TimestampType;
-import com.alibaba.fluss.types.TinyIntType;
-import com.alibaba.fluss.utils.DateTimeUtils;
+package org.apache.fluss.lake.iceberg.tiering;
+
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.types.BigIntType;
+import org.apache.fluss.types.BinaryType;
+import org.apache.fluss.types.BooleanType;
+import org.apache.fluss.types.BytesType;
+import org.apache.fluss.types.CharType;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DateType;
+import org.apache.fluss.types.DecimalType;
+import org.apache.fluss.types.DoubleType;
+import org.apache.fluss.types.FloatType;
+import org.apache.fluss.types.IntType;
+import org.apache.fluss.types.LocalZonedTimestampType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.types.SmallIntType;
+import org.apache.fluss.types.StringType;
+import org.apache.fluss.types.TimeType;
+import org.apache.fluss.types.TimestampType;
+import org.apache.fluss.types.TinyIntType;
+import org.apache.fluss.utils.DateTimeUtils;
import org.apache.iceberg.Schema;
import org.apache.iceberg.data.Record;
@@ -50,7 +49,7 @@ import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.util.Map;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkState;
/**
* Wrap Fluss {@link LogRecord} as Iceberg {@link Record}.
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/testutils/FlinkIcebergTieringTestBase.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/testutils/FlinkIcebergTieringTestBase.java
index 26de89e09..5eafb47e8 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/testutils/FlinkIcebergTieringTestBase.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/testutils/FlinkIcebergTieringTestBase.java
@@ -1,13 +1,12 @@
/*
- * 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
+ * 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
+ * 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,
@@ -16,31 +15,31 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.testutils;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.client.table.writer.AppendWriter;
-import com.alibaba.fluss.client.table.writer.TableWriter;
-import com.alibaba.fluss.client.table.writer.UpsertWriter;
-import com.alibaba.fluss.config.AutoPartitionTimeUnit;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.flink.tiering.LakeTieringJobBuilder;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.server.replica.Replica;
-import com.alibaba.fluss.server.testutils.FlussClusterExtension;
-import com.alibaba.fluss.server.zk.ZooKeeperClient;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.utils.DateTimeUtils;
+package org.apache.fluss.lake.iceberg.testutils;
+
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.client.table.Table;
+import org.apache.fluss.client.table.writer.AppendWriter;
+import org.apache.fluss.client.table.writer.TableWriter;
+import org.apache.fluss.client.table.writer.UpsertWriter;
+import org.apache.fluss.config.AutoPartitionTimeUnit;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.flink.tiering.LakeTieringJobBuilder;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.server.replica.Replica;
+import org.apache.fluss.server.testutils.FlussClusterExtension;
+import org.apache.fluss.server.zk.ZooKeeperClient;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.utils.DateTimeUtils;
import org.apache.flink.api.common.RuntimeExecutionMode;
import org.apache.flink.core.execution.JobClient;
@@ -80,12 +79,12 @@ import java.util.Optional;
import java.util.SortedSet;
import java.util.TreeSet;
-import static com.alibaba.fluss.flink.tiering.source.TieringSourceOptions.POLL_TIERING_TABLE_INTERVAL;
-import static com.alibaba.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
-import static com.alibaba.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.retry;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.waitValue;
+import static org.apache.fluss.flink.tiering.source.TieringSourceOptions.POLL_TIERING_TABLE_INTERVAL;
+import static org.apache.fluss.lake.iceberg.utils.IcebergConversions.toIceberg;
+import static org.apache.fluss.metadata.TableDescriptor.OFFSET_COLUMN_NAME;
+import static org.apache.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.testutils.common.CommonTestUtils.retry;
+import static org.apache.fluss.testutils.common.CommonTestUtils.waitValue;
import static org.apache.iceberg.expressions.Expressions.equal;
import static org.assertj.core.api.Assertions.assertThat;
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringITCase.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringITCase.java
index c0b831f82..9561c3a71 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringITCase.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringITCase.java
@@ -1,13 +1,12 @@
/*
- * 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
+ * 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
+ * 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,
@@ -16,23 +15,23 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.iceberg.tiering;
+package org.apache.fluss.lake.iceberg.tiering;
-import com.alibaba.fluss.config.AutoPartitionTimeUnit;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.lake.iceberg.testutils.FlinkIcebergTieringTestBase;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.TimestampLtz;
-import com.alibaba.fluss.row.TimestampNtz;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.utils.TypeUtils;
-import com.alibaba.fluss.utils.types.Tuple2;
+import org.apache.fluss.config.AutoPartitionTimeUnit;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.lake.iceberg.testutils.FlinkIcebergTieringTestBase;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.TimestampLtz;
+import org.apache.fluss.row.TimestampNtz;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.utils.TypeUtils;
+import org.apache.fluss.utils.types.Tuple2;
import org.apache.flink.core.execution.JobClient;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
@@ -47,8 +46,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
+import static org.apache.fluss.testutils.DataTestUtils.row;
/** The ITCase for tiering into iceberg. */
class IcebergTieringITCase extends FlinkIcebergTieringTestBase {
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeCatalog.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeCatalog.java
index bb2df9389..16a063499 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeCatalog.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeCatalog.java
@@ -15,15 +15,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance;
+package org.apache.fluss.lake.lance;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.InvalidTableException;
-import com.alibaba.fluss.lake.lakestorage.LakeCatalog;
-import com.alibaba.fluss.lake.lance.utils.LanceArrowUtils;
-import com.alibaba.fluss.lake.lance.utils.LanceDatasetAdapter;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.InvalidTableException;
+import org.apache.fluss.lake.lakestorage.LakeCatalog;
+import org.apache.fluss.lake.lance.utils.LanceArrowUtils;
+import org.apache.fluss.lake.lance.utils.LanceDatasetAdapter;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
import com.lancedb.lance.WriteParams;
import org.apache.arrow.vector.types.pojo.Field;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeStorage.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeStorage.java
index c4b51cd9c..3cadec74a 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeStorage.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeStorage.java
@@ -15,16 +15,16 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance;
+package org.apache.fluss.lake.lance;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.lakestorage.LakeStorage;
-import com.alibaba.fluss.lake.lance.tiering.LanceCommittable;
-import com.alibaba.fluss.lake.lance.tiering.LanceLakeTieringFactory;
-import com.alibaba.fluss.lake.lance.tiering.LanceWriteResult;
-import com.alibaba.fluss.lake.source.LakeSource;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
-import com.alibaba.fluss.metadata.TablePath;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.lakestorage.LakeStorage;
+import org.apache.fluss.lake.lance.tiering.LanceCommittable;
+import org.apache.fluss.lake.lance.tiering.LanceLakeTieringFactory;
+import org.apache.fluss.lake.lance.tiering.LanceWriteResult;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
+import org.apache.fluss.metadata.TablePath;
/** Lance implementation of {@link LakeStorage}. */
public class LanceLakeStorage implements LakeStorage {
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/ArrowWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/ArrowWriter.java
index 053b348b3..928a33e3c 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/ArrowWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/ArrowWriter.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
+package org.apache.fluss.lake.lance.tiering;
-import com.alibaba.fluss.lake.lance.utils.LanceArrowUtils;
-import com.alibaba.fluss.lake.lance.writers.ArrowFieldWriter;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.types.RowType;
+import org.apache.fluss.lake.lance.utils.LanceArrowUtils;
+import org.apache.fluss.lake.lance.writers.ArrowFieldWriter;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.types.RowType;
import org.apache.arrow.vector.FieldVector;
import org.apache.arrow.vector.VectorSchemaRoot;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceArrowWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceArrowWriter.java
index e2d0f4944..e164f82ae 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceArrowWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceArrowWriter.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
+package org.apache.fluss.lake.lance.tiering;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.types.RowType;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.types.RowType;
import org.apache.arrow.memory.BufferAllocator;
import org.apache.arrow.vector.ipc.ArrowReader;
@@ -29,8 +29,8 @@ import java.util.concurrent.Semaphore;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
-import static com.alibaba.fluss.utils.Preconditions.checkArgument;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkArgument;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/** A custom arrow reader that supports writes Fluss internal rows while reading data in batches. */
public class LanceArrowWriter extends ArrowReader {
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceCommittableSerializer.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceCommittableSerializer.java
index abe7efc83..d128acdc1 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceCommittableSerializer.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceCommittableSerializer.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
+package org.apache.fluss.lake.lance.tiering;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
import com.lancedb.lance.FragmentMetadata;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeCommitter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeCommitter.java
index 808eb41e8..1bca63242 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeCommitter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeCommitter.java
@@ -15,17 +15,17 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.committer.BucketOffset;
-import com.alibaba.fluss.lake.committer.CommittedLakeSnapshot;
-import com.alibaba.fluss.lake.committer.LakeCommitter;
-import com.alibaba.fluss.lake.lance.LanceConfig;
-import com.alibaba.fluss.lake.lance.utils.LanceDatasetAdapter;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.utils.json.BucketOffsetJsonSerde;
-import com.alibaba.fluss.utils.types.Tuple2;
+package org.apache.fluss.lake.lance.tiering;
+
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.committer.BucketOffset;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.lake.committer.LakeCommitter;
+import org.apache.fluss.lake.lance.LanceConfig;
+import org.apache.fluss.lake.lance.utils.LanceDatasetAdapter;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.utils.json.BucketOffsetJsonSerde;
+import org.apache.fluss.utils.types.Tuple2;
import com.lancedb.lance.Dataset;
import com.lancedb.lance.FragmentMetadata;
@@ -45,8 +45,8 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
-import static com.alibaba.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
-import static com.alibaba.fluss.lake.writer.LakeTieringFactory.FLUSS_LAKE_TIERING_COMMIT_USER;
+import static org.apache.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
+import static org.apache.fluss.lake.writer.LakeTieringFactory.FLUSS_LAKE_TIERING_COMMIT_USER;
/** Implementation of {@link LakeCommitter} for Lance. */
public class LanceLakeCommitter implements LakeCommitter<LanceWriteResult, LanceCommittable> {
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeTieringFactory.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeTieringFactory.java
index 1bd0894b2..1c704cd8a 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeTieringFactory.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeTieringFactory.java
@@ -15,15 +15,15 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
-
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.committer.CommitterInitContext;
-import com.alibaba.fluss.lake.committer.LakeCommitter;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.lake.writer.LakeTieringFactory;
-import com.alibaba.fluss.lake.writer.LakeWriter;
-import com.alibaba.fluss.lake.writer.WriterInitContext;
+package org.apache.fluss.lake.lance.tiering;
+
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.committer.CommitterInitContext;
+import org.apache.fluss.lake.committer.LakeCommitter;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.writer.LakeTieringFactory;
+import org.apache.fluss.lake.writer.LakeWriter;
+import org.apache.fluss.lake.writer.WriterInitContext;
import java.io.IOException;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeWriter.java
index 73c0fdfdb..e3f3e9b40 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeWriter.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
+package org.apache.fluss.lake.lance.tiering;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.lance.LanceConfig;
-import com.alibaba.fluss.lake.lance.utils.LanceDatasetAdapter;
-import com.alibaba.fluss.lake.writer.LakeWriter;
-import com.alibaba.fluss.lake.writer.WriterInitContext;
-import com.alibaba.fluss.record.LogRecord;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.lance.LanceConfig;
+import org.apache.fluss.lake.lance.utils.LanceDatasetAdapter;
+import org.apache.fluss.lake.writer.LakeWriter;
+import org.apache.fluss.lake.writer.WriterInitContext;
+import org.apache.fluss.record.LogRecord;
import com.lancedb.lance.FragmentMetadata;
import com.lancedb.lance.WriteParams;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResultSerializer.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResultSerializer.java
index 81c1b8450..228f2215b 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResultSerializer.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResultSerializer.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
+package org.apache.fluss.lake.lance.tiering;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceArrowUtils.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceArrowUtils.java
index 4de499ffe..6b4da804f 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceArrowUtils.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceArrowUtils.java
@@ -15,44 +15,44 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.utils;
+package org.apache.fluss.lake.lance.utils;
-import com.alibaba.fluss.lake.lance.writers.ArrowBigIntWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowBinaryWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowBooleanWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowDateWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowDecimalWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowDoubleWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowFieldWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowFloatWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowIntWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowSmallIntWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowTimeWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowTimestampLtzWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowTimestampNtzWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowTinyIntWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowVarBinaryWriter;
-import com.alibaba.fluss.lake.lance.writers.ArrowVarCharWriter;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.types.BigIntType;
-import com.alibaba.fluss.types.BinaryType;
-import com.alibaba.fluss.types.BooleanType;
-import com.alibaba.fluss.types.BytesType;
-import com.alibaba.fluss.types.CharType;
-import com.alibaba.fluss.types.DataType;
-import com.alibaba.fluss.types.DataTypeDefaultVisitor;
-import com.alibaba.fluss.types.DateType;
-import com.alibaba.fluss.types.DecimalType;
-import com.alibaba.fluss.types.DoubleType;
-import com.alibaba.fluss.types.FloatType;
-import com.alibaba.fluss.types.IntType;
-import com.alibaba.fluss.types.LocalZonedTimestampType;
-import com.alibaba.fluss.types.RowType;
-import com.alibaba.fluss.types.SmallIntType;
-import com.alibaba.fluss.types.StringType;
-import com.alibaba.fluss.types.TimeType;
-import com.alibaba.fluss.types.TimestampType;
-import com.alibaba.fluss.types.TinyIntType;
+import org.apache.fluss.lake.lance.writers.ArrowBigIntWriter;
+import org.apache.fluss.lake.lance.writers.ArrowBinaryWriter;
+import org.apache.fluss.lake.lance.writers.ArrowBooleanWriter;
+import org.apache.fluss.lake.lance.writers.ArrowDateWriter;
+import org.apache.fluss.lake.lance.writers.ArrowDecimalWriter;
+import org.apache.fluss.lake.lance.writers.ArrowDoubleWriter;
+import org.apache.fluss.lake.lance.writers.ArrowFieldWriter;
+import org.apache.fluss.lake.lance.writers.ArrowFloatWriter;
+import org.apache.fluss.lake.lance.writers.ArrowIntWriter;
+import org.apache.fluss.lake.lance.writers.ArrowSmallIntWriter;
+import org.apache.fluss.lake.lance.writers.ArrowTimeWriter;
+import org.apache.fluss.lake.lance.writers.ArrowTimestampLtzWriter;
+import org.apache.fluss.lake.lance.writers.ArrowTimestampNtzWriter;
+import org.apache.fluss.lake.lance.writers.ArrowTinyIntWriter;
+import org.apache.fluss.lake.lance.writers.ArrowVarBinaryWriter;
+import org.apache.fluss.lake.lance.writers.ArrowVarCharWriter;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.types.BigIntType;
+import org.apache.fluss.types.BinaryType;
+import org.apache.fluss.types.BooleanType;
+import org.apache.fluss.types.BytesType;
+import org.apache.fluss.types.CharType;
+import org.apache.fluss.types.DataType;
+import org.apache.fluss.types.DataTypeDefaultVisitor;
+import org.apache.fluss.types.DateType;
+import org.apache.fluss.types.DecimalType;
+import org.apache.fluss.types.DoubleType;
+import org.apache.fluss.types.FloatType;
+import org.apache.fluss.types.IntType;
+import org.apache.fluss.types.LocalZonedTimestampType;
+import org.apache.fluss.types.RowType;
+import org.apache.fluss.types.SmallIntType;
+import org.apache.fluss.types.StringType;
+import org.apache.fluss.types.TimeType;
+import org.apache.fluss.types.TimestampType;
+import org.apache.fluss.types.TinyIntType;
import org.apache.arrow.vector.BigIntVector;
import org.apache.arrow.vector.BitVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java
index 1ffd94565..5d98da77f 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java
@@ -15,13 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.utils;
-
-import com.alibaba.fluss.lake.lance.LanceConfig;
-import com.alibaba.fluss.lake.lance.tiering.LanceArrowWriter;
-import com.alibaba.fluss.types.RowType;
+package org.apache.fluss.lake.lance.utils;
import org.apache.fluss.lake.lance.LanceConfig;
+import org.apache.fluss.lake.lance.tiering.LanceArrowWriter;
+import org.apache.fluss.types.RowType;
import com.lancedb.lance.Dataset;
import com.lancedb.lance.Fragment;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowBigIntWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowBigIntWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowBigIntWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowBigIntWriter.java
index 55026de5b..4cc124bec 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowBigIntWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowBigIntWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.BigIntVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowBinaryWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowBinaryWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowBinaryWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowBinaryWriter.java
index b33fd83f4..75fa16d76 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowBinaryWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowBinaryWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.FixedSizeBinaryVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowBooleanWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowBooleanWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowBooleanWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowBooleanWriter.java
index 80b8e79d8..85c9b7b38 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowBooleanWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowBooleanWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.BitVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowDateWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowDateWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowDateWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowDateWriter.java
index 141df39a8..8aa2ec7bd 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowDateWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowDateWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.DateDayVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowDecimalWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowDecimalWriter.java
similarity index 94%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowDecimalWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowDecimalWriter.java
index f4e2e4ab9..0a9d01c4e 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowDecimalWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowDecimalWriter.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.Decimal;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.Decimal;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.DecimalVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowDoubleWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowDoubleWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowDoubleWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowDoubleWriter.java
index f3d54bdf3..459d1ac86 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowDoubleWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowDoubleWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.Float8Vector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowFieldWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowFieldWriter.java
similarity index 94%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowFieldWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowFieldWriter.java
index 0278d2b29..15a56fc55 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowFieldWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowFieldWriter.java
@@ -15,11 +15,11 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
import org.apache.arrow.vector.ValueVector;
-import static com.alibaba.fluss.utils.Preconditions.checkNotNull;
+import static org.apache.fluss.utils.Preconditions.checkNotNull;
/**
* Base class for arrow field writer which is used to convert a field to an Arrow format.
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowFloatWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowFloatWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowFloatWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowFloatWriter.java
index e971e7735..c5528580a 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowFloatWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowFloatWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.Float4Vector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowIntWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowIntWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowIntWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowIntWriter.java
index 06f397b8e..6b5ee8588 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowIntWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowIntWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.IntVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowSmallIntWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowSmallIntWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowSmallIntWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowSmallIntWriter.java
index 3b410ed6a..aab41753b 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowSmallIntWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowSmallIntWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.SmallIntVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTimeWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTimeWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTimeWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTimeWriter.java
index fcfe9fecb..bf1e1e901 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTimeWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTimeWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.BaseFixedWidthVector;
import org.apache.arrow.vector.TimeMicroVector;
@@ -26,7 +26,7 @@ import org.apache.arrow.vector.TimeNanoVector;
import org.apache.arrow.vector.TimeSecVector;
import org.apache.arrow.vector.ValueVector;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** {@link ArrowFieldWriter} for Time. */
public class ArrowTimeWriter extends ArrowFieldWriter<InternalRow> {
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTimestampLtzWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTimestampLtzWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTimestampLtzWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTimestampLtzWriter.java
index 3ea10d399..a9333c000 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTimestampLtzWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTimestampLtzWriter.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.TimestampLtz;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.TimestampLtz;
import org.apache.arrow.vector.TimeStampMicroVector;
import org.apache.arrow.vector.TimeStampMilliVector;
@@ -27,7 +27,7 @@ import org.apache.arrow.vector.TimeStampVector;
import org.apache.arrow.vector.ValueVector;
import org.apache.arrow.vector.types.pojo.ArrowType;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** {@link ArrowFieldWriter} for TimestampLtz. */
public class ArrowTimestampLtzWriter extends ArrowFieldWriter<InternalRow> {
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTimestampNtzWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTimestampNtzWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTimestampNtzWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTimestampNtzWriter.java
index 3d129be98..c57a30eb2 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTimestampNtzWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTimestampNtzWriter.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.row.TimestampNtz;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.row.TimestampNtz;
import org.apache.arrow.vector.TimeStampMicroVector;
import org.apache.arrow.vector.TimeStampMilliVector;
@@ -27,7 +27,7 @@ import org.apache.arrow.vector.TimeStampVector;
import org.apache.arrow.vector.ValueVector;
import org.apache.arrow.vector.types.pojo.ArrowType;
-import static com.alibaba.fluss.utils.Preconditions.checkState;
+import static org.apache.fluss.utils.Preconditions.checkState;
/** {@link ArrowFieldWriter} for TimestampNtz. */
public class ArrowTimestampNtzWriter extends ArrowFieldWriter<InternalRow> {
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTinyIntWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTinyIntWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTinyIntWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTinyIntWriter.java
index 805d24afe..0be03aac7 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowTinyIntWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowTinyIntWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.TinyIntVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowVarBinaryWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowVarBinaryWriter.java
similarity index 95%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowVarBinaryWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowVarBinaryWriter.java
index d3be0a653..3c9668a3c 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowVarBinaryWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowVarBinaryWriter.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.VarBinaryVector;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowVarCharWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowVarCharWriter.java
similarity index 93%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowVarCharWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowVarCharWriter.java
index 05b2d442c..72a401785 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/writers/ArrowVarCharWriter.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/writers/ArrowVarCharWriter.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.writers;
+package org.apache.fluss.lake.lance.writers;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.InternalRow;
import org.apache.arrow.vector.VarCharVector;
diff --git a/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/testutils/FlinkLanceTieringTestBase.java b/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/testutils/FlinkLanceTieringTestBase.java
index 728e4a8a9..a548e3558 100644
--- a/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/testutils/FlinkLanceTieringTestBase.java
+++ b/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/testutils/FlinkLanceTieringTestBase.java
@@ -15,29 +15,29 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.testutils;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.client.table.Table;
-import com.alibaba.fluss.client.table.writer.AppendWriter;
-import com.alibaba.fluss.client.table.writer.TableWriter;
-import com.alibaba.fluss.client.table.writer.UpsertWriter;
-import com.alibaba.fluss.config.AutoPartitionTimeUnit;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.flink.tiering.LakeTieringJobBuilder;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.InternalRow;
-import com.alibaba.fluss.server.replica.Replica;
-import com.alibaba.fluss.server.testutils.FlussClusterExtension;
-import com.alibaba.fluss.types.DataTypes;
+package org.apache.fluss.lake.lance.testutils;
+
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.client.table.Table;
+import org.apache.fluss.client.table.writer.AppendWriter;
+import org.apache.fluss.client.table.writer.TableWriter;
+import org.apache.fluss.client.table.writer.UpsertWriter;
+import org.apache.fluss.config.AutoPartitionTimeUnit;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.flink.tiering.LakeTieringJobBuilder;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.server.replica.Replica;
+import org.apache.fluss.server.testutils.FlussClusterExtension;
+import org.apache.fluss.types.DataTypes;
import org.apache.flink.api.common.RuntimeExecutionMode;
import org.apache.flink.core.execution.JobClient;
@@ -53,8 +53,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.flink.tiering.source.TieringSourceOptions.POLL_TIERING_TABLE_INTERVAL;
-import static com.alibaba.fluss.testutils.common.CommonTestUtils.retry;
+import static org.apache.fluss.flink.tiering.source.TieringSourceOptions.POLL_TIERING_TABLE_INTERVAL;
+import static org.apache.fluss.testutils.common.CommonTestUtils.retry;
import static org.assertj.core.api.Assertions.assertThat;
/** Test base for sync to lance by Flink. */
diff --git a/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringITCase.java b/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringITCase.java
index ee54dfd92..f2475cd1d 100644
--- a/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringITCase.java
+++ b/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringITCase.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
+package org.apache.fluss.lake.lance.tiering;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.lance.LanceConfig;
-import com.alibaba.fluss.lake.lance.testutils.FlinkLanceTieringTestBase;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.row.InternalRow;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.lance.LanceConfig;
+import org.apache.fluss.lake.lance.testutils.FlinkLanceTieringTestBase;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.row.InternalRow;
import com.lancedb.lance.Dataset;
import com.lancedb.lance.ReadOptions;
@@ -44,9 +44,9 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import static com.alibaba.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
-import static com.alibaba.fluss.lake.writer.LakeTieringFactory.FLUSS_LAKE_TIERING_COMMIT_USER;
-import static com.alibaba.fluss.testutils.DataTestUtils.row;
+import static org.apache.fluss.lake.committer.BucketOffset.FLUSS_LAKE_SNAP_BUCKET_OFFSET_PROPERTY;
+import static org.apache.fluss.lake.writer.LakeTieringFactory.FLUSS_LAKE_TIERING_COMMIT_USER;
+import static org.apache.fluss.testutils.DataTestUtils.row;
import static org.assertj.core.api.Assertions.assertThat;
/** IT case for tiering tables to lance. */
diff --git a/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringTest.java b/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringTest.java
index 60b7a330e..3017d38c2 100644
--- a/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringTest.java
+++ b/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/tiering/LanceTieringTest.java
@@ -15,27 +15,27 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance.tiering;
+package org.apache.fluss.lake.lance.tiering;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.lake.committer.CommittedLakeSnapshot;
-import com.alibaba.fluss.lake.committer.LakeCommitter;
-import com.alibaba.fluss.lake.lance.LanceConfig;
-import com.alibaba.fluss.lake.lance.utils.LanceArrowUtils;
-import com.alibaba.fluss.lake.lance.utils.LanceDatasetAdapter;
-import com.alibaba.fluss.lake.serializer.SimpleVersionedSerializer;
-import com.alibaba.fluss.lake.writer.LakeWriter;
-import com.alibaba.fluss.lake.writer.WriterInitContext;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableBucket;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.record.ChangeType;
-import com.alibaba.fluss.record.GenericRecord;
-import com.alibaba.fluss.record.LogRecord;
-import com.alibaba.fluss.row.BinaryString;
-import com.alibaba.fluss.row.GenericRow;
-import com.alibaba.fluss.types.DataTypes;
-import com.alibaba.fluss.utils.types.Tuple2;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.lake.committer.LakeCommitter;
+import org.apache.fluss.lake.lance.LanceConfig;
+import org.apache.fluss.lake.lance.utils.LanceArrowUtils;
+import org.apache.fluss.lake.lance.utils.LanceDatasetAdapter;
+import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
+import org.apache.fluss.lake.writer.LakeWriter;
+import org.apache.fluss.lake.writer.WriterInitContext;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.record.ChangeType;
+import org.apache.fluss.record.GenericRecord;
+import org.apache.fluss.record.LogRecord;
+import org.apache.fluss.row.BinaryString;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.types.DataTypes;
+import org.apache.fluss.utils.types.Tuple2;
import com.lancedb.lance.Dataset;
import com.lancedb.lance.WriteParams;
@@ -61,7 +61,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
-import static com.alibaba.fluss.flink.tiering.committer.TieringCommitOperator.toBucketOffsetsProperty;
+import static org.apache.fluss.flink.tiering.committer.TieringCommitOperator.toBucketOffsetsProperty;
import static org.assertj.core.api.Assertions.assertThat;
/** The UT for tiering to Lance via {@link LanceLakeTieringFactory}. */
@@ -265,7 +265,7 @@ class LanceTieringTest {
}
@Override
- public com.alibaba.fluss.metadata.Schema schema() {
+ public org.apache.fluss.metadata.Schema schema() {
return schema;
}
diff --git a/fluss-lake/fluss-lake-lance/src/test/java/org/apache/fluss/lake/lance/LakeEnabledTableCreateITCase.java b/fluss-lake/fluss-lake-lance/src/test/java/org/apache/fluss/lake/lance/LakeEnabledTableCreateITCase.java
index 2be42fff4..eeab99b99 100644
--- a/fluss-lake/fluss-lake-lance/src/test/java/org/apache/fluss/lake/lance/LakeEnabledTableCreateITCase.java
+++ b/fluss-lake/fluss-lake-lance/src/test/java/org/apache/fluss/lake/lance/LakeEnabledTableCreateITCase.java
@@ -15,22 +15,22 @@
* limitations under the License.
*/
-package com.alibaba.fluss.lake.lance;
-
-import com.alibaba.fluss.client.Connection;
-import com.alibaba.fluss.client.ConnectionFactory;
-import com.alibaba.fluss.client.admin.Admin;
-import com.alibaba.fluss.config.ConfigOptions;
-import com.alibaba.fluss.config.Configuration;
-import com.alibaba.fluss.exception.FlussRuntimeException;
-import com.alibaba.fluss.exception.InvalidTableException;
-import com.alibaba.fluss.lake.lance.utils.LanceDatasetAdapter;
-import com.alibaba.fluss.metadata.DataLakeFormat;
-import com.alibaba.fluss.metadata.Schema;
-import com.alibaba.fluss.metadata.TableDescriptor;
-import com.alibaba.fluss.metadata.TablePath;
-import com.alibaba.fluss.server.testutils.FlussClusterExtension;
-import com.alibaba.fluss.types.DataTypes;
+package org.apache.fluss.lake.lance;
+
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.exception.InvalidTableException;
+import org.apache.fluss.lake.lance.utils.LanceDatasetAdapter;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.Schema;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.server.testutils.FlussClusterExtension;
+import org.apache.fluss.types.DataTypes;
import org.apache.arrow.vector.types.DateUnit;
import org.apache.arrow.vector.types.FloatingPointPrecision;
(fluss) 06/12: WIP
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit 0ded1f50133b497b89280f37e42088d0fbc4632b
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 14:08:15 2025 +0800
WIP
---
.../apache}/fluss/lake/source/LakeSource.java | 0
.../apache}/fluss/lake/source/LakeSplit.java | 0
.../apache}/fluss/lake/source/Planner.java | 0
.../apache}/fluss/lake/source/RecordReader.java | 0
.../fluss/lake/source/SortedRecordReader.java | 0
.../apache}/fluss/predicate/And.java | 0
.../apache}/fluss/predicate/CompareUtils.java | 0
.../apache}/fluss/predicate/CompoundPredicate.java | 0
.../apache}/fluss/predicate/Contains.java | 0
.../apache}/fluss/predicate/EndsWith.java | 0
.../apache}/fluss/predicate/Equal.java | 0
.../apache}/fluss/predicate/FieldRef.java | 0
.../apache}/fluss/predicate/FunctionVisitor.java | 0
.../apache}/fluss/predicate/GreaterOrEqual.java | 0
.../apache}/fluss/predicate/GreaterThan.java | 0
.../alibaba => org/apache}/fluss/predicate/In.java | 0
.../apache}/fluss/predicate/IsNotNull.java | 0
.../apache}/fluss/predicate/IsNull.java | 0
.../apache}/fluss/predicate/LeafFunction.java | 0
.../apache}/fluss/predicate/LeafPredicate.java | 0
.../apache}/fluss/predicate/LeafUnaryFunction.java | 0
.../apache}/fluss/predicate/LessOrEqual.java | 0
.../apache}/fluss/predicate/LessThan.java | 0
.../apache}/fluss/predicate/NotEqual.java | 0
.../apache}/fluss/predicate/NotIn.java | 0
.../predicate/NullFalseLeafBinaryFunction.java | 0
.../alibaba => org/apache}/fluss/predicate/Or.java | 0
.../fluss/predicate/PartitionPredicateVisitor.java | 0
.../apache}/fluss/predicate/Predicate.java | 0
.../apache}/fluss/predicate/PredicateBuilder.java | 0
.../apache}/fluss/predicate/PredicateVisitor.java | 0
.../apache}/fluss/predicate/StartsWith.java | 0
.../fluss/predicate/UnsupportedExpression.java | 0
.../row/encode/iceberg/IcebergBinaryRowWriter.java | 0
.../row/encode/iceberg/IcebergKeyEncoder.java | 0
.../bucketing/IcebergBucketingFunctionTest.java | 0
.../fluss/predicate/PredicateBuilderTest.java | 0
.../apache}/fluss/predicate/PredicateTest.java | 0
.../encode/iceberg/IcebergBinaryRowWriterTest.java | 0
.../row/encode/iceberg/IcebergKeyEncoderTest.java | 0
.../services/com.alibaba.fluss.fs.FileSystemPlugin | 17 -----
.../org/apache/fluss/fs/gs/AuthServerHandler.java | 23 +++----
.../fluss/fs/hdfs/HadoopConfigLoadingTest.java | 0
.../fluss/fs/hdfs/HadoopDataInputStreamTest.java | 0
.../fluss/fs/hdfs/HadoopFreeFsPluginTest.java | 0
.../apache}/fluss/fs/hdfs/HadoopFreeTests.java | 0
.../apache}/fluss/fs/hdfs/HadoopFsPluginTest.java | 0
.../fs/hdfs/HadoopLocalFileSystemBehaviorTest.java | 0
.../apache}/fluss/fs/hdfs/HdfsBehaviorTest.java | 0
.../fluss/fs/hdfs/utils/HadoopUtilsTest.java | 0
.../fs/obs/token/OBSSecurityTokenReceiver.java | 23 +++----
.../fluss/flink/metrics/Flink21MetricsITCase.java | 23 +++----
.../flink/procedure/Flink21ProcedureITCase.java | 23 +++----
.../security/acl/Flink21AuthorizationITCase.java | 23 +++----
.../fluss/flink/sink/Flink21TableSinkITCase.java | 23 +++----
.../source/Flink21TableSourceBatchITCase.java | 23 +++----
.../source/Flink21TableSourceFailOverITCase.java | 23 +++----
.../flink/source/Flink21TableSourceITCase.java | 23 +++----
.../org/apache/fluss/flink/lake/LakeCatalog.java | 23 +++----
.../fluss/flink/lake/LakeRecordRecordEmitter.java | 23 +++----
.../apache/fluss/flink/lake/LakeTableFactory.java | 27 ++++----
.../fluss/flink/lake/reader/SortMergeReader.java | 73 +++++-----------------
.../fluss/jmh/ArrowReadableChannelBenchmark.java | 2 +
.../fluss/jmh/ArrowWritableChannelBenchmark.java | 2 +
.../apache}/fluss/jmh/LogScannerBenchmark.java | 2 +
.../fluss/lake/iceberg/IcebergLakeCatalog.java | 23 +++----
.../fluss/lake/iceberg/conf/HadoopUtils.java | 23 +++----
.../lake/iceberg/tiering/IcebergTieringTest.java | 23 +++----
.../apache}/fluss/lake/lance/LanceConfig.java | 0
.../apache}/fluss/lake/lance/LanceLakeCatalog.java | 0
.../apache}/fluss/lake/lance/LanceLakeStorage.java | 0
.../fluss/lake/lance/LanceLakeStoragePlugin.java | 0
.../fluss/lake/lance/tiering/ArrowWriter.java | 0
.../fluss/lake/lance/tiering/LanceArrowWriter.java | 0
.../fluss/lake/lance/tiering/LanceCommittable.java | 0
.../lance/tiering/LanceCommittableSerializer.java | 0
.../lake/lance/tiering/LanceLakeCommitter.java | 0
.../lance/tiering/LanceLakeTieringFactory.java | 0
.../fluss/lake/lance/tiering/LanceLakeWriter.java | 0
.../fluss/lake/lance/tiering/LanceWriteResult.java | 2 +
.../lance/tiering/LanceWriteResultSerializer.java | 0
.../fluss/lake/lance/utils/LanceArrowUtils.java | 0
.../lake/lance/utils/LanceDatasetAdapter.java | 0
.../lake/lance/LakeEnabledTableCreateITCase.java | 0
.../lake/paimon/source/FlussRowAsPaimonRow.java | 27 +++-----
.../fluss/lake/paimon/source/PaimonLakeSource.java | 0
.../lake/paimon/source/PaimonRecordReader.java | 0
.../paimon/source/PaimonSortedRecordReader.java | 0
.../fluss/lake/paimon/source/PaimonSplit.java | 0
.../lake/paimon/source/PaimonSplitPlanner.java | 0
.../lake/paimon/source/PaimonSplitSerializer.java | 0
.../paimon/source/FlussRowAsPaimonRowTest.java | 0
.../lake/paimon/source/PaimonLakeSourceTest.java | 0
.../lake/paimon/source/PaimonRecordReaderTest.java | 0
.../source/PaimonSortedRecordReaderTest.java | 0
.../lake/paimon/source/PaimonSourceTestBase.java | 0
.../lake/paimon/source/PaimonSplitPlannerTest.java | 0
.../paimon/source/PaimonSplitSerializerTest.java | 0
.../fluss/lake/paimon/source/PaimonSplitTest.java | 0
.../utils/FlussToPaimonPredicateConverterTest.java | 0
.../fluss/rpc/netty/client/NettyClientHandler.java | 2 +-
.../fluss/rpc/netty/server/NettyServerHandler.java | 2 +-
.../rpc/netty/server/NettyServerHandlerTest.java | 4 +-
.../replica/fetcher/ReplicaFetcherThread.java | 4 +-
fluss-test-coverage/pom.xml | 4 +-
website/blog/2024-11-29-fluss-open-source.md | 4 +-
website/blog/2025-06-01-partial-updates.md | 2 +-
website/blog/2025-07-07-fluss-java-client.md | 2 +-
website/blog/releases/0.7.md | 4 +-
website/community/welcome.mdx | 2 +-
website/src/pages/roadmap.md | 10 +--
111 files changed, 236 insertions(+), 278 deletions(-)
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSource.java b/fluss-common/src/main/java/org/apache/fluss/lake/source/LakeSource.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSource.java
rename to fluss-common/src/main/java/org/apache/fluss/lake/source/LakeSource.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSplit.java b/fluss-common/src/main/java/org/apache/fluss/lake/source/LakeSplit.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/lake/source/LakeSplit.java
rename to fluss-common/src/main/java/org/apache/fluss/lake/source/LakeSplit.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/Planner.java b/fluss-common/src/main/java/org/apache/fluss/lake/source/Planner.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/lake/source/Planner.java
rename to fluss-common/src/main/java/org/apache/fluss/lake/source/Planner.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/RecordReader.java b/fluss-common/src/main/java/org/apache/fluss/lake/source/RecordReader.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/lake/source/RecordReader.java
rename to fluss-common/src/main/java/org/apache/fluss/lake/source/RecordReader.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/lake/source/SortedRecordReader.java b/fluss-common/src/main/java/org/apache/fluss/lake/source/SortedRecordReader.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/lake/source/SortedRecordReader.java
rename to fluss-common/src/main/java/org/apache/fluss/lake/source/SortedRecordReader.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/And.java b/fluss-common/src/main/java/org/apache/fluss/predicate/And.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/And.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/And.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompareUtils.java b/fluss-common/src/main/java/org/apache/fluss/predicate/CompareUtils.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/CompareUtils.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/CompareUtils.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/CompoundPredicate.java b/fluss-common/src/main/java/org/apache/fluss/predicate/CompoundPredicate.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/CompoundPredicate.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/CompoundPredicate.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Contains.java b/fluss-common/src/main/java/org/apache/fluss/predicate/Contains.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/Contains.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/Contains.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/EndsWith.java b/fluss-common/src/main/java/org/apache/fluss/predicate/EndsWith.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/EndsWith.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/EndsWith.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Equal.java b/fluss-common/src/main/java/org/apache/fluss/predicate/Equal.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/Equal.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/Equal.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/FieldRef.java b/fluss-common/src/main/java/org/apache/fluss/predicate/FieldRef.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/FieldRef.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/FieldRef.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/FunctionVisitor.java b/fluss-common/src/main/java/org/apache/fluss/predicate/FunctionVisitor.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/FunctionVisitor.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/FunctionVisitor.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterOrEqual.java b/fluss-common/src/main/java/org/apache/fluss/predicate/GreaterOrEqual.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterOrEqual.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/GreaterOrEqual.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterThan.java b/fluss-common/src/main/java/org/apache/fluss/predicate/GreaterThan.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterThan.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/GreaterThan.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/In.java b/fluss-common/src/main/java/org/apache/fluss/predicate/In.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/In.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/In.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNotNull.java b/fluss-common/src/main/java/org/apache/fluss/predicate/IsNotNull.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNotNull.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/IsNotNull.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNull.java b/fluss-common/src/main/java/org/apache/fluss/predicate/IsNull.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNull.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/IsNull.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafFunction.java b/fluss-common/src/main/java/org/apache/fluss/predicate/LeafFunction.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafFunction.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/LeafFunction.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafPredicate.java b/fluss-common/src/main/java/org/apache/fluss/predicate/LeafPredicate.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafPredicate.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/LeafPredicate.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafUnaryFunction.java b/fluss-common/src/main/java/org/apache/fluss/predicate/LeafUnaryFunction.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafUnaryFunction.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/LeafUnaryFunction.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessOrEqual.java b/fluss-common/src/main/java/org/apache/fluss/predicate/LessOrEqual.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/LessOrEqual.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/LessOrEqual.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/LessThan.java b/fluss-common/src/main/java/org/apache/fluss/predicate/LessThan.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/LessThan.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/LessThan.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotEqual.java b/fluss-common/src/main/java/org/apache/fluss/predicate/NotEqual.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/NotEqual.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/NotEqual.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/NotIn.java b/fluss-common/src/main/java/org/apache/fluss/predicate/NotIn.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/NotIn.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/NotIn.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/NullFalseLeafBinaryFunction.java b/fluss-common/src/main/java/org/apache/fluss/predicate/NullFalseLeafBinaryFunction.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/NullFalseLeafBinaryFunction.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/NullFalseLeafBinaryFunction.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Or.java b/fluss-common/src/main/java/org/apache/fluss/predicate/Or.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/Or.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/Or.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/PartitionPredicateVisitor.java b/fluss-common/src/main/java/org/apache/fluss/predicate/PartitionPredicateVisitor.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/PartitionPredicateVisitor.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/PartitionPredicateVisitor.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/Predicate.java b/fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/Predicate.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateBuilder.java b/fluss-common/src/main/java/org/apache/fluss/predicate/PredicateBuilder.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateBuilder.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/PredicateBuilder.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateVisitor.java b/fluss-common/src/main/java/org/apache/fluss/predicate/PredicateVisitor.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateVisitor.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/PredicateVisitor.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/StartsWith.java b/fluss-common/src/main/java/org/apache/fluss/predicate/StartsWith.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/StartsWith.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/StartsWith.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/predicate/UnsupportedExpression.java b/fluss-common/src/main/java/org/apache/fluss/predicate/UnsupportedExpression.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/predicate/UnsupportedExpression.java
rename to fluss-common/src/main/java/org/apache/fluss/predicate/UnsupportedExpression.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriter.java b/fluss-common/src/main/java/org/apache/fluss/row/encode/iceberg/IcebergBinaryRowWriter.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriter.java
rename to fluss-common/src/main/java/org/apache/fluss/row/encode/iceberg/IcebergBinaryRowWriter.java
diff --git a/fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoder.java b/fluss-common/src/main/java/org/apache/fluss/row/encode/iceberg/IcebergKeyEncoder.java
similarity index 100%
rename from fluss-common/src/main/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoder.java
rename to fluss-common/src/main/java/org/apache/fluss/row/encode/iceberg/IcebergKeyEncoder.java
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/bucketing/IcebergBucketingFunctionTest.java b/fluss-common/src/test/java/org/apache/fluss/bucketing/IcebergBucketingFunctionTest.java
similarity index 100%
rename from fluss-common/src/test/java/com/alibaba/fluss/bucketing/IcebergBucketingFunctionTest.java
rename to fluss-common/src/test/java/org/apache/fluss/bucketing/IcebergBucketingFunctionTest.java
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateBuilderTest.java b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
similarity index 100%
rename from fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateBuilderTest.java
rename to fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateTest.java b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
similarity index 100%
rename from fluss-common/src/test/java/com/alibaba/fluss/predicate/PredicateTest.java
rename to fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java b/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java
similarity index 100%
rename from fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java
rename to fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java
diff --git a/fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java b/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java
similarity index 100%
rename from fluss-common/src/test/java/com/alibaba/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java
rename to fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java
diff --git a/fluss-common/src/test/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin b/fluss-common/src/test/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
deleted file mode 100644
index f75628c8c..000000000
--- a/fluss-common/src/test/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
+++ /dev/null
@@ -1,17 +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.fluss.fs.TestFileSystem$TestFileSystemPlugin
\ No newline at end of file
diff --git a/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/AuthServerHandler.java b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/AuthServerHandler.java
index 3e814b788..5cc15528b 100644
--- a/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/AuthServerHandler.java
+++ b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/AuthServerHandler.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.gs;
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopConfigLoadingTest.java b/fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopConfigLoadingTest.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopConfigLoadingTest.java
rename to fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopConfigLoadingTest.java
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopDataInputStreamTest.java b/fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopDataInputStreamTest.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopDataInputStreamTest.java
rename to fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopDataInputStreamTest.java
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopFreeFsPluginTest.java b/fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopFreeFsPluginTest.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopFreeFsPluginTest.java
rename to fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopFreeFsPluginTest.java
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopFreeTests.java b/fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopFreeTests.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopFreeTests.java
rename to fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopFreeTests.java
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopFsPluginTest.java b/fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopFsPluginTest.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopFsPluginTest.java
rename to fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopFsPluginTest.java
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopLocalFileSystemBehaviorTest.java b/fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopLocalFileSystemBehaviorTest.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HadoopLocalFileSystemBehaviorTest.java
rename to fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HadoopLocalFileSystemBehaviorTest.java
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HdfsBehaviorTest.java b/fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HdfsBehaviorTest.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/HdfsBehaviorTest.java
rename to fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/HdfsBehaviorTest.java
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/utils/HadoopUtilsTest.java b/fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/utils/HadoopUtilsTest.java
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/test/java/com/alibaba/fluss/fs/hdfs/utils/HadoopUtilsTest.java
rename to fluss-filesystems/fluss-fs-hadoop/src/test/java/org/apache/fluss/fs/hdfs/utils/HadoopUtilsTest.java
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
index 92423b41e..08ae3af4e 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.obs.token;
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/metrics/Flink21MetricsITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/metrics/Flink21MetricsITCase.java
index ca6b52f2f..961c69d2f 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/metrics/Flink21MetricsITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/metrics/Flink21MetricsITCase.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.metrics;
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/procedure/Flink21ProcedureITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/procedure/Flink21ProcedureITCase.java
index 2090c7895..c95c47f0f 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/procedure/Flink21ProcedureITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/procedure/Flink21ProcedureITCase.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.procedure;
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/security/acl/Flink21AuthorizationITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/security/acl/Flink21AuthorizationITCase.java
index 11e7b7bee..66aefab8e 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/security/acl/Flink21AuthorizationITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/security/acl/Flink21AuthorizationITCase.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.security.acl;
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/sink/Flink21TableSinkITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/sink/Flink21TableSinkITCase.java
index c50b4c8fd..b040476f4 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/sink/Flink21TableSinkITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/sink/Flink21TableSinkITCase.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.sink;
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceBatchITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceBatchITCase.java
index a7839b0ab..a881b6b31 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceBatchITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceBatchITCase.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.source;
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceFailOverITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceFailOverITCase.java
index 0a27d6d98..630470f28 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceFailOverITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceFailOverITCase.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.source;
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceITCase.java
index e9301889f..b337cab46 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceITCase.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.source;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeCatalog.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeCatalog.java
index 0df4c544b..447616106 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeCatalog.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeCatalog.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.lake;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java
index 3114f10ef..58a14b207 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.lake;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeTableFactory.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeTableFactory.java
index f772848b6..975d49e95 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeTableFactory.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeTableFactory.java
@@ -1,20 +1,23 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
-package org.apache.fluss.flink.lake;import org.apache.flink.table.catalog.ObjectIdentifier;
+package org.apache.fluss.flink.lake;
+
+import org.apache.flink.table.catalog.ObjectIdentifier;
import org.apache.flink.table.connector.source.DynamicTableSource;
import org.apache.flink.table.factories.DynamicTableFactory;
import org.apache.flink.table.factories.FactoryUtil;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/SortMergeReader.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/SortMergeReader.java
index 8e4e9b669..6e490108f 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/SortMergeReader.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/SortMergeReader.java
@@ -1,20 +1,23 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
-package org.apache.fluss.flink.lake.reader;import org.apache.fluss.record.LogRecord;
+package org.apache.fluss.flink.lake.reader;
+
+import org.apache.fluss.record.LogRecord;
import org.apache.fluss.row.InternalRow;
import org.apache.fluss.row.ProjectedRow;
import org.apache.fluss.utils.CloseableIterator;
@@ -61,16 +64,8 @@ class SortMergeReader {
}
@Nullable
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
public CloseableIterator<InternalRow> readBatch() {
if (!lakeRecordIterator.hasNext()) {
-========
- public org.apache.fluss.utils.CloseableIterator<org.apache.fluss.row.InternalRow> readBatch()
- throws IOException {
- RecordReader.RecordIterator<InternalRow> nextBatch = paimonReader.readBatch();
- // no any snapshot record, now, read log
- if (nextBatch == null) {
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/SortMergeReader.java
return changeLogIterator.hasNext()
? changeLogIteratorWrapper.replace(changeLogIterator)
: null;
@@ -82,21 +77,11 @@ class SortMergeReader {
}
}
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
/** A concat record iterator to concat multiple record iterator. */
private static class ConcatRecordIterator implements CloseableIterator<LogRecord> {
private final PriorityQueue<SingleElementHeadIterator<LogRecord>> priorityQueue;
private final ProjectedRow snapshotProjectedPkRow1;
private final ProjectedRow snapshotProjectedPkRow2;
-========
- /**
- * The IteratorWrapper to wrap Paimon's RecordReader.RecordIterator which emit the merged rows
- * with paimon snapshot and fluss change log.
- */
- private class SnapshotMergedRowIteratorWrapper
- implements CloseableIterator<org.apache.fluss.row.InternalRow> {
- private RecordReader.RecordIterator<SortMergeRows> currentBatch;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/SortMergeReader.java
public ConcatRecordIterator(
List<CloseableIterator<LogRecord>> iteratorList,
@@ -155,29 +140,14 @@ class SortMergeReader {
}
@Override
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
public LogRecord next() {
if (!hasNext()) {
throw new NoSuchElementException();
-========
- public org.apache.fluss.row.InternalRow next() {
- InternalRow returnedRow =
- projectedRow == null
- ? this.returnedRow
- : projectedRow.replaceRow(this.returnedRow);
- // now, we can set the internalRow to null,
- // if no any row remain in current merged row, set the currentMergedRows to null
- // to enable fetch next merged rows
- this.returnedRow = null;
- if (currentMergedRows != null && !currentMergedRows.hasNext()) {
- currentMergedRows = null;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/SortMergeReader.java
}
return priorityQueue.peek().next();
}
}
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
private SortMergeRows sortMergeWithChangeLog(InternalRow lakeSnapshotRow) {
// no log record, we return the snapshot record
if (!changeLogIterator.hasNext()) {
@@ -311,10 +281,6 @@ class SortMergeReader {
}
private static class ChangeLogIteratorWrapper implements CloseableIterator<InternalRow> {
-========
- private class ChangeLogIteratorWrapper
- implements CloseableIterator<org.apache.fluss.row.InternalRow> {
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/SortMergeReader.java
private CloseableIterator<KeyValueRow> changeLogRecordIterator;
public ChangeLogIteratorWrapper() {}
@@ -338,17 +304,8 @@ class SortMergeReader {
}
@Override
-<<<<<<<< HEAD:fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
public InternalRow next() {
return changeLogRecordIterator.next().valueRow();
-========
- public org.apache.fluss.row.InternalRow next() {
- InternalRow returnedRow = changeLogRecordIterator.next().valueRow();
- if (projectedRow != null) {
- returnedRow = projectedRow.replaceRow(returnedRow);
- }
- return new PaimonRowWrapper(returnedRow);
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/SortMergeReader.java
}
}
diff --git a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowReadableChannelBenchmark.java b/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowReadableChannelBenchmark.java
similarity index 99%
rename from fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowReadableChannelBenchmark.java
rename to fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowReadableChannelBenchmark.java
index 5dfe2b1aa..793fbeb04 100644
--- a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowReadableChannelBenchmark.java
+++ b/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowReadableChannelBenchmark.java
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+package org.apache.fluss.jmh;
+
import org.apache.commons.lang3.RandomUtils;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
diff --git a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowWritableChannelBenchmark.java b/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowWritableChannelBenchmark.java
similarity index 99%
rename from fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowWritableChannelBenchmark.java
rename to fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowWritableChannelBenchmark.java
index ec709c5a5..5d7ac7a4f 100644
--- a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/ArrowWritableChannelBenchmark.java
+++ b/fluss-jmh/src/test/java/org/apache/fluss/jmh/ArrowWritableChannelBenchmark.java
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+package org.apache.fluss.jmh;
+
import org.apache.commons.lang3.RandomUtils;
import org.apache.fluss.memory.MemorySegment;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
diff --git a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/LogScannerBenchmark.java b/fluss-jmh/src/test/java/org/apache/fluss/jmh/LogScannerBenchmark.java
similarity index 99%
rename from fluss-jmh/src/test/java/com/alibaba/fluss/jmh/LogScannerBenchmark.java
rename to fluss-jmh/src/test/java/org/apache/fluss/jmh/LogScannerBenchmark.java
index 84da0cc03..372b11a28 100644
--- a/fluss-jmh/src/test/java/com/alibaba/fluss/jmh/LogScannerBenchmark.java
+++ b/fluss-jmh/src/test/java/org/apache/fluss/jmh/LogScannerBenchmark.java
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+package org.apache.fluss.jmh;
+
import org.apache.fluss.client.Connection;
import org.apache.fluss.client.ConnectionFactory;
import org.apache.fluss.client.admin.Admin;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
index a2be5fa39..a3a2e9eef 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/IcebergLakeCatalog.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.lake.iceberg;
diff --git a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java
index 79e0e8aea..8b6145d2c 100644
--- a/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java
+++ b/fluss-lake/fluss-lake-iceberg/src/main/java/org/apache/fluss/lake/iceberg/conf/HadoopUtils.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.lake.iceberg.conf;
diff --git a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java
index 946406d25..d0227ca1d 100644
--- a/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java
+++ b/fluss-lake/fluss-lake-iceberg/src/test/java/org/apache/fluss/lake/iceberg/tiering/IcebergTieringTest.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.lake.iceberg.tiering;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceConfig.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceConfig.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceConfig.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceConfig.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeCatalog.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeCatalog.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeCatalog.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeCatalog.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeStorage.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeStorage.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeStorage.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeStorage.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeStoragePlugin.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeStoragePlugin.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/LanceLakeStoragePlugin.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/LanceLakeStoragePlugin.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/ArrowWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/ArrowWriter.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/ArrowWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/ArrowWriter.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceArrowWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceArrowWriter.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceArrowWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceArrowWriter.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceCommittable.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceCommittable.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceCommittable.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceCommittable.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceCommittableSerializer.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceCommittableSerializer.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceCommittableSerializer.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceCommittableSerializer.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceLakeCommitter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeCommitter.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceLakeCommitter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeCommitter.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceLakeTieringFactory.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeTieringFactory.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceLakeTieringFactory.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeTieringFactory.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceLakeWriter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeWriter.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceLakeWriter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceLakeWriter.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResult.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResult.java
similarity index 96%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResult.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResult.java
index b64e3e3f9..f2732bea0 100644
--- a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResult.java
+++ b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResult.java
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+package org.apache.fluss.lake.lance.tiering;
+
import com.lancedb.lance.FragmentMetadata;
import java.io.Serializable;
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResultSerializer.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResultSerializer.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/tiering/LanceWriteResultSerializer.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/tiering/LanceWriteResultSerializer.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/utils/LanceArrowUtils.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceArrowUtils.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/utils/LanceArrowUtils.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceArrowUtils.java
diff --git a/fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/utils/LanceDatasetAdapter.java b/fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/java/com/alibaba/fluss/lake/lance/utils/LanceDatasetAdapter.java
rename to fluss-lake/fluss-lake-lance/src/main/java/org/apache/fluss/lake/lance/utils/LanceDatasetAdapter.java
diff --git a/fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/LakeEnabledTableCreateITCase.java b/fluss-lake/fluss-lake-lance/src/test/java/org/apache/fluss/lake/lance/LakeEnabledTableCreateITCase.java
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/test/java/com/alibaba/fluss/lake/lance/LakeEnabledTableCreateITCase.java
rename to fluss-lake/fluss-lake-lance/src/test/java/org/apache/fluss/lake/lance/LakeEnabledTableCreateITCase.java
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
similarity index 82%
rename from fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
rename to fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
index ae600ebfb..6260fd9aa 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
@@ -1,13 +1,12 @@
/*
- * 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
+ * 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
+ * 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,
@@ -16,7 +15,8 @@
* limitations under the License.
*/
-import org.apache.fluss.record.ChangeType;
+package org.apache.fluss.lake.paimon.source;
+
import org.apache.fluss.row.TimestampLtz;
import org.apache.fluss.row.TimestampNtz;
import org.apache.paimon.data.BinaryString;
@@ -33,21 +33,14 @@ import org.apache.paimon.types.RowType;
/** Adapter class for converting Fluss row to Paimon row. */
public class FlussRowAsPaimonRow implements InternalRow {
-<<<<<<<< HEAD:fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRow.java
protected org.apache.fluss.row.InternalRow internalRow;
protected final RowType tableRowType;
-========
- private final ChangeType changeType;
- private final org.apache.fluss.row.InternalRow flussRow;
- private final RowType rowType;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/ScanRecordWrapper.java
public FlussRowAsPaimonRow(RowType tableTowType) {
this.tableRowType = tableTowType;
}
- public FlussRowAsPaimonRow(
- org.apache.fluss.row.InternalRow internalRow, RowType tableTowType) {
+ public FlussRowAsPaimonRow(org.apache.fluss.row.InternalRow internalRow, RowType tableTowType) {
this.internalRow = internalRow;
this.tableRowType = tableTowType;
}
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSource.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonLakeSource.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSource.java
rename to fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonLakeSource.java
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReader.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonRecordReader.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReader.java
rename to fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonRecordReader.java
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReader.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReader.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReader.java
rename to fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReader.java
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplit.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSplit.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplit.java
rename to fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSplit.java
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlanner.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSplitPlanner.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlanner.java
rename to fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSplitPlanner.java
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializer.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSplitSerializer.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/main/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializer.java
rename to fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/source/PaimonSplitSerializer.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRowTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/FlussRowAsPaimonRowTest.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/FlussRowAsPaimonRowTest.java
rename to fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/FlussRowAsPaimonRowTest.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSourceTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonLakeSourceTest.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonLakeSourceTest.java
rename to fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonLakeSourceTest.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReaderTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonRecordReaderTest.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonRecordReaderTest.java
rename to fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonRecordReaderTest.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java
rename to fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSortedRecordReaderTest.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSourceTestBase.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSourceTestBase.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSourceTestBase.java
rename to fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSourceTestBase.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlannerTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSplitPlannerTest.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitPlannerTest.java
rename to fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSplitPlannerTest.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializerTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSplitSerializerTest.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitSerializerTest.java
rename to fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSplitSerializerTest.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSplitTest.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/source/PaimonSplitTest.java
rename to fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/source/PaimonSplitTest.java
diff --git a/fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/utils/FlussToPaimonPredicateConverterTest.java b/fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverterTest.java
similarity index 100%
rename from fluss-lake/fluss-lake-paimon/src/test/java/com/alibaba/fluss/lake/paimon/utils/FlussToPaimonPredicateConverterTest.java
rename to fluss-lake/fluss-lake-paimon/src/test/java/org/apache/fluss/lake/paimon/utils/FlussToPaimonPredicateConverterTest.java
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClientHandler.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClientHandler.java
index 5eb9284ef..83dccae27 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClientHandler.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClientHandler.java
@@ -97,7 +97,7 @@ public final class NettyClientHandler extends ChannelInboundHandlerAdapter {
// processing the response.
// TODO for the FetchLogResponse returned by the FetchLogRequest sent by the
// Fluss client, We also aim to avoid this memory copy operation, traced by
- // https://github.com/alibaba/fluss/issues/1184
+ // https://github.com/apache/fluss/issues/1184
response.parseFrom(buffer, messageSize);
} else {
// copy the buffer into a heap buffer, this can avoid the network buffer
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServerHandler.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServerHandler.java
index a3a658eff..2da1b46af 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServerHandler.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServerHandler.java
@@ -293,7 +293,7 @@ public final class NettyServerHandler extends ChannelInboundHandlerAdapter {
@VisibleForTesting
Deque<FlussRequest> inflightResponses(short apiKey) {
// TODO: implement this if we introduce inflight response in
- // https://github.com/alibaba/fluss/issues/771
+ // https://github.com/apache/fluss/issues/771
return new ArrayDeque<>();
}
diff --git a/fluss-rpc/src/test/java/org/apache/fluss/rpc/netty/server/NettyServerHandlerTest.java b/fluss-rpc/src/test/java/org/apache/fluss/rpc/netty/server/NettyServerHandlerTest.java
index 0a7e901a2..c52a5119f 100644
--- a/fluss-rpc/src/test/java/org/apache/fluss/rpc/netty/server/NettyServerHandlerTest.java
+++ b/fluss-rpc/src/test/java/org/apache/fluss/rpc/netty/server/NettyServerHandlerTest.java
@@ -77,7 +77,7 @@ final class NettyServerHandlerTest {
}
@Test
- @Disabled("TODO: add back in https://github.com/alibaba/fluss/issues/771")
+ @Disabled("TODO: add back in https://github.com/apache/fluss/issues/771")
void testResponseReturnInOrder() throws Exception {
// first write 10 requests to serverHandler.
for (int i = 0; i < 10; i++) {
@@ -148,7 +148,7 @@ final class NettyServerHandlerTest {
}
@Test
- @Disabled("TODO: add back in https://github.com/alibaba/fluss/issues/771")
+ @Disabled("TODO: add back in https://github.com/apache/fluss/issues/771")
void testDifferentResponseTypeReturnInSeparateOrder() throws Exception {
// 1. first write 5 requests with api as ApiKeys.API_VERSIONS to serverHandler.
for (int i = 0; i < 5; i++) {
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java b/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
index 4ba16240c..5127639cd 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
@@ -551,7 +551,7 @@ final class ReplicaFetcherThread extends ShutdownableThread {
// https://cwiki.apache.org/confluence/display/KAFKA/KIP-101+-+Alter+Replication+Protocol+to+use+Leader+Epoch+rather+than+High+Watermark+for+Truncation
// for more details. However, this is just a temporary solution, if we want to have a strong
// consistency guarantee, we should do as KIP-101 do, trace by:
- // https://github.com/alibaba/fluss/issues/673
+ // https://github.com/apache/fluss/issues/673
logTablet.updateHighWatermark(logTablet.localLogEndOffset());
LOG.trace(
"Follower received high watermark {} from the leader for replica {}",
@@ -571,7 +571,7 @@ final class ReplicaFetcherThread extends ShutdownableThread {
RemoteLogManager rlm = replicaManager.getRemoteLogManager();
// TODO after introduce leader epoch cache, we need to rebuild the local leader epoch
- // cache. Trace by https://github.com/alibaba/fluss/issues/673
+ // cache. Trace by https://github.com/apache/fluss/issues/673
// update next fetch offset and writer id snapshot in local.
RemoteLogSegment remoteLogSegmentWithMaxStartOffset =
diff --git a/fluss-test-coverage/pom.xml b/fluss-test-coverage/pom.xml
index 5907d73e8..b9c26aca3 100644
--- a/fluss-test-coverage/pom.xml
+++ b/fluss-test-coverage/pom.xml
@@ -165,7 +165,7 @@
<exclude>fluss-test-coverage/**</exclude>
<exclude>fluss-test-utils/**</exclude>
<!-- exclude adapter classes to avoid Jacoco error: "Can't add different class with same name" -->
- <exclude>fluss-flink/**/target/classes/com/alibaba/fluss/flink/adapter/**</exclude>
+ <exclude>fluss-flink/**/target/classes/org/apache/fluss/flink/adapter/**</exclude>
</excludes>
</resource>
</resources>
@@ -207,7 +207,7 @@
<exclude>fluss-test-coverage/**</exclude>
<exclude>fluss-test-utils/**</exclude>
<!-- exclude adapter classes to avoid Jacoco error: "Can't add different class with same name" -->
- <exclude>fluss-flink/**/target/classes/com/alibaba/fluss/flink/adapter/**</exclude>
+ <exclude>fluss-flink/**/target/classes/org/apache/fluss/flink/adapter/**</exclude>
</excludes>
</resource>
</resources>
diff --git a/website/blog/2024-11-29-fluss-open-source.md b/website/blog/2024-11-29-fluss-open-source.md
index a210774bd..ec8d307a0 100644
--- a/website/blog/2024-11-29-fluss-open-source.md
+++ b/website/blog/2024-11-29-fluss-open-source.md
@@ -29,7 +29,7 @@ Fluss is designed to support a wide range of use cases, from powering dashboards
By serving as the real-time data layer on the Lakehouse, Fluss supports both **streaming-first** architectures and **unified batch and stream processing**. This flexibility should be appealing for organizations looking to modernize their analytics stack while keeping costs low and performance high.
### What’s Next for Fluss?
-Open-sourcing Fluss is just the beginning and it will be donated to the Apache Software Foundation (ASF). We’re committed to working closely with the community to expand its capabilities and adoption. You can find more information about the project’s roadmap [here](https://alibaba.github.io/fluss-docs/roadmap/).
+Open-sourcing Fluss is just the beginning and it will be donated to the Apache Software Foundation (ASF). We’re committed to working closely with the community to expand its capabilities and adoption. You can find more information about the project’s roadmap [here](https://fluss.apache.org/roadmap/).

@@ -40,7 +40,7 @@ Make sure to keep an eye on the project, give it a try and if you like it, don
### Getting Started
- Visit the [GitHub repository](https://github.com/apache/fluss).
-- Check out the [quickstart guide](https://alibaba.github.io/fluss-docs/docs/quickstart/flink/).
+- Check out the [quickstart guide](/docs/quickstart/flink.md).
### Additional Resources
- Announcement Blog Post: [Introducing Fluss: Unified Streaming Storage For Next-Generation Data Analytics](https://www.ververica.com/blog/introducing-fluss)
diff --git a/website/blog/2025-06-01-partial-updates.md b/website/blog/2025-06-01-partial-updates.md
index a774c313a..08de6d53c 100644
--- a/website/blog/2025-06-01-partial-updates.md
+++ b/website/blog/2025-06-01-partial-updates.md
@@ -297,7 +297,7 @@ Flink SQL> SELECT * FROM user_rec_wide;
### Conclusion
Partial updates in Fluss enable an alternative approach in how we design streaming data pipelines for enriching or joining data.
-When all your sources share a primary key - otherwise you can mix & match [streaming lookup joins](https://alibaba.github.io/fluss-docs/docs/engine-flink/lookups/#lookup) - you can turn the problem on its head: update a unified table incrementally, rather than joining streams on the fly.
+When all your sources share a primary key - otherwise you can mix & match [streaming lookup joins](/docs/engine-flink/lookups.md#lookup) - you can turn the problem on its head: update a unified table incrementally, rather than joining streams on the fly.
The result is a more scalable, maintainable, and efficient pipeline.
Engineers can spend less time wrestling with Flink’s state, checkpoints and join mechanics, and more time delivering fresh, integrated data to power real-time analytics and applications.
diff --git a/website/blog/2025-07-07-fluss-java-client.md b/website/blog/2025-07-07-fluss-java-client.md
index 71e9cc49f..c332fbc65 100644
--- a/website/blog/2025-07-07-fluss-java-client.md
+++ b/website/blog/2025-07-07-fluss-java-client.md
@@ -382,4 +382,4 @@ This IoT sensor scenario is just one example of Fluss in action and also highlig
Fluss's ability to handle high-throughput append streams and fast key-based lookups makes it well-suited for real-time analytics use cases like this and many others.
With this foundation, you can explore more advanced features of Fluss to build robust real-time data applications. Happy streaming! 🌊
-And before you go 😊 don’t forget to give Fluss 🌊 some ❤️ via ⭐ on [GitHub](https://github.com/alibaba/fluss)
+And before you go 😊 don’t forget to give Fluss 🌊 some ❤️ via ⭐ on [GitHub](https://github.com/apache/fluss)
diff --git a/website/blog/releases/0.7.md b/website/blog/releases/0.7.md
index f66302337..ce57ed808 100644
--- a/website/blog/releases/0.7.md
+++ b/website/blog/releases/0.7.md
@@ -155,7 +155,7 @@ DataStreamSource<Order> stream = env.fromSource(
);
```
-For usage examples and configuration parameters, see the [DataStream Connector documentation](https://alibaba.github.io/fluss-docs/docs/engine-flink/datastream/).
+For usage examples and configuration parameters, see the [DataStream Connector documentation](/docs/engine-flink/datastream.md).
## Fluss Java Client
@@ -164,7 +164,7 @@ In this version, we officially release the Fluss Java Client, a client library d
* **Table API:** For table-based data operations, supporting streaming reads/writes, updates, deletions, and point queries.
* **Admin API:** For metadata management, including cluster management, table lifecycle, and access control.
-The client supports forward and backward compatibility, ensuring smooth upgrades across Fluss versions. With the Fluss Java Client, developers can build online applications and data ingestion services based on Fluss, as well as enterprise-level components such as Fluss management platforms and operations monitoring systems. For detailed usage instructions, please refer to the official documentation: [Fluss Java Client User Guide](https://alibaba.github.io/fluss-docs/docs/apis/java-client/).
+The client supports forward and backward compatibility, ensuring smooth upgrades across Fluss versions. With the Fluss Java Client, developers can build online applications and data ingestion services based on Fluss, as well as enterprise-level components such as Fluss management platforms and operations monitoring systems. For detailed usage instructions, please refer to the official documentation: [Fluss Java Client User Guide](/docs/apis/java-client.md).
Fluss uses Apache Arrow as its underlying storage format, enabling efficient cross-language extensions. A **Fluss Python Client** is planned for future releases, leveraging the rich ecosystem of **PyArrow** to integrate with popular data analysis tools such as **Pandas** and **DuckDB**.
This will further lower the barrier for real-time data exploration and analytics.
diff --git a/website/community/welcome.mdx b/website/community/welcome.mdx
index 5aa33bce7..1652bcabd 100644
--- a/website/community/welcome.mdx
+++ b/website/community/welcome.mdx
@@ -12,7 +12,7 @@ If you are not sure what to work on, look at an issue tagged with [good first is
## Discussions
-The development discussions and user questions happen primarily on [GitHub Discussions](https://github.com/alibaba/fluss/discussions).
+The development discussions and user questions happen primarily on [GitHub Discussions](https://github.com/apache/fluss/discussions).
## Mailing Lists
Fluss has two mailing lists:
diff --git a/website/src/pages/roadmap.md b/website/src/pages/roadmap.md
index fd6ab72f6..aaece102c 100644
--- a/website/src/pages/roadmap.md
+++ b/website/src/pages/roadmap.md
@@ -6,18 +6,18 @@ Fluss will support the Kafka network protocol to enable users to use Fluss as a
Fluss will provide deep integration with Apache Flink, enabling users a single engine experience for building real-time analytics applications. The integration will include:
- Upgrade Flink version to 2.x
- Support new Delta Join to address the pain-points of Stream-Stream Join.
-- More pushdown optimizations: Filter Pushdown ([#197](https://github.com/alibaba/fluss/issues/197)), Aggregation Pushdown, etc.
+- More pushdown optimizations: Filter Pushdown ([#197](https://github.com/apache/fluss/issues/197)), Aggregation Pushdown, etc.
- Upgrade the Rule-Based Optimization into Cost-Based Optimization in Flink SQL streaming planner with leveraging statistics in Fluss tables.
## Streaming Lakehouse
-- Support for Iceberg ([#452](https://github.com/alibaba/fluss/issues/452)) as Lakehouse Storage. And DeltaLake, Hudi as well.
+- Support for Iceberg ([#452](https://github.com/apache/fluss/issues/452)) as Lakehouse Storage. And DeltaLake, Hudi as well.
- Support Union Read for Spark, Trino, StarRocks.
-- Support for Lance ([#1155](https://github.com/alibaba/fluss/issues/1155)) as Lakehouse Storage to enable integration with AI/ML workflows for multi-modal data processing.
+- Support for Lance ([#1155](https://github.com/apache/fluss/issues/1155)) as Lakehouse Storage to enable integration with AI/ML workflows for multi-modal data processing.
## Spark Integration
-- Support for Spark connector ([#155](https://github.com/alibaba/fluss/issues/155)) to enable seamless data processing and analytics workflows.
+- Support for Spark connector ([#155](https://github.com/apache/fluss/issues/155)) to enable seamless data processing and analytics workflows.
## Python Client
- Support Python SDK to connect with Python ecosystems, including PyArrow, Pandas, Lance, and DuckDB.
## Storage Engine
-- Support for complex data types: Array ([#168](https://github.com/alibaba/fluss/issues/168)), Map ([#169](https://github.com/alibaba/fluss/issues/169)), Struct ([#170](https://github.com/alibaba/fluss/issues/170)), Variant/JSON.
+- Support for complex data types: Array ([#168](https://github.com/apache/fluss/issues/168)), Map ([#169](https://github.com/apache/fluss/issues/169)), Struct ([#170](https://github.com/apache/fluss/issues/170)), Variant/JSON.
- Support for schema evolution.
## ZooKeeper Removal
Fluss currently utilizes ZooKeeper for cluster coordination, metadata storage, and cluster configuration management. In upcoming releases, ZooKeeper will be replaced by KvStore for metadata storage and Raft for cluster coordination and ensuring consistency. This transition aims to streamline operations and enhance system reliability.
(fluss) 08/12: WIP
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit efd24eea5b96fa87197e58a477bb0d90c9d89fe5
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 14:25:37 2025 +0800
WIP
---
.../java/org/apache/fluss/cluster/Cluster.java | 4 +++-
.../org/apache/fluss/memory/MemorySegmentPool.java | 8 ++++++--
.../java/org/apache/fluss/predicate/Predicate.java | 4 ----
.../fluss/record/DefaultValueRecordBatch.java | 4 +++-
.../fluss/record/send/SendWritableOutput.java | 4 +++-
.../org/apache/fluss/remote/RemoteLogSegment.java | 8 ++++++--
.../java/org/apache/fluss/utils/types/Either.java | 8 ++++++--
.../fluss/predicate/PredicateBuilderTest.java | 23 +++++++++++----------
.../org/apache/fluss/predicate/PredicateTest.java | 23 +++++++++++----------
.../security/auth/AuthenticationFactoryTest.java | 6 ++++--
.../fluss/fs/gs/GSFileSystemBehaviorITCase.java | 9 ++++----
.../org/apache/fluss/fs/obs/OBSFileSystem.java | 23 +++++++++++----------
.../apache/fluss/fs/obs/OBSFileSystemPlugin.java | 23 +++++++++++----------
.../DynamicTemporaryOBSCredentialsProvider.java | 23 +++++++++++----------
.../fs/obs/token/OBSSecurityTokenProvider.java | 23 +++++++++++----------
.../s3/model/transform/XmlResponsesSaxParser.java | 20 +++++++++++++-----
.../fluss/flink/lake/LakeSplitGenerator.java | 3 ++-
.../flink/lake/LakeSplitStateInitializer.java | 3 ++-
.../flink/lake/state/LakeSnapshotSplitState.java | 3 ++-
.../flink/lake/reader/SortMergeReaderTest.java | 24 ++++++++++++----------
.../lake/paimon/utils/PaimonRowAsFlussRow.java | 20 +++++++-----------
.../org/apache/fluss/rpc/netty/NettyUtils.java | 4 +++-
.../org/apache/fluss/server/log/LogSegments.java | 16 +++++++++++----
.../fluss/testutils/common/FlussAssertions.java | 4 +++-
pom.xml | 2 +-
25 files changed, 167 insertions(+), 125 deletions(-)
diff --git a/fluss-common/src/main/java/org/apache/fluss/cluster/Cluster.java b/fluss-common/src/main/java/org/apache/fluss/cluster/Cluster.java
index eee883fb2..c5528c8f2 100644
--- a/fluss-common/src/main/java/org/apache/fluss/cluster/Cluster.java
+++ b/fluss-common/src/main/java/org/apache/fluss/cluster/Cluster.java
@@ -147,7 +147,9 @@ public final class Cluster {
return coordinatorServer;
}
- /** @return The known set of alive tablet servers. */
+ /**
+ * @return The known set of alive tablet servers.
+ */
public Map<Integer, ServerNode> getAliveTabletServers() {
return aliveTabletServersById;
}
diff --git a/fluss-common/src/main/java/org/apache/fluss/memory/MemorySegmentPool.java b/fluss-common/src/main/java/org/apache/fluss/memory/MemorySegmentPool.java
index c3bf2d158..c36e44c53 100644
--- a/fluss-common/src/main/java/org/apache/fluss/memory/MemorySegmentPool.java
+++ b/fluss-common/src/main/java/org/apache/fluss/memory/MemorySegmentPool.java
@@ -66,10 +66,14 @@ public interface MemorySegmentPool {
*/
void returnAll(List<MemorySegment> memory);
- /** @return Free page number. */
+ /**
+ * @return Free page number.
+ */
int freePages();
- /** @return the available memory size in bytes. */
+ /**
+ * @return the available memory size in bytes.
+ */
long availableMemory();
void close();
diff --git a/fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java b/fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java
index cb3e8e720..2d67f7f32 100644
--- a/fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java
+++ b/fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java
@@ -23,10 +23,6 @@ import org.apache.fluss.row.InternalRow;
import java.io.Serializable;
import java.util.Optional;
-/* This file is based on source code of Apache Paimon Project (https://paimon.apache.org/), licensed by the Apache
- * Software Foundation (ASF) under the Apache License, Version 2.0. See the NOTICE file distributed with this work for
- * additional information regarding copyright ownership. */
-
/**
* Predicate which returns Boolean and provides testing by stats.
*
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/DefaultValueRecordBatch.java b/fluss-common/src/main/java/org/apache/fluss/record/DefaultValueRecordBatch.java
index 1490d97a9..b8aefc75b 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/DefaultValueRecordBatch.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/DefaultValueRecordBatch.java
@@ -257,7 +257,9 @@ public class DefaultValueRecordBatch implements ValueRecordBatch {
currentRecordNumber++;
}
- /** @param valueBytes consisted of schema id and the row encoded in the value bytes */
+ /**
+ * @param valueBytes consisted of schema id and the row encoded in the value bytes
+ */
public void append(byte[] valueBytes) throws IOException {
if (isClosed) {
throw new IllegalStateException(
diff --git a/fluss-common/src/main/java/org/apache/fluss/record/send/SendWritableOutput.java b/fluss-common/src/main/java/org/apache/fluss/record/send/SendWritableOutput.java
index f38822c93..c799fe4ec 100644
--- a/fluss-common/src/main/java/org/apache/fluss/record/send/SendWritableOutput.java
+++ b/fluss-common/src/main/java/org/apache/fluss/record/send/SendWritableOutput.java
@@ -34,7 +34,9 @@ public class SendWritableOutput extends ByteBufWritableOutput {
/** The current reader index of the underlying {@link #buf} for building next {@link Send}. */
private int currentReaderIndex = 0;
- /** @param buf The ByteBuf that has capacity of data size excluding zero-copy. */
+ /**
+ * @param buf The ByteBuf that has capacity of data size excluding zero-copy.
+ */
public SendWritableOutput(ByteBuf buf) {
super(buf);
this.sends = new ArrayDeque<>(1);
diff --git a/fluss-common/src/main/java/org/apache/fluss/remote/RemoteLogSegment.java b/fluss-common/src/main/java/org/apache/fluss/remote/RemoteLogSegment.java
index 3022a23b2..39480e4d1 100644
--- a/fluss-common/src/main/java/org/apache/fluss/remote/RemoteLogSegment.java
+++ b/fluss-common/src/main/java/org/apache/fluss/remote/RemoteLogSegment.java
@@ -93,12 +93,16 @@ public class RemoteLogSegment {
return remoteLogSegmentId;
}
- /** @return Remote log start offset of this segment (inclusive). */
+ /**
+ * @return Remote log start offset of this segment (inclusive).
+ */
public long remoteLogStartOffset() {
return remoteLogStartOffset;
}
- /** @return Remote log end offset of this segment (inclusive). */
+ /**
+ * @return Remote log end offset of this segment (inclusive).
+ */
public long remoteLogEndOffset() {
return remoteLogEndOffset;
}
diff --git a/fluss-common/src/main/java/org/apache/fluss/utils/types/Either.java b/fluss-common/src/main/java/org/apache/fluss/utils/types/Either.java
index 801401d33..39f1c5260 100644
--- a/fluss-common/src/main/java/org/apache/fluss/utils/types/Either.java
+++ b/fluss-common/src/main/java/org/apache/fluss/utils/types/Either.java
@@ -60,12 +60,16 @@ public abstract class Either<L, R> {
*/
public abstract R right() throws IllegalStateException;
- /** @return true if this is a Left value, false if this is a Right value */
+ /**
+ * @return true if this is a Left value, false if this is a Right value
+ */
public final boolean isLeft() {
return getClass() == Left.class;
}
- /** @return true if this is a Right value, false if this is a Left value */
+ /**
+ * @return true if this is a Right value, false if this is a Left value
+ */
public final boolean isRight() {
return getClass() == Right.class;
}
diff --git a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
index 19a317f6c..3c5013407 100644
--- a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.predicate;
diff --git a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
index ee8f680bc..b116e4283 100644
--- a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.predicate;
diff --git a/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java b/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
index 7bc19d6df..c71edeca0 100644
--- a/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
@@ -80,7 +80,8 @@ public class AuthenticationFactoryTest {
.isInstanceOf(TestIdentifierClientAuthenticator.class);
assertThat(
AuthenticationFactory.loadServerAuthenticatorSuppliers(configuration)
- .values().stream()
+ .values()
+ .stream()
.findAny()
.get()
.get())
@@ -93,7 +94,8 @@ public class AuthenticationFactoryTest {
.isInstanceOf(TestIdentifierClientAuthenticator.class);
assertThat(
AuthenticationFactory.loadServerAuthenticatorSuppliers(configuration)
- .values().stream()
+ .values()
+ .stream()
.findAny()
.get()
.get())
diff --git a/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java
index 58298c1fd..7ab04195b 100644
--- a/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java
+++ b/fluss-filesystems/fluss-fs-gs/src/test/java/org/apache/fluss/fs/gs/GSFileSystemBehaviorITCase.java
@@ -17,16 +17,15 @@
package org.apache.fluss.fs.gs;
+import com.google.cloud.hadoop.gcsio.GoogleCloudStorageFileSystem;
+import com.google.cloud.hadoop.gcsio.GoogleCloudStorageFileSystemOptions;
+import com.google.cloud.hadoop.gcsio.testing.InMemoryGoogleCloudStorage;
+import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.fs.FileSystem;
import org.apache.fluss.fs.FileSystemBehaviorTestSuite;
import org.apache.fluss.fs.FsPath;
import org.apache.fluss.testutils.common.CommonTestUtils;
-
-import com.google.cloud.hadoop.gcsio.GoogleCloudStorageFileSystem;
-import com.google.cloud.hadoop.gcsio.GoogleCloudStorageFileSystemOptions;
-import com.google.cloud.hadoop.gcsio.testing.InMemoryGoogleCloudStorage;
-import org.apache.commons.lang3.reflect.FieldUtils;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
index bf19c0dcf..145ece1ab 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.obs;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
index 33fb41875..0750472a6 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.obs;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
index 2d966eef6..f6e830d1f 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.obs.token;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
index 765c5f691..236764a22 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.obs.token;
diff --git a/fluss-filesystems/fluss-fs-s3/src/main/java/com/amazonaws/services/s3/model/transform/XmlResponsesSaxParser.java b/fluss-filesystems/fluss-fs-s3/src/main/java/com/amazonaws/services/s3/model/transform/XmlResponsesSaxParser.java
index 9502cf04c..6decac572 100644
--- a/fluss-filesystems/fluss-fs-s3/src/main/java/com/amazonaws/services/s3/model/transform/XmlResponsesSaxParser.java
+++ b/fluss-filesystems/fluss-fs-s3/src/main/java/com/amazonaws/services/s3/model/transform/XmlResponsesSaxParser.java
@@ -924,12 +924,16 @@ public class XmlResponsesSaxParser {
private Bucket currentBucket = null;
- /** @return the buckets listed in the document. */
+ /**
+ * @return the buckets listed in the document.
+ */
public List<Bucket> getBuckets() {
return buckets;
}
- /** @return the owner of the buckets. */
+ /**
+ * @return the owner of the buckets.
+ */
public Owner getOwner() {
return bucketsOwner;
}
@@ -986,7 +990,9 @@ public class XmlResponsesSaxParser {
private Grantee currentGrantee = null;
private Permission currentPermission = null;
- /** @return an object representing the ACL document. */
+ /**
+ * @return an object representing the ACL document.
+ */
public AccessControlList getAccessControlList() {
return accessControlList;
}
@@ -1067,7 +1073,9 @@ public class XmlResponsesSaxParser {
private final BucketLoggingConfiguration bucketLoggingConfiguration =
new BucketLoggingConfiguration();
- /** @return an object representing the bucket's LoggingStatus document. */
+ /**
+ * @return an object representing the bucket's LoggingStatus document.
+ */
public BucketLoggingConfiguration getBucketLoggingConfiguration() {
return bucketLoggingConfiguration;
}
@@ -1097,7 +1105,9 @@ public class XmlResponsesSaxParser {
private String location = null;
- /** @return the bucket's location. */
+ /**
+ * @return the bucket's location.
+ */
public String getLocation() {
return location;
}
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitGenerator.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitGenerator.java
index 915d1f076..1854fd26f 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitGenerator.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitGenerator.java
@@ -15,6 +15,8 @@
* limitations under the License.
*/
+package org.apache.fluss.flink.lake;
+
import org.apache.fluss.client.admin.Admin;
import org.apache.fluss.client.metadata.LakeSnapshot;
import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
@@ -43,7 +45,6 @@ import java.util.stream.IntStream;
import static org.apache.fluss.client.table.scanner.log.LogScanner.EARLIEST_OFFSET;
import static org.apache.fluss.metadata.ResolvedPartitionSpec.PARTITION_SPEC_SEPARATOR;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeSplitGenerator.java
/** A generator for lake splits. */
public class LakeSplitGenerator {
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitStateInitializer.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitStateInitializer.java
index 0333d1366..4a14b7037 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitStateInitializer.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitStateInitializer.java
@@ -15,13 +15,14 @@
* limitations under the License.
*/
+package org.apache.fluss.flink.lake;
+
import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
import org.apache.fluss.flink.lake.state.LakeSnapshotAndFlussLogSplitState;
import org.apache.fluss.flink.lake.state.LakeSnapshotSplitState;
import org.apache.fluss.flink.source.split.SourceSplitBase;
import org.apache.fluss.flink.source.split.SourceSplitState;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/LakeSplitStateInitializer.java
/** The state initializer for lake split. */
public class LakeSplitStateInitializer {
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/state/LakeSnapshotSplitState.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/state/LakeSnapshotSplitState.java
index 9d976ad64..e81358eae 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/state/LakeSnapshotSplitState.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/state/LakeSnapshotSplitState.java
@@ -15,10 +15,11 @@
* limitations under the License.
*/
+package org.apache.fluss.flink.lake.state;
+
import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
import org.apache.fluss.flink.source.split.SourceSplitBase;
import org.apache.fluss.flink.source.split.SourceSplitState;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/split/PaimonSnapshotAndFlussLogSplitState.java
/** The state of {@link LakeSnapshotSplit}. */
public class LakeSnapshotSplitState extends SourceSplitState {
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java
index 2bd02cd05..edeee5829 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java
@@ -1,17 +1,18 @@
/*
- * Copyright (c) 2025 Alibaba Group Holding Ltd.
+ * 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
*
- * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.lake.reader;
@@ -27,6 +28,7 @@ import org.apache.fluss.types.IntType;
import org.apache.fluss.types.RowType;
import org.apache.fluss.types.StringType;
import org.apache.fluss.utils.CloseableIterator;
+
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
diff --git a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
index e4351eab2..f9ba409d1 100644
--- a/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
+++ b/fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
@@ -1,13 +1,12 @@
/*
- * 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
+ * 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
+ * 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,
@@ -16,18 +15,13 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-lake/fluss-lake-paimon/src/main/java/org/apache/fluss/lake/paimon/utils/PaimonRowAsFlussRow.java
package org.apache.fluss.lake.paimon.utils;
-========
-package org.apache.fluss.flink.lakehouse.paimon.reader;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/PaimonRowWrapper.java
import org.apache.fluss.row.BinaryString;
import org.apache.fluss.row.Decimal;
import org.apache.fluss.row.InternalRow;
import org.apache.fluss.row.TimestampLtz;
import org.apache.fluss.row.TimestampNtz;
-
import org.apache.paimon.data.Timestamp;
/** Adapter for paimon row as fluss row. */
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyUtils.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyUtils.java
index 40ab37711..b6418e6dc 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyUtils.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyUtils.java
@@ -36,7 +36,9 @@ import java.util.concurrent.CompletableFuture;
/** Utils of netty. */
public class NettyUtils {
- /** @return an EventLoopGroup suitable for the current platform */
+ /**
+ * @return an EventLoopGroup suitable for the current platform
+ */
public static EventLoopGroup newEventLoopGroup(int nThreads, String threadNamePrefix) {
if (Epoll.isAvailable()) {
// Regular Epoll based event loop
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/log/LogSegments.java b/fluss-server/src/main/java/org/apache/fluss/server/log/LogSegments.java
index fa1c9a384..1a0c9a187 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/log/LogSegments.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/log/LogSegments.java
@@ -175,22 +175,30 @@ public final class LogSegments {
return floorEntry(offset).map(Map.Entry::getValue);
}
- /** @return the entry associated with the greatest offset, if it exists. */
+ /**
+ * @return the entry associated with the greatest offset, if it exists.
+ */
public Optional<Map.Entry<Long, LogSegment>> lastEntry() {
return Optional.ofNullable(segments.lastEntry());
}
- /** @return the log segment with the greatest offset, if it exists. */
+ /**
+ * @return the log segment with the greatest offset, if it exists.
+ */
public Optional<LogSegment> lastSegment() {
return Optional.ofNullable(segments.lastEntry()).map(Map.Entry::getValue);
}
- /** @return the entry associated with the greatest offset, if it exists. */
+ /**
+ * @return the entry associated with the greatest offset, if it exists.
+ */
public Optional<Map.Entry<Long, LogSegment>> firstEntry() {
return Optional.ofNullable(segments.firstEntry());
}
- /** @return the log segment with the greatest offset, if it exists. */
+ /**
+ * @return the log segment with the greatest offset, if it exists.
+ */
public Optional<LogSegment> firstSegment() {
return Optional.ofNullable(segments.firstEntry()).map(Map.Entry::getValue);
}
diff --git a/fluss-test-utils/src/main/java/org/apache/fluss/testutils/common/FlussAssertions.java b/fluss-test-utils/src/main/java/org/apache/fluss/testutils/common/FlussAssertions.java
index 27a17125d..f9de9002d 100644
--- a/fluss-test-utils/src/main/java/org/apache/fluss/testutils/common/FlussAssertions.java
+++ b/fluss-test-utils/src/main/java/org/apache/fluss/testutils/common/FlussAssertions.java
@@ -35,7 +35,9 @@ public class FlussAssertions {
private FlussAssertions() {}
- /** @see #chainOfCauses(Throwable) */
+ /**
+ * @see #chainOfCauses(Throwable)
+ */
@SuppressWarnings({"rawtypes", "unused"})
public static final InstanceOfAssertFactory<Stream, ListAssert<Throwable>> STREAM_THROWABLE =
new InstanceOfAssertFactory<>(Stream.class, Assertions::<Throwable>assertThat);
diff --git a/pom.xml b/pom.xml
index 17ebb3849..42529dcc5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -989,7 +989,7 @@
<configuration>
<java>
<googleJavaFormat>
- <version>1.15</version>
+ <version>1.15.0</version>
<style>AOSP</style>
</googleJavaFormat>
(fluss) 02/12: [Improve] The META-INF/services minor improvement
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit aa10e43c19869b1a069ac72b28939f1b3baf2ecc
Author: benjobs <be...@apache.org>
AuthorDate: Sat Jul 5 10:00:57 2025 +0800
[Improve] The META-INF/services minor improvement
---
...aba.fluss.fs.FileSystemPlugin => org.apache.fluss.fs.FileSystemPlugin} | 0
...aba.fluss.fs.FileSystemPlugin => org.apache.fluss.fs.FileSystemPlugin} | 0
...urityTokenReceiver => org.apache.fluss.fs.token.SecurityTokenReceiver} | 0
...aba.fluss.fs.FileSystemPlugin => org.apache.fluss.fs.FileSystemPlugin} | 0
...urityTokenReceiver => org.apache.fluss.fs.token.SecurityTokenReceiver} | 0
5 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/fluss-filesystems/fluss-fs-gs/src/main/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin b/fluss-filesystems/fluss-fs-gs/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
similarity index 100%
rename from fluss-filesystems/fluss-fs-gs/src/main/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
rename to fluss-filesystems/fluss-fs-gs/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/main/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin b/fluss-filesystems/fluss-fs-hadoop/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/main/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
rename to fluss-filesystems/fluss-fs-hadoop/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
diff --git a/fluss-filesystems/fluss-fs-hadoop/src/main/resources/META-INF/services/com.alibaba.fluss.fs.token.SecurityTokenReceiver b/fluss-filesystems/fluss-fs-hadoop/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
similarity index 100%
rename from fluss-filesystems/fluss-fs-hadoop/src/main/resources/META-INF/services/com.alibaba.fluss.fs.token.SecurityTokenReceiver
rename to fluss-filesystems/fluss-fs-hadoop/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
diff --git a/fluss-filesystems/fluss-fs-oss/src/main/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin b/fluss-filesystems/fluss-fs-oss/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
similarity index 100%
rename from fluss-filesystems/fluss-fs-oss/src/main/resources/META-INF/services/com.alibaba.fluss.fs.FileSystemPlugin
rename to fluss-filesystems/fluss-fs-oss/src/main/resources/META-INF/services/org.apache.fluss.fs.FileSystemPlugin
diff --git a/fluss-filesystems/fluss-fs-oss/src/main/resources/META-INF/services/com.alibaba.fluss.fs.token.SecurityTokenReceiver b/fluss-filesystems/fluss-fs-oss/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
similarity index 100%
rename from fluss-filesystems/fluss-fs-oss/src/main/resources/META-INF/services/com.alibaba.fluss.fs.token.SecurityTokenReceiver
rename to fluss-filesystems/fluss-fs-oss/src/main/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
(fluss) 11/12: fix
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit 558079eae87ea33edcad98073c1977fdaf6de24e
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 19:12:38 2025 +0800
fix
---
...tyTokenReceiver => org.apache.fluss.fs.token.SecurityTokenReceiver} | 0
...oragePlugin => org.apache.fluss.lake.lakestorage.LakeStoragePlugin} | 0
pom.xml | 3 ++-
3 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/fluss-client/src/test/resources/META-INF/services/com.alibaba.fluss.fs.token.SecurityTokenReceiver b/fluss-client/src/test/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
similarity index 100%
rename from fluss-client/src/test/resources/META-INF/services/com.alibaba.fluss.fs.token.SecurityTokenReceiver
rename to fluss-client/src/test/resources/META-INF/services/org.apache.fluss.fs.token.SecurityTokenReceiver
diff --git a/fluss-lake/fluss-lake-lance/src/main/resources/META-INF/services/com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin b/fluss-lake/fluss-lake-lance/src/main/resources/META-INF/services/org.apache.fluss.lake.lakestorage.LakeStoragePlugin
similarity index 100%
rename from fluss-lake/fluss-lake-lance/src/main/resources/META-INF/services/com.alibaba.fluss.lake.lakestorage.LakeStoragePlugin
rename to fluss-lake/fluss-lake-lance/src/main/resources/META-INF/services/org.apache.fluss.lake.lakestorage.LakeStoragePlugin
diff --git a/pom.xml b/pom.xml
index 42529dcc5..21c101b19 100644
--- a/pom.xml
+++ b/pom.xml
@@ -585,7 +585,7 @@
<inherited>false</inherited>
<executions>
<execution>
- <phase>verify</phase>
+ <phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
@@ -987,6 +987,7 @@
<artifactId>spotless-maven-plugin</artifactId>
<version>${spotless.version}</version>
<configuration>
+ <skip>${skip.on.java8}</skip>
<java>
<googleJavaFormat>
<version>1.15.0</version>
(fluss) 07/12: WIP
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit 0e800b0db5a81260ef84f75d4dc0deb42686e81c
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 14:10:30 2025 +0800
WIP
---
.../apache/fluss/client/lookup/LookupSender.java | 1 +
.../fluss/client/metadata/MetadataUpdater.java | 1 +
.../fluss/client/table/scanner/log/LogFetcher.java | 1 +
.../client/table/scanner/log/LogScannerImpl.java | 1 +
.../fluss/client/write/RecordAccumulator.java | 1 +
.../java/org/apache/fluss/client/write/Sender.java | 1 +
.../security/acl/FlussAuthorizationITCase.java | 1 +
.../fluss/client/write/ArrowLogWriteBatchTest.java | 3 +-
.../compression/ZstdArrowCompressionCodec.java | 3 +-
.../main/java/org/apache/fluss/fs/FileSystem.java | 1 +
.../fluss/metrics/reporter/ReporterSetup.java | 1 +
.../apache/fluss/plugin/DefaultPluginManager.java | 1 +
.../security/auth/sasl/jaas/DefaultLogin.java | 1 +
.../bucketing/IcebergBucketingFunctionTest.java | 1 +
.../java/org/apache/fluss/cluster/ClusterTest.java | 1 +
.../compression/ArrowCompressionCodecTest.java | 1 +
.../fluss/lake/lakestorage/LakeStorageTest.java | 1 +
.../fluss/plugin/DefaultPluginManagerTest.java | 1 +
.../fluss/predicate/PredicateBuilderTest.java | 23 ++++++------
.../org/apache/fluss/predicate/PredicateTest.java | 23 ++++++------
.../apache/fluss/record/FileLogRecordsTest.java | 1 +
.../record/MemoryLogRecordsArrowBuilderTest.java | 5 +--
.../fluss/record/send/SendWritableOutputTest.java | 1 +
.../fluss/row/arrow/ArrowReaderWriterTest.java | 1 +
.../fluss/row/arrow/ArrowWriterPoolTest.java | 1 +
.../encode/iceberg/IcebergBinaryRowWriterTest.java | 1 +
.../row/encode/iceberg/IcebergKeyEncoderTest.java | 1 +
.../security/auth/AuthenticationFactoryTest.java | 1 +
.../org/apache/fluss/utils/ArrowUtilsTest.java | 5 +--
.../apache/fluss/utils/ProtoCodecUtilsTest.java | 5 +--
.../apache/fluss/utils/json/JsonSerdeTestBase.java | 1 +
.../org/apache/fluss/fs/obs/OBSFileSystem.java | 23 ++++++------
.../apache/fluss/fs/obs/OBSFileSystemPlugin.java | 23 ++++++------
.../DynamicTemporaryOBSCredentialsProvider.java | 23 ++++++------
.../fs/obs/token/OBSSecurityTokenProvider.java | 23 ++++++------
.../fs/obs/token/OBSSecurityTokenReceiver.java | 5 +--
.../fluss/fs/obs/OBSFileSystemBehaviorITCase.java | 1 +
...redentialsProviderFileSystemBehaviorITCase.java | 5 +--
.../obs/OBSWithTokenFileSystemBehaviorITCase.java | 1 +
.../apache/fluss/flink/catalog/FlinkCatalog.java | 41 +++++++++++-----------
.../fluss/flink/catalog/FlinkTableFactory.java | 19 +++++-----
.../org/apache/fluss/flink/source/FlinkSource.java | 23 ++++++------
.../fluss/flink/source/FlinkTableSource.java | 37 +++++++++----------
.../JsonStringDeserializationSchema.java | 5 +--
.../flink/source/emitter/FlinkRecordEmitter.java | 5 +--
.../source/enumerator/FlinkSourceEnumerator.java | 13 +++----
.../flink/source/reader/FlinkSourceReader.java | 9 ++---
.../source/reader/FlinkSourceSplitReader.java | 13 +++----
.../reader/fetcher/FlinkSourceFetcherManager.java | 11 +++---
.../flink/source/split/SourceSplitSerializer.java | 7 ++--
.../tiering/committer/TieringCommitOperator.java | 13 +++----
.../fluss/flink/tiering/source/TieringSource.java | 19 +++++-----
.../apache/fluss/flink/utils/FlinkConversions.java | 17 ++++-----
.../fluss/flink/lake/LakeSplitSerializerTest.java | 5 +--
.../flink/lake/reader/SortMergeReaderTest.java | 24 ++++++-------
.../security/acl/FlinkAuthorizationITCase.java | 13 +++----
.../fluss/flink/source/FlinkTableSourceITCase.java | 27 +++++++-------
.../FlussTableLakeSnapshotCommitterTest.java | 1 +
.../committer/TieringCommitOperatorTest.java | 27 +++++++-------
.../metrics/prometheus/PrometheusReporterTest.java | 7 ++--
.../generator/generator/ProtoCodeGenerator.java | 5 +--
.../generator/generator/ProtobufNumberField.java | 3 +-
.../org/apache/fluss/rpc/netty/NettyLogger.java | 1 +
.../apache/fluss/rpc/netty/client/NettyClient.java | 1 +
.../fluss/rpc/netty/client/NettyClientHandler.java | 1 +
.../fluss/rpc/netty/client/ServerConnection.java | 1 +
.../fluss/rpc/netty/server/FlussRequest.java | 1 +
.../apache/fluss/rpc/netty/server/NettyServer.java | 1 +
.../fluss/rpc/netty/server/NettyServerHandler.java | 1 +
.../rpc/netty/server/ServerChannelInitializer.java | 1 +
.../org/apache/fluss/rpc/protocol/ApiManager.java | 1 +
.../rpc/netty/server/NettyServerHandlerTest.java | 1 +
.../fluss/rpc/protocol/MessageCodecTest.java | 1 +
.../fluss/rpc/protocol/RequestChannelTest.java | 1 +
.../java/org/apache/fluss/server/ServerBase.java | 1 +
.../fluss/server/authorizer/DefaultAuthorizer.java | 1 +
.../ZkNodeChangeNotificationWatcher.java | 1 +
.../coordinator/CoordinatorEventProcessor.java | 1 +
.../server/coordinator/CoordinatorServer.java | 1 +
.../fluss/server/coordinator/MetadataManager.java | 1 +
.../coordinator/event/CoordinatorEventManager.java | 1 +
.../event/watcher/TableChangeWatcher.java | 1 +
.../event/watcher/TabletServerChangeWatcher.java | 1 +
.../statemachine/TableBucketStateMachine.java | 1 +
.../java/org/apache/fluss/server/kv/KvManager.java | 1 +
.../java/org/apache/fluss/server/kv/KvTablet.java | 1 +
.../org/apache/fluss/server/log/AbstractIndex.java | 1 +
.../org/apache/fluss/server/log/LogSegment.java | 1 +
.../org/apache/fluss/server/log/OffsetIndex.java | 1 +
.../org/apache/fluss/server/log/TimeIndex.java | 1 +
.../fluss/server/log/WriterStateManager.java | 1 +
.../replica/fetcher/ReplicaFetcherThread.java | 1 +
.../apache/fluss/server/tablet/TabletServer.java | 1 +
.../apache/fluss/server/zk/ZooKeeperClient.java | 1 +
.../org/apache/fluss/server/zk/ZooKeeperUtils.java | 3 +-
.../org/apache/fluss/server/ServerTestBase.java | 1 +
.../coordinator/CoordinatorEventProcessorTest.java | 1 +
.../statemachine/TableBucketStateMachineTest.java | 1 +
.../org/apache/fluss/server/kv/KvTabletTest.java | 1 +
.../fluss/server/kv/wal/ArrowWalBuilderTest.java | 1 +
.../fluss/server/log/WriterStateManagerTest.java | 1 +
.../log/remote/DefaultRemoteLogStorageTest.java | 1 +
.../server/replica/KvReplicaRestoreITCase.java | 1 +
.../server/testutils/FlussClusterExtension.java | 3 +-
.../fluss/server/zk/ZooKeeperClientTest.java | 1 +
.../apache/fluss/server/zk/ZooKeeperExtension.java | 3 +-
.../zk/data/CoordinatorAddressJsonSerdeTest.java | 1 +
.../zk/data/TableRegistrationJsonSerdeTest.java | 1 +
.../TabletServerRegistrationJsonSerdeTest.java | 1 +
pom.xml | 2 +-
110 files changed, 344 insertions(+), 250 deletions(-)
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/lookup/LookupSender.java b/fluss-client/src/main/java/org/apache/fluss/client/lookup/LookupSender.java
index 41f6888a3..87fa0dff1 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/lookup/LookupSender.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/lookup/LookupSender.java
@@ -32,6 +32,7 @@ import org.apache.fluss.rpc.messages.PrefixLookupRequest;
import org.apache.fluss.rpc.messages.PrefixLookupResponse;
import org.apache.fluss.rpc.protocol.ApiError;
import org.apache.fluss.utils.types.Tuple2;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/metadata/MetadataUpdater.java b/fluss-client/src/main/java/org/apache/fluss/client/metadata/MetadataUpdater.java
index 1332ce656..1730235f4 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/metadata/MetadataUpdater.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/metadata/MetadataUpdater.java
@@ -39,6 +39,7 @@ import org.apache.fluss.rpc.gateway.AdminReadOnlyGateway;
import org.apache.fluss.rpc.gateway.CoordinatorGateway;
import org.apache.fluss.rpc.gateway.TabletServerGateway;
import org.apache.fluss.utils.ExceptionUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java
index 93f8d3600..d195dc6f0 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java
@@ -50,6 +50,7 @@ import org.apache.fluss.rpc.messages.PbFetchLogRespForTable;
import org.apache.fluss.rpc.protocol.Errors;
import org.apache.fluss.utils.IOUtils;
import org.apache.fluss.utils.Projection;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogScannerImpl.java b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogScannerImpl.java
index 8d600fa06..cef05808f 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogScannerImpl.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogScannerImpl.java
@@ -30,6 +30,7 @@ import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.rpc.metrics.ClientMetricGroup;
import org.apache.fluss.types.RowType;
import org.apache.fluss.utils.Projection;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java b/fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java
index 8d6bae159..6164d6ecf 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java
@@ -40,6 +40,7 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
import org.apache.fluss.utils.CopyOnWriteMap;
import org.apache.fluss.utils.MathUtils;
import org.apache.fluss.utils.clock.Clock;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java b/fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java
index 8213a5b05..a81c69ee7 100644
--- a/fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java
+++ b/fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java
@@ -41,6 +41,7 @@ import org.apache.fluss.rpc.messages.PutKvResponse;
import org.apache.fluss.rpc.protocol.ApiError;
import org.apache.fluss.rpc.protocol.Errors;
import org.apache.fluss.utils.ExceptionUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-client/src/test/java/org/apache/fluss/client/security/acl/FlussAuthorizationITCase.java b/fluss-client/src/test/java/org/apache/fluss/client/security/acl/FlussAuthorizationITCase.java
index c9806d309..2bfb6f8dc 100644
--- a/fluss-client/src/test/java/org/apache/fluss/client/security/acl/FlussAuthorizationITCase.java
+++ b/fluss-client/src/test/java/org/apache/fluss/client/security/acl/FlussAuthorizationITCase.java
@@ -56,6 +56,7 @@ import org.apache.fluss.security.acl.ResourceFilter;
import org.apache.fluss.server.testutils.FlussClusterExtension;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Lists;
import org.apache.fluss.utils.CloseableIterator;
+
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-client/src/test/java/org/apache/fluss/client/write/ArrowLogWriteBatchTest.java b/fluss-client/src/test/java/org/apache/fluss/client/write/ArrowLogWriteBatchTest.java
index cc5b7caa8..04ba2d8b7 100644
--- a/fluss-client/src/test/java/org/apache/fluss/client/write/ArrowLogWriteBatchTest.java
+++ b/fluss-client/src/test/java/org/apache/fluss/client/write/ArrowLogWriteBatchTest.java
@@ -17,7 +17,6 @@
package org.apache.fluss.client.write;
-import org.apache.commons.lang3.RandomStringUtils;
import org.apache.fluss.memory.MemorySegment;
import org.apache.fluss.memory.PreAllocatedPagedOutputView;
import org.apache.fluss.memory.TestingMemorySegmentPool;
@@ -34,6 +33,8 @@ import org.apache.fluss.row.arrow.ArrowWriterPool;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
import org.apache.fluss.utils.CloseableIterator;
+
+import org.apache.commons.lang3.RandomStringUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java b/fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java
index dabaf901d..80dadb6d7 100644
--- a/fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java
+++ b/fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java
@@ -17,12 +17,13 @@
package org.apache.fluss.compression;
-import com.github.luben.zstd.Zstd;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.ArrowBuf;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.compression.AbstractCompressionCodec;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.compression.CompressionUtil;
+import com.github.luben.zstd.Zstd;
+
import java.nio.ByteBuffer;
/* This file is based on source code of Apache Arrow-java Project (https://github.com/apache/arrow-java), licensed by
diff --git a/fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java b/fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java
index f4f83f9e6..7410b5409 100644
--- a/fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java
+++ b/fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java
@@ -29,6 +29,7 @@ import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Multimap;
import org.apache.fluss.utils.ExceptionUtils;
import org.apache.fluss.utils.TemporaryClassLoaderContext;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-common/src/main/java/org/apache/fluss/metrics/reporter/ReporterSetup.java b/fluss-common/src/main/java/org/apache/fluss/metrics/reporter/ReporterSetup.java
index 7a712b666..53d77c8df 100644
--- a/fluss-common/src/main/java/org/apache/fluss/metrics/reporter/ReporterSetup.java
+++ b/fluss-common/src/main/java/org/apache/fluss/metrics/reporter/ReporterSetup.java
@@ -22,6 +22,7 @@ import org.apache.fluss.config.Configuration;
import org.apache.fluss.plugin.PluginManager;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
import org.apache.fluss.utils.CollectionUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java b/fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java
index c9441b1db..741afc822 100644
--- a/fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java
+++ b/fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java
@@ -20,6 +20,7 @@ package org.apache.fluss.plugin;
import org.apache.fluss.annotation.Internal;
import org.apache.fluss.shaded.guava32.com.google.common.base.Joiner;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/DefaultLogin.java b/fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/DefaultLogin.java
index 27b7b27ec..fcb58714f 100644
--- a/fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/DefaultLogin.java
+++ b/fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/DefaultLogin.java
@@ -18,6 +18,7 @@
package org.apache.fluss.security.auth.sasl.jaas;
import org.apache.fluss.utils.TemporaryClassLoaderContext;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-common/src/test/java/org/apache/fluss/bucketing/IcebergBucketingFunctionTest.java b/fluss-common/src/test/java/org/apache/fluss/bucketing/IcebergBucketingFunctionTest.java
index 2ca6c51bb..77f6b1b75 100644
--- a/fluss-common/src/test/java/org/apache/fluss/bucketing/IcebergBucketingFunctionTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/bucketing/IcebergBucketingFunctionTest.java
@@ -25,6 +25,7 @@ import org.apache.fluss.row.encode.iceberg.IcebergKeyEncoder;
import org.apache.fluss.types.DataType;
import org.apache.fluss.types.DataTypes;
import org.apache.fluss.types.RowType;
+
import org.apache.iceberg.transforms.Transform;
import org.apache.iceberg.transforms.Transforms;
import org.apache.iceberg.types.Types;
diff --git a/fluss-common/src/test/java/org/apache/fluss/cluster/ClusterTest.java b/fluss-common/src/test/java/org/apache/fluss/cluster/ClusterTest.java
index caa491a6d..ff810c3dc 100644
--- a/fluss-common/src/test/java/org/apache/fluss/cluster/ClusterTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/cluster/ClusterTest.java
@@ -21,6 +21,7 @@ import org.apache.fluss.metadata.PhysicalTablePath;
import org.apache.fluss.metadata.SchemaInfo;
import org.apache.fluss.metadata.TableInfo;
import org.apache.fluss.metadata.TablePath;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-common/src/test/java/org/apache/fluss/compression/ArrowCompressionCodecTest.java b/fluss-common/src/test/java/org/apache/fluss/compression/ArrowCompressionCodecTest.java
index d9ab2b3e5..22103031b 100644
--- a/fluss-common/src/test/java/org/apache/fluss/compression/ArrowCompressionCodecTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/compression/ArrowCompressionCodecTest.java
@@ -34,6 +34,7 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.ipc.message.ArrowFi
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.ArrowType;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Field;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.types.pojo.Schema;
+
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/fluss-common/src/test/java/org/apache/fluss/lake/lakestorage/LakeStorageTest.java b/fluss-common/src/test/java/org/apache/fluss/lake/lakestorage/LakeStorageTest.java
index e2fcd0290..f0452812b 100644
--- a/fluss-common/src/test/java/org/apache/fluss/lake/lakestorage/LakeStorageTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/lake/lakestorage/LakeStorageTest.java
@@ -24,6 +24,7 @@ import org.apache.fluss.lake.writer.LakeTieringFactory;
import org.apache.fluss.metadata.TableDescriptor;
import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.plugin.PluginManager;
+
import org.junit.jupiter.api.Test;
import java.util.Collections;
diff --git a/fluss-common/src/test/java/org/apache/fluss/plugin/DefaultPluginManagerTest.java b/fluss-common/src/test/java/org/apache/fluss/plugin/DefaultPluginManagerTest.java
index 4c63f2ea4..f4fe1bf61 100644
--- a/fluss-common/src/test/java/org/apache/fluss/plugin/DefaultPluginManagerTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/plugin/DefaultPluginManagerTest.java
@@ -19,6 +19,7 @@ package org.apache.fluss.plugin;
import org.apache.fluss.plugin.jar.pluginb.TestServiceB;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Lists;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
diff --git a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
index 3c5013407..19a317f6c 100644
--- a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateBuilderTest.java
@@ -1,18 +1,17 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.predicate;
diff --git a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
index b116e4283..ee8f680bc 100644
--- a/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/predicate/PredicateTest.java
@@ -1,18 +1,17 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.predicate;
diff --git a/fluss-common/src/test/java/org/apache/fluss/record/FileLogRecordsTest.java b/fluss-common/src/test/java/org/apache/fluss/record/FileLogRecordsTest.java
index ac57c8652..b20505c48 100644
--- a/fluss-common/src/test/java/org/apache/fluss/record/FileLogRecordsTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/record/FileLogRecordsTest.java
@@ -18,6 +18,7 @@
package org.apache.fluss.record;
import org.apache.fluss.exception.FlussRuntimeException;
+
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-common/src/test/java/org/apache/fluss/record/MemoryLogRecordsArrowBuilderTest.java b/fluss-common/src/test/java/org/apache/fluss/record/MemoryLogRecordsArrowBuilderTest.java
index fa68822f8..7759e711e 100644
--- a/fluss-common/src/test/java/org/apache/fluss/record/MemoryLogRecordsArrowBuilderTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/record/MemoryLogRecordsArrowBuilderTest.java
@@ -17,8 +17,6 @@
package org.apache.fluss.record;
-import org.apache.commons.lang3.RandomUtils;
-import org.apache.commons.lang3.StringUtils;
import org.apache.fluss.compression.ArrowCompressionInfo;
import org.apache.fluss.compression.ArrowCompressionType;
import org.apache.fluss.config.ConfigOptions;
@@ -33,6 +31,9 @@ import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
import org.apache.fluss.testutils.DataTestUtils;
import org.apache.fluss.utils.CloseableIterator;
+
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-common/src/test/java/org/apache/fluss/record/send/SendWritableOutputTest.java b/fluss-common/src/test/java/org/apache/fluss/record/send/SendWritableOutputTest.java
index 97b3ee829..e981471cd 100644
--- a/fluss-common/src/test/java/org/apache/fluss/record/send/SendWritableOutputTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/record/send/SendWritableOutputTest.java
@@ -24,6 +24,7 @@ import org.apache.fluss.record.bytesview.MultiBytesView;
import org.apache.fluss.row.BinaryString;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
diff --git a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
index 25a3de17b..f94f147fe 100644
--- a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowReaderWriterTest.java
@@ -35,6 +35,7 @@ import org.apache.fluss.types.DataType;
import org.apache.fluss.types.DataTypes;
import org.apache.fluss.types.RowType;
import org.apache.fluss.utils.ArrowUtils;
+
import org.junit.jupiter.api.Test;
import java.io.IOException;
diff --git a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowWriterPoolTest.java b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowWriterPoolTest.java
index b949418a0..b5ef58c20 100644
--- a/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowWriterPoolTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/row/arrow/ArrowWriterPoolTest.java
@@ -19,6 +19,7 @@ package org.apache.fluss.row.arrow;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
+
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java b/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java
index c62363b0b..f7d39498f 100644
--- a/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergBinaryRowWriterTest.java
@@ -19,6 +19,7 @@ package org.apache.fluss.row.encode.iceberg;
import org.apache.fluss.row.BinaryString;
import org.apache.fluss.row.Decimal;
+
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
diff --git a/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java b/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java
index c9430e1d4..e7059f296 100644
--- a/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/row/encode/iceberg/IcebergKeyEncoderTest.java
@@ -24,6 +24,7 @@ import org.apache.fluss.row.TimestampNtz;
import org.apache.fluss.types.DataType;
import org.apache.fluss.types.DataTypes;
import org.apache.fluss.types.RowType;
+
import org.apache.iceberg.types.Conversions;
import org.apache.iceberg.types.Types;
import org.junit.jupiter.api.Test;
diff --git a/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java b/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
index dba58b4fd..7bc19d6df 100644
--- a/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/security/auth/AuthenticationFactoryTest.java
@@ -23,6 +23,7 @@ import org.apache.fluss.security.auth.TestIdentifierAuthenticationPlugin.TestIde
import org.apache.fluss.security.auth.TestIdentifierAuthenticationPlugin.TestIdentifierServerAuthenticator;
import org.apache.fluss.utils.ParentResourceBlockingClassLoader;
import org.apache.fluss.utils.TemporaryClassLoaderContext;
+
import org.junit.jupiter.api.Test;
import java.net.URL;
diff --git a/fluss-common/src/test/java/org/apache/fluss/utils/ArrowUtilsTest.java b/fluss-common/src/test/java/org/apache/fluss/utils/ArrowUtilsTest.java
index 76d2dac93..91f3df1fe 100644
--- a/fluss-common/src/test/java/org/apache/fluss/utils/ArrowUtilsTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/utils/ArrowUtilsTest.java
@@ -17,8 +17,6 @@
package org.apache.fluss.utils;
-import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.commons.lang3.RandomUtils;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.vector.BigIntVector;
@@ -46,6 +44,9 @@ import org.apache.fluss.types.DataField;
import org.apache.fluss.types.DataType;
import org.apache.fluss.types.DataTypes;
import org.apache.fluss.types.RowType;
+
+import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.commons.lang3.RandomUtils;
import org.junit.jupiter.api.Test;
import java.io.ByteArrayOutputStream;
diff --git a/fluss-common/src/test/java/org/apache/fluss/utils/ProtoCodecUtilsTest.java b/fluss-common/src/test/java/org/apache/fluss/utils/ProtoCodecUtilsTest.java
index ac5d45678..916ad9204 100644
--- a/fluss-common/src/test/java/org/apache/fluss/utils/ProtoCodecUtilsTest.java
+++ b/fluss-common/src/test/java/org/apache/fluss/utils/ProtoCodecUtilsTest.java
@@ -17,10 +17,11 @@
package org.apache.fluss.utils;
-import com.google.protobuf.CodedInputStream;
-import com.google.protobuf.CodedOutputStream;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.Unpooled;
+
+import com.google.protobuf.CodedInputStream;
+import com.google.protobuf.CodedOutputStream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
diff --git a/fluss-common/src/test/java/org/apache/fluss/utils/json/JsonSerdeTestBase.java b/fluss-common/src/test/java/org/apache/fluss/utils/json/JsonSerdeTestBase.java
index 8370ddfa8..7dcf4e55d 100644
--- a/fluss-common/src/test/java/org/apache/fluss/utils/json/JsonSerdeTestBase.java
+++ b/fluss-common/src/test/java/org/apache/fluss/utils/json/JsonSerdeTestBase.java
@@ -18,6 +18,7 @@
package org.apache.fluss.utils.json;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
+
import org.junit.jupiter.api.Test;
import java.io.IOException;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
index 145ece1ab..bf19c0dcf 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystem.java
@@ -1,18 +1,17 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.obs;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
index 0750472a6..33fb41875 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/OBSFileSystemPlugin.java
@@ -1,18 +1,17 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.obs;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
index f6e830d1f..2d966eef6 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/DynamicTemporaryOBSCredentialsProvider.java
@@ -1,18 +1,17 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.obs.token;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
index 236764a22..765c5f691 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenProvider.java
@@ -1,18 +1,17 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.fs.obs.token;
diff --git a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
index 08ae3af4e..f4facb8a5 100644
--- a/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
+++ b/fluss-filesystems/fluss-fs-obs/src/main/java/org/apache/fluss/fs/obs/token/OBSSecurityTokenReceiver.java
@@ -17,12 +17,13 @@
package org.apache.fluss.fs.obs.token;
-import com.obs.services.internal.security.BasicSecurityKey;
-import com.obs.services.model.ISecurityKey;
import org.apache.fluss.fs.obs.OBSFileSystemPlugin;
import org.apache.fluss.fs.token.CredentialsJsonSerde;
import org.apache.fluss.fs.token.ObtainedSecurityToken;
import org.apache.fluss.fs.token.SecurityTokenReceiver;
+
+import com.obs.services.internal.security.BasicSecurityKey;
+import com.obs.services.model.ISecurityKey;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSFileSystemBehaviorITCase.java b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSFileSystemBehaviorITCase.java
index 2718496b2..edfa815a1 100644
--- a/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSFileSystemBehaviorITCase.java
+++ b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSFileSystemBehaviorITCase.java
@@ -21,6 +21,7 @@ import org.apache.fluss.config.Configuration;
import org.apache.fluss.fs.FileSystem;
import org.apache.fluss.fs.FileSystemBehaviorTestSuite;
import org.apache.fluss.fs.FsPath;
+
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
diff --git a/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java
index 441105620..338d9e73d 100644
--- a/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java
+++ b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithCredentialsProviderFileSystemBehaviorITCase.java
@@ -17,12 +17,13 @@
package org.apache.fluss.fs.obs;
-import com.obs.services.EnvironmentVariableObsCredentialsProvider;
-import com.obs.services.IObsCredentialsProvider;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.fs.FileSystem;
import org.apache.fluss.fs.FileSystemBehaviorTestSuite;
import org.apache.fluss.fs.FsPath;
+
+import com.obs.services.EnvironmentVariableObsCredentialsProvider;
+import com.obs.services.IObsCredentialsProvider;
import org.junit.jupiter.api.BeforeAll;
import java.util.UUID;
diff --git a/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java
index 0fa8fb5a6..dbc4b9c36 100644
--- a/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java
+++ b/fluss-filesystems/fluss-fs-obs/src/test/java/org/apache/fluss/fs/obs/OBSWithTokenFileSystemBehaviorITCase.java
@@ -22,6 +22,7 @@ import org.apache.fluss.fs.FileSystem;
import org.apache.fluss.fs.FsPath;
import org.apache.fluss.fs.obs.token.OBSSecurityTokenReceiver;
import org.apache.fluss.fs.token.ObtainedSecurityToken;
+
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkCatalog.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkCatalog.java
index 43cecead7..7dd651158 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkCatalog.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkCatalog.java
@@ -17,6 +17,27 @@
package org.apache.fluss.flink.catalog;
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.exception.FlussRuntimeException;
+import org.apache.fluss.exception.InvalidTableException;
+import org.apache.fluss.flink.lake.LakeCatalog;
+import org.apache.fluss.flink.procedure.ProcedureManager;
+import org.apache.fluss.flink.utils.CatalogExceptionUtils;
+import org.apache.fluss.flink.utils.DataLakeUtils;
+import org.apache.fluss.flink.utils.FlinkConversions;
+import org.apache.fluss.metadata.DatabaseDescriptor;
+import org.apache.fluss.metadata.PartitionInfo;
+import org.apache.fluss.metadata.PartitionSpec;
+import org.apache.fluss.metadata.TableDescriptor;
+import org.apache.fluss.metadata.TableInfo;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.utils.ExceptionUtils;
+import org.apache.fluss.utils.IOUtils;
+
import org.apache.flink.annotation.VisibleForTesting;
import org.apache.flink.table.catalog.AbstractCatalog;
import org.apache.flink.table.catalog.CatalogBaseTable;
@@ -48,26 +69,6 @@ import org.apache.flink.table.catalog.stats.CatalogTableStatistics;
import org.apache.flink.table.expressions.Expression;
import org.apache.flink.table.factories.Factory;
import org.apache.flink.table.procedures.Procedure;
-import org.apache.fluss.client.Connection;
-import org.apache.fluss.client.ConnectionFactory;
-import org.apache.fluss.client.admin.Admin;
-import org.apache.fluss.config.ConfigOptions;
-import org.apache.fluss.config.Configuration;
-import org.apache.fluss.exception.FlussRuntimeException;
-import org.apache.fluss.exception.InvalidTableException;
-import org.apache.fluss.flink.lake.LakeCatalog;
-import org.apache.fluss.flink.procedure.ProcedureManager;
-import org.apache.fluss.flink.utils.CatalogExceptionUtils;
-import org.apache.fluss.flink.utils.DataLakeUtils;
-import org.apache.fluss.flink.utils.FlinkConversions;
-import org.apache.fluss.metadata.DatabaseDescriptor;
-import org.apache.fluss.metadata.PartitionInfo;
-import org.apache.fluss.metadata.PartitionSpec;
-import org.apache.fluss.metadata.TableDescriptor;
-import org.apache.fluss.metadata.TableInfo;
-import org.apache.fluss.metadata.TablePath;
-import org.apache.fluss.utils.ExceptionUtils;
-import org.apache.fluss.utils.IOUtils;
import javax.annotation.Nullable;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkTableFactory.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkTableFactory.java
index 8ecef4eb6..9ca8efae7 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkTableFactory.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/catalog/FlinkTableFactory.java
@@ -17,6 +17,16 @@
package org.apache.fluss.flink.catalog;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.flink.FlinkConnectorOptions;
+import org.apache.fluss.flink.lake.LakeTableFactory;
+import org.apache.fluss.flink.sink.FlinkTableSink;
+import org.apache.fluss.flink.source.FlinkTableSource;
+import org.apache.fluss.flink.utils.FlinkConnectorOptionsUtils;
+import org.apache.fluss.metadata.DataLakeFormat;
+import org.apache.fluss.metadata.TablePath;
+
import org.apache.flink.api.common.RuntimeExecutionMode;
import org.apache.flink.configuration.ConfigOption;
import org.apache.flink.configuration.CoreOptions;
@@ -35,15 +45,6 @@ import org.apache.flink.table.factories.DynamicTableSinkFactory;
import org.apache.flink.table.factories.DynamicTableSourceFactory;
import org.apache.flink.table.factories.FactoryUtil;
import org.apache.flink.table.types.logical.RowType;
-import org.apache.fluss.config.ConfigOptions;
-import org.apache.fluss.config.Configuration;
-import org.apache.fluss.flink.FlinkConnectorOptions;
-import org.apache.fluss.flink.lake.LakeTableFactory;
-import org.apache.fluss.flink.sink.FlinkTableSink;
-import org.apache.fluss.flink.source.FlinkTableSource;
-import org.apache.fluss.flink.utils.FlinkConnectorOptionsUtils;
-import org.apache.fluss.metadata.DataLakeFormat;
-import org.apache.fluss.metadata.TablePath;
import java.io.File;
import java.time.ZoneId;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkSource.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkSource.java
index 47a38e4c7..375d0540f 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkSource.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkSource.java
@@ -17,17 +17,6 @@
package org.apache.fluss.flink.source;
-import org.apache.flink.api.common.typeinfo.TypeInformation;
-import org.apache.flink.api.connector.source.Boundedness;
-import org.apache.flink.api.connector.source.Source;
-import org.apache.flink.api.connector.source.SourceReader;
-import org.apache.flink.api.connector.source.SourceReaderContext;
-import org.apache.flink.api.connector.source.SplitEnumerator;
-import org.apache.flink.api.connector.source.SplitEnumeratorContext;
-import org.apache.flink.api.java.typeutils.ResultTypeQueryable;
-import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
-import org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue;
-import org.apache.flink.core.io.SimpleVersionedSerializer;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.flink.source.deserializer.DeserializerInitContextImpl;
import org.apache.fluss.flink.source.deserializer.FlussDeserializationSchema;
@@ -47,6 +36,18 @@ import org.apache.fluss.lake.source.LakeSplit;
import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.types.RowType;
+import org.apache.flink.api.common.typeinfo.TypeInformation;
+import org.apache.flink.api.connector.source.Boundedness;
+import org.apache.flink.api.connector.source.Source;
+import org.apache.flink.api.connector.source.SourceReader;
+import org.apache.flink.api.connector.source.SourceReaderContext;
+import org.apache.flink.api.connector.source.SplitEnumerator;
+import org.apache.flink.api.connector.source.SplitEnumeratorContext;
+import org.apache.flink.api.java.typeutils.ResultTypeQueryable;
+import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
+import org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue;
+import org.apache.flink.core.io.SimpleVersionedSerializer;
+
import javax.annotation.Nullable;
import java.util.List;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkTableSource.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkTableSource.java
index 19df8fe24..ef0d04a25 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkTableSource.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/FlinkTableSource.java
@@ -17,6 +17,25 @@
package org.apache.fluss.flink.source;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.flink.FlinkConnectorOptions;
+import org.apache.fluss.flink.source.deserializer.RowDataDeserializationSchema;
+import org.apache.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
+import org.apache.fluss.flink.source.lookup.FlinkAsyncLookupFunction;
+import org.apache.fluss.flink.source.lookup.FlinkLookupFunction;
+import org.apache.fluss.flink.source.lookup.LookupNormalizer;
+import org.apache.fluss.flink.utils.FlinkConnectorOptionsUtils;
+import org.apache.fluss.flink.utils.FlinkConversions;
+import org.apache.fluss.flink.utils.PushdownUtils;
+import org.apache.fluss.flink.utils.PushdownUtils.FieldEqual;
+import org.apache.fluss.lake.source.LakeSource;
+import org.apache.fluss.lake.source.LakeSplit;
+import org.apache.fluss.metadata.MergeEngineType;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.predicate.Predicate;
+import org.apache.fluss.predicate.PredicateBuilder;
+import org.apache.fluss.types.RowType;
+
import org.apache.flink.annotation.VisibleForTesting;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.api.connector.source.Source;
@@ -49,24 +68,6 @@ import org.apache.flink.table.functions.FunctionDefinition;
import org.apache.flink.table.functions.LookupFunction;
import org.apache.flink.table.types.DataType;
import org.apache.flink.table.types.logical.LogicalType;
-import org.apache.fluss.config.Configuration;
-import org.apache.fluss.flink.FlinkConnectorOptions;
-import org.apache.fluss.flink.source.deserializer.RowDataDeserializationSchema;
-import org.apache.fluss.flink.source.enumerator.initializer.OffsetsInitializer;
-import org.apache.fluss.flink.source.lookup.FlinkAsyncLookupFunction;
-import org.apache.fluss.flink.source.lookup.FlinkLookupFunction;
-import org.apache.fluss.flink.source.lookup.LookupNormalizer;
-import org.apache.fluss.flink.utils.FlinkConnectorOptionsUtils;
-import org.apache.fluss.flink.utils.FlinkConversions;
-import org.apache.fluss.flink.utils.PushdownUtils;
-import org.apache.fluss.flink.utils.PushdownUtils.FieldEqual;
-import org.apache.fluss.lake.source.LakeSource;
-import org.apache.fluss.lake.source.LakeSplit;
-import org.apache.fluss.metadata.MergeEngineType;
-import org.apache.fluss.metadata.TablePath;
-import org.apache.fluss.predicate.Predicate;
-import org.apache.fluss.predicate.PredicateBuilder;
-import org.apache.fluss.types.RowType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/deserializer/JsonStringDeserializationSchema.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/deserializer/JsonStringDeserializationSchema.java
index e06c144a0..c426501c2 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/deserializer/JsonStringDeserializationSchema.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/deserializer/JsonStringDeserializationSchema.java
@@ -17,8 +17,6 @@
package org.apache.fluss.flink.source.deserializer;
-import org.apache.flink.api.common.typeinfo.TypeInformation;
-import org.apache.flink.api.common.typeinfo.Types;
import org.apache.fluss.annotation.PublicEvolving;
import org.apache.fluss.flink.utils.FlussRowToJsonConverters;
import org.apache.fluss.flink.utils.TimestampFormat;
@@ -29,6 +27,9 @@ import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.node.Obje
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.apache.fluss.types.RowType;
+import org.apache.flink.api.common.typeinfo.TypeInformation;
+import org.apache.flink.api.common.typeinfo.Types;
+
import java.util.LinkedHashMap;
import java.util.Map;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/emitter/FlinkRecordEmitter.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/emitter/FlinkRecordEmitter.java
index 5ef300f7c..82a3ed87e 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/emitter/FlinkRecordEmitter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/emitter/FlinkRecordEmitter.java
@@ -17,8 +17,6 @@
package org.apache.fluss.flink.source.emitter;
-import org.apache.flink.api.connector.source.SourceOutput;
-import org.apache.flink.connector.base.source.reader.RecordEmitter;
import org.apache.fluss.client.table.scanner.ScanRecord;
import org.apache.fluss.flink.lake.LakeRecordRecordEmitter;
import org.apache.fluss.flink.source.deserializer.FlussDeserializationSchema;
@@ -26,6 +24,9 @@ import org.apache.fluss.flink.source.reader.FlinkSourceReader;
import org.apache.fluss.flink.source.reader.RecordAndPos;
import org.apache.fluss.flink.source.split.HybridSnapshotLogSplitState;
import org.apache.fluss.flink.source.split.SourceSplitState;
+
+import org.apache.flink.api.connector.source.SourceOutput;
+import org.apache.flink.connector.base.source.reader.RecordEmitter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/enumerator/FlinkSourceEnumerator.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/enumerator/FlinkSourceEnumerator.java
index 155220b7d..e63d286d0 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/enumerator/FlinkSourceEnumerator.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/enumerator/FlinkSourceEnumerator.java
@@ -17,12 +17,6 @@
package org.apache.fluss.flink.source.enumerator;
-import org.apache.flink.annotation.VisibleForTesting;
-import org.apache.flink.api.connector.source.SourceEvent;
-import org.apache.flink.api.connector.source.SplitEnumerator;
-import org.apache.flink.api.connector.source.SplitEnumeratorContext;
-import org.apache.flink.api.connector.source.SplitsAssignment;
-import org.apache.flink.util.FlinkRuntimeException;
import org.apache.fluss.client.Connection;
import org.apache.fluss.client.ConnectionFactory;
import org.apache.fluss.client.admin.Admin;
@@ -50,6 +44,13 @@ import org.apache.fluss.metadata.TableInfo;
import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.types.DataField;
import org.apache.fluss.utils.ExceptionUtils;
+
+import org.apache.flink.annotation.VisibleForTesting;
+import org.apache.flink.api.connector.source.SourceEvent;
+import org.apache.flink.api.connector.source.SplitEnumerator;
+import org.apache.flink.api.connector.source.SplitEnumeratorContext;
+import org.apache.flink.api.connector.source.SplitsAssignment;
+import org.apache.flink.util.FlinkRuntimeException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceReader.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceReader.java
index 161d30cee..6364532bb 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceReader.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceReader.java
@@ -17,10 +17,6 @@
package org.apache.fluss.flink.source.reader;
-import org.apache.flink.api.connector.source.SourceEvent;
-import org.apache.flink.api.connector.source.SourceReaderContext;
-import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
-import org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.flink.adapter.SingleThreadMultiplexSourceReaderBaseAdapter;
import org.apache.fluss.flink.lake.LakeSplitStateInitializer;
@@ -39,6 +35,11 @@ import org.apache.fluss.metadata.TableBucket;
import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.types.RowType;
+import org.apache.flink.api.connector.source.SourceEvent;
+import org.apache.flink.api.connector.source.SourceReaderContext;
+import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
+import org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue;
+
import javax.annotation.Nullable;
import java.util.Map;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceSplitReader.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceSplitReader.java
index 208afc2e6..b809feca5 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceSplitReader.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/FlinkSourceSplitReader.java
@@ -17,12 +17,6 @@
package org.apache.fluss.flink.source.reader;
-import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
-import org.apache.flink.connector.base.source.reader.splitreader.SplitReader;
-import org.apache.flink.connector.base.source.reader.splitreader.SplitsAddition;
-import org.apache.flink.connector.base.source.reader.splitreader.SplitsChange;
-import org.apache.flink.table.api.ValidationException;
-import org.apache.flink.util.FlinkRuntimeException;
import org.apache.fluss.client.Connection;
import org.apache.fluss.client.ConnectionFactory;
import org.apache.fluss.client.table.Table;
@@ -46,6 +40,13 @@ import org.apache.fluss.metadata.TablePath;
import org.apache.fluss.types.RowType;
import org.apache.fluss.utils.CloseableIterator;
import org.apache.fluss.utils.ExceptionUtils;
+
+import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
+import org.apache.flink.connector.base.source.reader.splitreader.SplitReader;
+import org.apache.flink.connector.base.source.reader.splitreader.SplitsAddition;
+import org.apache.flink.connector.base.source.reader.splitreader.SplitsChange;
+import org.apache.flink.table.api.ValidationException;
+import org.apache.flink.util.FlinkRuntimeException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/fetcher/FlinkSourceFetcherManager.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/fetcher/FlinkSourceFetcherManager.java
index a9a360b1d..9b1c9ff0f 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/fetcher/FlinkSourceFetcherManager.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/reader/fetcher/FlinkSourceFetcherManager.java
@@ -17,6 +17,12 @@
package org.apache.fluss.flink.source.reader.fetcher;
+import org.apache.fluss.flink.adapter.SingleThreadFetcherManagerAdapter;
+import org.apache.fluss.flink.source.reader.FlinkSourceSplitReader;
+import org.apache.fluss.flink.source.reader.RecordAndPos;
+import org.apache.fluss.flink.source.split.SourceSplitBase;
+import org.apache.fluss.metadata.TableBucket;
+
import org.apache.flink.annotation.Internal;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.connector.base.source.reader.RecordsWithSplitIds;
@@ -25,11 +31,6 @@ import org.apache.flink.connector.base.source.reader.fetcher.SplitFetcher;
import org.apache.flink.connector.base.source.reader.fetcher.SplitFetcherTask;
import org.apache.flink.connector.base.source.reader.splitreader.SplitReader;
import org.apache.flink.connector.base.source.reader.synchronization.FutureCompletingBlockingQueue;
-import org.apache.fluss.flink.adapter.SingleThreadFetcherManagerAdapter;
-import org.apache.fluss.flink.source.reader.FlinkSourceSplitReader;
-import org.apache.fluss.flink.source.reader.RecordAndPos;
-import org.apache.fluss.flink.source.split.SourceSplitBase;
-import org.apache.fluss.metadata.TableBucket;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/split/SourceSplitSerializer.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/split/SourceSplitSerializer.java
index b31ef23c1..7ee92cef9 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/split/SourceSplitSerializer.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/source/split/SourceSplitSerializer.java
@@ -17,14 +17,15 @@
package org.apache.fluss.flink.source.split;
-import org.apache.flink.core.io.SimpleVersionedSerializer;
-import org.apache.flink.core.memory.DataInputDeserializer;
-import org.apache.flink.core.memory.DataOutputSerializer;
import org.apache.fluss.flink.lake.LakeSplitSerializer;
import org.apache.fluss.lake.source.LakeSource;
import org.apache.fluss.lake.source.LakeSplit;
import org.apache.fluss.metadata.TableBucket;
+import org.apache.flink.core.io.SimpleVersionedSerializer;
+import org.apache.flink.core.memory.DataInputDeserializer;
+import org.apache.flink.core.memory.DataOutputSerializer;
+
import javax.annotation.Nullable;
import java.io.IOException;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperator.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperator.java
index 5e7e5d5f9..fa52a86cd 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperator.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperator.java
@@ -17,12 +17,6 @@
package org.apache.fluss.flink.tiering.committer;
-import org.apache.flink.runtime.operators.coordination.OperatorEventGateway;
-import org.apache.flink.runtime.source.event.SourceEventWrapper;
-import org.apache.flink.streaming.api.operators.AbstractStreamOperator;
-import org.apache.flink.streaming.api.operators.OneInputStreamOperator;
-import org.apache.flink.streaming.api.operators.StreamOperatorParameters;
-import org.apache.flink.streaming.runtime.streamrecord.StreamRecord;
import org.apache.fluss.client.Connection;
import org.apache.fluss.client.ConnectionFactory;
import org.apache.fluss.client.admin.Admin;
@@ -47,6 +41,13 @@ import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.core.JsonGenerator
import org.apache.fluss.utils.ExceptionUtils;
import org.apache.fluss.utils.json.BucketOffsetJsonSerde;
+import org.apache.flink.runtime.operators.coordination.OperatorEventGateway;
+import org.apache.flink.runtime.source.event.SourceEventWrapper;
+import org.apache.flink.streaming.api.operators.AbstractStreamOperator;
+import org.apache.flink.streaming.api.operators.OneInputStreamOperator;
+import org.apache.flink.streaming.api.operators.StreamOperatorParameters;
+import org.apache.flink.streaming.runtime.streamrecord.StreamRecord;
+
import javax.annotation.Nullable;
import java.io.IOException;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/TieringSource.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/TieringSource.java
index 341304894..1c1917987 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/TieringSource.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/tiering/source/TieringSource.java
@@ -17,15 +17,6 @@
package org.apache.fluss.flink.tiering.source;
-import org.apache.flink.api.connector.source.Boundedness;
-import org.apache.flink.api.connector.source.Source;
-import org.apache.flink.api.connector.source.SourceReader;
-import org.apache.flink.api.connector.source.SourceReaderContext;
-import org.apache.flink.api.connector.source.SplitEnumerator;
-import org.apache.flink.api.connector.source.SplitEnumeratorContext;
-import org.apache.flink.core.io.SimpleVersionedSerializer;
-import org.apache.flink.runtime.jobgraph.OperatorID;
-import org.apache.flink.streaming.api.graph.StreamGraphHasherV2;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.flink.tiering.source.enumerator.TieringSourceEnumerator;
import org.apache.fluss.flink.tiering.source.split.TieringSplit;
@@ -37,6 +28,16 @@ import org.apache.fluss.shaded.guava32.com.google.common.hash.HashFunction;
import org.apache.fluss.shaded.guava32.com.google.common.hash.Hasher;
import org.apache.fluss.shaded.guava32.com.google.common.hash.Hashing;
+import org.apache.flink.api.connector.source.Boundedness;
+import org.apache.flink.api.connector.source.Source;
+import org.apache.flink.api.connector.source.SourceReader;
+import org.apache.flink.api.connector.source.SourceReaderContext;
+import org.apache.flink.api.connector.source.SplitEnumerator;
+import org.apache.flink.api.connector.source.SplitEnumeratorContext;
+import org.apache.flink.core.io.SimpleVersionedSerializer;
+import org.apache.flink.runtime.jobgraph.OperatorID;
+import org.apache.flink.streaming.api.graph.StreamGraphHasherV2;
+
import java.nio.charset.StandardCharsets;
import static org.apache.fluss.flink.tiering.source.TieringSourceOptions.POLL_TIERING_TABLE_INTERVAL;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlinkConversions.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlinkConversions.java
index dd6045eed..200f2075a 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlinkConversions.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/FlinkConversions.java
@@ -17,14 +17,6 @@
package org.apache.fluss.flink.utils;
-import org.apache.flink.configuration.Configuration;
-import org.apache.flink.table.catalog.CatalogDatabase;
-import org.apache.flink.table.catalog.CatalogTable;
-import org.apache.flink.table.catalog.Column;
-import org.apache.flink.table.catalog.ResolvedCatalogTable;
-import org.apache.flink.table.catalog.ResolvedSchema;
-import org.apache.flink.table.catalog.exceptions.CatalogException;
-import org.apache.flink.types.RowKind;
import org.apache.fluss.annotation.VisibleForTesting;
import org.apache.fluss.config.ConfigOption;
import org.apache.fluss.config.FlussConfigUtils;
@@ -43,6 +35,15 @@ import org.apache.fluss.types.RowType;
import org.apache.fluss.utils.StringUtils;
import org.apache.fluss.utils.TimeUtils;
+import org.apache.flink.configuration.Configuration;
+import org.apache.flink.table.catalog.CatalogDatabase;
+import org.apache.flink.table.catalog.CatalogTable;
+import org.apache.flink.table.catalog.Column;
+import org.apache.flink.table.catalog.ResolvedCatalogTable;
+import org.apache.flink.table.catalog.ResolvedSchema;
+import org.apache.flink.table.catalog.exceptions.CatalogException;
+import org.apache.flink.types.RowKind;
+
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/LakeSplitSerializerTest.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/LakeSplitSerializerTest.java
index d369e9f26..ff69bce92 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/LakeSplitSerializerTest.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/LakeSplitSerializerTest.java
@@ -18,14 +18,15 @@
package org.apache.fluss.flink.lake;
-import org.apache.flink.core.memory.DataInputDeserializer;
-import org.apache.flink.core.memory.DataOutputSerializer;
import org.apache.fluss.flink.lake.split.LakeSnapshotAndFlussLogSplit;
import org.apache.fluss.flink.lake.split.LakeSnapshotSplit;
import org.apache.fluss.flink.source.split.SourceSplitBase;
import org.apache.fluss.lake.serializer.SimpleVersionedSerializer;
import org.apache.fluss.lake.source.LakeSplit;
import org.apache.fluss.metadata.TableBucket;
+
+import org.apache.flink.core.memory.DataInputDeserializer;
+import org.apache.flink.core.memory.DataOutputSerializer;
import org.junit.jupiter.api.Test;
import java.io.IOException;
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java
index 5e476b0e3..2bd02cd05 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java
@@ -1,19 +1,17 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
package org.apache.fluss.flink.lake.reader;
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/security/acl/FlinkAuthorizationITCase.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/security/acl/FlinkAuthorizationITCase.java
index 595ac4ba6..05cbd7802 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/security/acl/FlinkAuthorizationITCase.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/security/acl/FlinkAuthorizationITCase.java
@@ -17,12 +17,6 @@
package org.apache.fluss.flink.security.acl;
-import org.apache.commons.lang3.RandomUtils;
-import org.apache.flink.table.api.EnvironmentSettings;
-import org.apache.flink.table.api.TableEnvironment;
-import org.apache.flink.test.util.AbstractTestBase;
-import org.apache.flink.types.Row;
-import org.apache.flink.util.CollectionUtil;
import org.apache.fluss.config.ConfigOptions;
import org.apache.fluss.config.Configuration;
import org.apache.fluss.config.MemorySize;
@@ -40,6 +34,13 @@ import org.apache.fluss.security.auth.sasl.jaas.LoginManager;
import org.apache.fluss.server.testutils.FlussClusterExtension;
import org.apache.fluss.utils.ParentResourceBlockingClassLoader;
import org.apache.fluss.utils.TemporaryClassLoaderContext;
+
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.flink.table.api.EnvironmentSettings;
+import org.apache.flink.table.api.TableEnvironment;
+import org.apache.flink.test.util.AbstractTestBase;
+import org.apache.flink.types.Row;
+import org.apache.flink.util.CollectionUtil;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/source/FlinkTableSourceITCase.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/source/FlinkTableSourceITCase.java
index cc41e04ac..24757cb05 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/source/FlinkTableSourceITCase.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/source/FlinkTableSourceITCase.java
@@ -17,6 +17,20 @@
package org.apache.fluss.flink.source;
+import org.apache.fluss.client.Connection;
+import org.apache.fluss.client.ConnectionFactory;
+import org.apache.fluss.client.admin.Admin;
+import org.apache.fluss.client.metadata.KvSnapshots;
+import org.apache.fluss.client.table.Table;
+import org.apache.fluss.client.table.writer.UpsertWriter;
+import org.apache.fluss.config.ConfigOptions;
+import org.apache.fluss.config.Configuration;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.row.GenericRow;
+import org.apache.fluss.row.InternalRow;
+import org.apache.fluss.server.testutils.FlussClusterExtension;
+import org.apache.fluss.utils.clock.ManualClock;
+
import org.apache.commons.lang3.RandomUtils;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.api.common.typeinfo.Types;
@@ -31,19 +45,6 @@ import org.apache.flink.table.api.config.ExecutionConfigOptions;
import org.apache.flink.test.util.AbstractTestBase;
import org.apache.flink.types.Row;
import org.apache.flink.util.CloseableIterator;
-import org.apache.fluss.client.Connection;
-import org.apache.fluss.client.ConnectionFactory;
-import org.apache.fluss.client.admin.Admin;
-import org.apache.fluss.client.metadata.KvSnapshots;
-import org.apache.fluss.client.table.Table;
-import org.apache.fluss.client.table.writer.UpsertWriter;
-import org.apache.fluss.config.ConfigOptions;
-import org.apache.fluss.config.Configuration;
-import org.apache.fluss.metadata.TablePath;
-import org.apache.fluss.row.GenericRow;
-import org.apache.fluss.row.InternalRow;
-import org.apache.fluss.server.testutils.FlussClusterExtension;
-import org.apache.fluss.utils.clock.ManualClock;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitterTest.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitterTest.java
index 4fb261964..d1b3ddc6d 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitterTest.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/FlussTableLakeSnapshotCommitterTest.java
@@ -23,6 +23,7 @@ import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
import org.apache.fluss.metadata.ResolvedPartitionSpec;
import org.apache.fluss.metadata.TableBucket;
import org.apache.fluss.metadata.TablePath;
+
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperatorTest.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperatorTest.java
index 1889ed0fd..e6c412cad 100644
--- a/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperatorTest.java
+++ b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/tiering/committer/TieringCommitOperatorTest.java
@@ -17,6 +17,20 @@
package org.apache.fluss.flink.tiering.committer;
+import org.apache.fluss.client.metadata.LakeSnapshot;
+import org.apache.fluss.exception.LakeTableSnapshotNotExistException;
+import org.apache.fluss.flink.tiering.TestingLakeTieringFactory;
+import org.apache.fluss.flink.tiering.TestingWriteResult;
+import org.apache.fluss.flink.tiering.event.FailedTieringEvent;
+import org.apache.fluss.flink.tiering.event.FinishedTieringEvent;
+import org.apache.fluss.flink.tiering.source.TableBucketWriteResult;
+import org.apache.fluss.flink.utils.FlinkTestBase;
+import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
+import org.apache.fluss.metadata.ResolvedPartitionSpec;
+import org.apache.fluss.metadata.TableBucket;
+import org.apache.fluss.metadata.TablePath;
+import org.apache.fluss.utils.types.Tuple2;
+
import org.apache.flink.configuration.Configuration;
import org.apache.flink.runtime.jobgraph.OperatorID;
import org.apache.flink.runtime.operators.coordination.MockOperatorEventGateway;
@@ -31,19 +45,6 @@ import org.apache.flink.streaming.runtime.streamrecord.StreamRecord;
import org.apache.flink.streaming.runtime.tasks.SourceOperatorStreamTask;
import org.apache.flink.streaming.util.MockOutput;
import org.apache.flink.streaming.util.MockStreamConfig;
-import org.apache.fluss.client.metadata.LakeSnapshot;
-import org.apache.fluss.exception.LakeTableSnapshotNotExistException;
-import org.apache.fluss.flink.tiering.TestingLakeTieringFactory;
-import org.apache.fluss.flink.tiering.TestingWriteResult;
-import org.apache.fluss.flink.tiering.event.FailedTieringEvent;
-import org.apache.fluss.flink.tiering.event.FinishedTieringEvent;
-import org.apache.fluss.flink.tiering.source.TableBucketWriteResult;
-import org.apache.fluss.flink.utils.FlinkTestBase;
-import org.apache.fluss.lake.committer.CommittedLakeSnapshot;
-import org.apache.fluss.metadata.ResolvedPartitionSpec;
-import org.apache.fluss.metadata.TableBucket;
-import org.apache.fluss.metadata.TablePath;
-import org.apache.fluss.utils.types.Tuple2;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-metrics/fluss-metrics-prometheus/src/test/java/org/apache/fluss/metrics/prometheus/PrometheusReporterTest.java b/fluss-metrics/fluss-metrics-prometheus/src/test/java/org/apache/fluss/metrics/prometheus/PrometheusReporterTest.java
index 17341bec2..be67ff741 100644
--- a/fluss-metrics/fluss-metrics-prometheus/src/test/java/org/apache/fluss/metrics/prometheus/PrometheusReporterTest.java
+++ b/fluss-metrics/fluss-metrics-prometheus/src/test/java/org/apache/fluss/metrics/prometheus/PrometheusReporterTest.java
@@ -17,9 +17,6 @@
package org.apache.fluss.metrics.prometheus;
-import com.mashape.unirest.http.HttpResponse;
-import com.mashape.unirest.http.Unirest;
-import com.mashape.unirest.http.exceptions.UnirestException;
import org.apache.fluss.metrics.Counter;
import org.apache.fluss.metrics.Gauge;
import org.apache.fluss.metrics.Histogram;
@@ -31,6 +28,10 @@ import org.apache.fluss.metrics.util.TestHistogram;
import org.apache.fluss.metrics.util.TestMeter;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterators;
import org.apache.fluss.utils.NetUtils;
+
+import com.mashape.unirest.http.HttpResponse;
+import com.mashape.unirest.http.Unirest;
+import com.mashape.unirest.http.exceptions.UnirestException;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoCodeGenerator.java b/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoCodeGenerator.java
index 6cd420e69..6ab4d3a2a 100644
--- a/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoCodeGenerator.java
+++ b/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoCodeGenerator.java
@@ -17,11 +17,12 @@
package org.apache.fluss.protogen.generator.generator;
-import io.protostuff.parser.Proto;
-import io.protostuff.parser.ProtoUtil;
import org.apache.fluss.shaded.guava32.com.google.common.base.Joiner;
import org.apache.fluss.shaded.guava32.com.google.common.base.Splitter;
+import io.protostuff.parser.Proto;
+import io.protostuff.parser.ProtoUtil;
+
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
diff --git a/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtobufNumberField.java b/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtobufNumberField.java
index 09cc33257..f064dd173 100644
--- a/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtobufNumberField.java
+++ b/fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtobufNumberField.java
@@ -17,9 +17,10 @@
package org.apache.fluss.protogen.generator.generator;
-import io.protostuff.parser.Field;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Maps;
+import io.protostuff.parser.Field;
+
import java.io.PrintWriter;
import java.util.Map;
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyLogger.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyLogger.java
index f70531fd8..555177d0c 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyLogger.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyLogger.java
@@ -22,6 +22,7 @@ import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBufHolder;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
import org.apache.fluss.shaded.netty4.io.netty.handler.logging.LogLevel;
import org.apache.fluss.shaded.netty4.io.netty.handler.logging.LoggingHandler;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClient.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClient.java
index 70c83538f..3334e392a 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClient.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClient.java
@@ -35,6 +35,7 @@ import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelOption;
import org.apache.fluss.shaded.netty4.io.netty.channel.EventLoopGroup;
import org.apache.fluss.utils.MapUtils;
import org.apache.fluss.utils.concurrent.FutureUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClientHandler.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClientHandler.java
index 83dccae27..a2c03028d 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClientHandler.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/NettyClientHandler.java
@@ -30,6 +30,7 @@ import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelInboundHandlerAdapter;
import org.apache.fluss.shaded.netty4.io.netty.handler.timeout.IdleState;
import org.apache.fluss.shaded.netty4.io.netty.handler.timeout.IdleStateEvent;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/ServerConnection.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/ServerConnection.java
index cce8d9447..f07afdf9e 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/ServerConnection.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/client/ServerConnection.java
@@ -42,6 +42,7 @@ import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelFuture;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelFutureListener;
import org.apache.fluss.utils.ExponentialBackoff;
import org.apache.fluss.utils.MapUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/FlussRequest.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/FlussRequest.java
index f34210b6d..adc67298e 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/FlussRequest.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/FlussRequest.java
@@ -23,6 +23,7 @@ import org.apache.fluss.rpc.protocol.RequestType;
import org.apache.fluss.security.acl.FlussPrincipal;
import org.apache.fluss.shaded.netty4.io.netty.buffer.ByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.util.ReferenceCountUtil;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServer.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServer.java
index c1b034fd1..7f2198566 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServer.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServer.java
@@ -36,6 +36,7 @@ import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandler;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelOption;
import org.apache.fluss.shaded.netty4.io.netty.channel.EventLoopGroup;
import org.apache.fluss.utils.concurrent.FutureUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServerHandler.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServerHandler.java
index 2da1b46af..3080c87e0 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServerHandler.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/NettyServerHandler.java
@@ -41,6 +41,7 @@ import org.apache.fluss.shaded.netty4.io.netty.handler.timeout.IdleState;
import org.apache.fluss.shaded.netty4.io.netty.handler.timeout.IdleStateEvent;
import org.apache.fluss.utils.ExceptionUtils;
import org.apache.fluss.utils.IOUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/ServerChannelInitializer.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/ServerChannelInitializer.java
index 4d412462b..83813be37 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/ServerChannelInitializer.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/server/ServerChannelInitializer.java
@@ -24,6 +24,7 @@ import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelInitializer;
import org.apache.fluss.shaded.netty4.io.netty.channel.socket.SocketChannel;
import org.apache.fluss.utils.MathUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-rpc/src/main/java/org/apache/fluss/rpc/protocol/ApiManager.java b/fluss-rpc/src/main/java/org/apache/fluss/rpc/protocol/ApiManager.java
index 2975fa490..d8602eaf1 100644
--- a/fluss-rpc/src/main/java/org/apache/fluss/rpc/protocol/ApiManager.java
+++ b/fluss-rpc/src/main/java/org/apache/fluss/rpc/protocol/ApiManager.java
@@ -24,6 +24,7 @@ import org.apache.fluss.rpc.gateway.CoordinatorGateway;
import org.apache.fluss.rpc.gateway.TabletServerGateway;
import org.apache.fluss.rpc.messages.ApiMessage;
import org.apache.fluss.shaded.guava32.com.google.common.collect.ImmutableList;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-rpc/src/test/java/org/apache/fluss/rpc/netty/server/NettyServerHandlerTest.java b/fluss-rpc/src/test/java/org/apache/fluss/rpc/netty/server/NettyServerHandlerTest.java
index c52a5119f..113bf3f7a 100644
--- a/fluss-rpc/src/test/java/org/apache/fluss/rpc/netty/server/NettyServerHandlerTest.java
+++ b/fluss-rpc/src/test/java/org/apache/fluss/rpc/netty/server/NettyServerHandlerTest.java
@@ -38,6 +38,7 @@ import org.apache.fluss.shaded.netty4.io.netty.channel.Channel;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelId;
import org.apache.fluss.shaded.netty4.io.netty.util.concurrent.DefaultEventExecutor;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
diff --git a/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/MessageCodecTest.java b/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/MessageCodecTest.java
index 6bf4dc556..29c9f1489 100644
--- a/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/MessageCodecTest.java
+++ b/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/MessageCodecTest.java
@@ -38,6 +38,7 @@ import org.apache.fluss.shaded.netty4.io.netty.channel.Channel;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelHandlerContext;
import org.apache.fluss.shaded.netty4.io.netty.channel.ChannelId;
import org.apache.fluss.shaded.netty4.io.netty.util.concurrent.EventExecutor;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java b/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java
index f70d3049a..a76df2d2a 100644
--- a/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java
+++ b/fluss-rpc/src/test/java/org/apache/fluss/rpc/protocol/RequestChannelTest.java
@@ -24,6 +24,7 @@ import org.apache.fluss.rpc.netty.server.RequestChannel;
import org.apache.fluss.rpc.netty.server.RpcRequest;
import org.apache.fluss.shaded.netty4.io.netty.buffer.EmptyByteBuf;
import org.apache.fluss.shaded.netty4.io.netty.buffer.UnpooledByteBufAllocator;
+
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/ServerBase.java b/fluss-server/src/main/java/org/apache/fluss/server/ServerBase.java
index 04676ef16..99c1e105f 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/ServerBase.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/ServerBase.java
@@ -35,6 +35,7 @@ import org.apache.fluss.server.utils.ShutdownHookUtil;
import org.apache.fluss.utils.AutoCloseableAsync;
import org.apache.fluss.utils.ExceptionUtils;
import org.apache.fluss.utils.concurrent.FutureUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/authorizer/DefaultAuthorizer.java b/fluss-server/src/main/java/org/apache/fluss/server/authorizer/DefaultAuthorizer.java
index fa1f842c8..c7528edc5 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/authorizer/DefaultAuthorizer.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/authorizer/DefaultAuthorizer.java
@@ -40,6 +40,7 @@ import org.apache.fluss.shaded.guava32.com.google.common.collect.Maps;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Sets;
import org.apache.fluss.utils.clock.SystemClock;
import org.apache.fluss.utils.types.Tuple2;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/authorizer/ZkNodeChangeNotificationWatcher.java b/fluss-server/src/main/java/org/apache/fluss/server/authorizer/ZkNodeChangeNotificationWatcher.java
index 409ebbd6f..497e72756 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/authorizer/ZkNodeChangeNotificationWatcher.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/authorizer/ZkNodeChangeNotificationWatcher.java
@@ -25,6 +25,7 @@ import org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cac
import org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.PathChildrenCacheListener;
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.data.Stat;
import org.apache.fluss.utils.clock.Clock;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessor.java b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessor.java
index 0e53eb54d..d47609c49 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessor.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessor.java
@@ -82,6 +82,7 @@ import org.apache.fluss.server.zk.data.TabletServerRegistration;
import org.apache.fluss.server.zk.data.ZkData.PartitionIdsZNode;
import org.apache.fluss.server.zk.data.ZkData.TableIdsZNode;
import org.apache.fluss.utils.types.Tuple2;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorServer.java b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorServer.java
index 5e4601569..ef393aeb5 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorServer.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/CoordinatorServer.java
@@ -49,6 +49,7 @@ import org.apache.fluss.utils.ExceptionUtils;
import org.apache.fluss.utils.ExecutorUtils;
import org.apache.fluss.utils.concurrent.ExecutorThreadFactory;
import org.apache.fluss.utils.concurrent.FutureUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/MetadataManager.java b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/MetadataManager.java
index 1b739bad9..6017fe3de 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/MetadataManager.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/MetadataManager.java
@@ -49,6 +49,7 @@ import org.apache.fluss.server.zk.data.TableRegistration;
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.KeeperException;
import org.apache.fluss.utils.function.RunnableWithException;
import org.apache.fluss.utils.function.ThrowingRunnable;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/CoordinatorEventManager.java b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/CoordinatorEventManager.java
index 04657584c..06a92dabb 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/CoordinatorEventManager.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/CoordinatorEventManager.java
@@ -27,6 +27,7 @@ import org.apache.fluss.server.coordinator.CoordinatorContext;
import org.apache.fluss.server.coordinator.statemachine.ReplicaState;
import org.apache.fluss.server.metrics.group.CoordinatorMetricGroup;
import org.apache.fluss.utils.concurrent.ShutdownableThread;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TableChangeWatcher.java b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TableChangeWatcher.java
index 9d308032d..c8ee481f6 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TableChangeWatcher.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TableChangeWatcher.java
@@ -39,6 +39,7 @@ import org.apache.fluss.server.zk.data.ZkData.TableZNode;
import org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.CuratorCache;
import org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.CuratorCacheListener;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TabletServerChangeWatcher.java b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TabletServerChangeWatcher.java
index 393fd8cbb..a8f4dcb15 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TabletServerChangeWatcher.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/event/watcher/TabletServerChangeWatcher.java
@@ -31,6 +31,7 @@ import org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cac
import org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.CuratorCache;
import org.apache.fluss.shaded.curator5.org.apache.curator.framework.recipes.cache.CuratorCacheListener;
import org.apache.fluss.shaded.curator5.org.apache.curator.utils.ZKPaths;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachine.java b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachine.java
index 89ff4eca7..d1b9958cb 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachine.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachine.java
@@ -26,6 +26,7 @@ import org.apache.fluss.server.entity.RegisterTableBucketLeadAndIsrInfo;
import org.apache.fluss.server.zk.ZooKeeperClient;
import org.apache.fluss.server.zk.data.LeaderAndIsr;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Sets;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/kv/KvManager.java b/fluss-server/src/main/java/org/apache/fluss/server/kv/KvManager.java
index 6d3fe0d46..22290e983 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/kv/KvManager.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/kv/KvManager.java
@@ -43,6 +43,7 @@ import org.apache.fluss.utils.FileUtils;
import org.apache.fluss.utils.FlussPaths;
import org.apache.fluss.utils.MapUtils;
import org.apache.fluss.utils.types.Tuple2;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/kv/KvTablet.java b/fluss-server/src/main/java/org/apache/fluss/server/kv/KvTablet.java
index 22bea611e..4c3fde697 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/kv/KvTablet.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/kv/KvTablet.java
@@ -64,6 +64,7 @@ import org.apache.fluss.utils.BytesUtils;
import org.apache.fluss.utils.FileUtils;
import org.apache.fluss.utils.FlussPaths;
import org.apache.fluss.utils.types.Tuple2;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/log/AbstractIndex.java b/fluss-server/src/main/java/org/apache/fluss/server/log/AbstractIndex.java
index 249ff9fde..dbf0e21c2 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/log/AbstractIndex.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/log/AbstractIndex.java
@@ -22,6 +22,7 @@ import org.apache.fluss.server.exception.CorruptIndexException;
import org.apache.fluss.utils.FileUtils;
import org.apache.fluss.utils.IOUtils;
import org.apache.fluss.utils.log.ByteBufferUnmapper;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/log/LogSegment.java b/fluss-server/src/main/java/org/apache/fluss/server/log/LogSegment.java
index 2b9f0cf4f..105fc47e7 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/log/LogSegment.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/log/LogSegment.java
@@ -35,6 +35,7 @@ import org.apache.fluss.record.TimestampAndOffset;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Iterables;
import org.apache.fluss.utils.FileUtils;
import org.apache.fluss.utils.FlussPaths;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/log/OffsetIndex.java b/fluss-server/src/main/java/org/apache/fluss/server/log/OffsetIndex.java
index 3e21e8ad7..3b470724e 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/log/OffsetIndex.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/log/OffsetIndex.java
@@ -20,6 +20,7 @@ package org.apache.fluss.server.log;
import org.apache.fluss.exception.IndexOffsetOverflowException;
import org.apache.fluss.exception.InvalidOffsetException;
import org.apache.fluss.server.exception.CorruptIndexException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/log/TimeIndex.java b/fluss-server/src/main/java/org/apache/fluss/server/log/TimeIndex.java
index 277f307e7..3b5952d2e 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/log/TimeIndex.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/log/TimeIndex.java
@@ -19,6 +19,7 @@ package org.apache.fluss.server.log;
import org.apache.fluss.exception.InvalidOffsetException;
import org.apache.fluss.server.exception.CorruptIndexException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/log/WriterStateManager.java b/fluss-server/src/main/java/org/apache/fluss/server/log/WriterStateManager.java
index 661126f22..e8712964c 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/log/WriterStateManager.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/log/WriterStateManager.java
@@ -27,6 +27,7 @@ import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.apache.fluss.utils.json.JsonDeserializer;
import org.apache.fluss.utils.json.JsonSerdeUtils;
import org.apache.fluss.utils.json.JsonSerializer;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java b/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
index 5127639cd..398bfb6ff 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
@@ -44,6 +44,7 @@ import org.apache.fluss.utils.FileUtils;
import org.apache.fluss.utils.FlussPaths;
import org.apache.fluss.utils.concurrent.ShutdownableThread;
import org.apache.fluss.utils.log.FairBucketStatusMap;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/tablet/TabletServer.java b/fluss-server/src/main/java/org/apache/fluss/server/tablet/TabletServer.java
index 4967f4542..9f8db8000 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/tablet/TabletServer.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/tablet/TabletServer.java
@@ -53,6 +53,7 @@ import org.apache.fluss.utils.clock.SystemClock;
import org.apache.fluss.utils.concurrent.FlussScheduler;
import org.apache.fluss.utils.concurrent.FutureUtils;
import org.apache.fluss.utils.concurrent.Scheduler;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperClient.java b/fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperClient.java
index 72a118343..abdc5e1fd 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperClient.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperClient.java
@@ -71,6 +71,7 @@ import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.CreateMode;
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.KeeperException;
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.data.Stat;
import org.apache.fluss.utils.types.Tuple2;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperUtils.java b/fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperUtils.java
index 71fdae00e..485b0ea14 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperUtils.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/zk/ZooKeeperUtils.java
@@ -17,7 +17,6 @@
package org.apache.fluss.server.zk;
-import org.apache.commons.lang3.StringUtils;
import org.apache.fluss.annotation.VisibleForTesting;
import org.apache.fluss.config.ConfigOptions;
import org.apache.fluss.config.Configuration;
@@ -32,6 +31,8 @@ import org.apache.fluss.shaded.curator5.org.apache.curator.retry.ExponentialBack
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.client.ZKClientConfig;
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.server.quorum.QuorumPeerConfig;
import org.apache.fluss.utils.function.ThrowingRunnable;
+
+import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/ServerTestBase.java b/fluss-server/src/test/java/org/apache/fluss/server/ServerTestBase.java
index 5c952f2e2..c97cd4e99 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/ServerTestBase.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/ServerTestBase.java
@@ -29,6 +29,7 @@ import org.apache.fluss.server.zk.data.ZkData.CoordinatorZNode;
import org.apache.fluss.server.zk.data.ZkData.ServerIdZNode;
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.data.Stat;
import org.apache.fluss.testutils.common.AllCallbackWrapper;
+
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessorTest.java b/fluss-server/src/test/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessorTest.java
index 4c1ab75d9..b448c4126 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessorTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/coordinator/CoordinatorEventProcessorTest.java
@@ -68,6 +68,7 @@ import org.apache.fluss.types.DataTypes;
import org.apache.fluss.utils.ExceptionUtils;
import org.apache.fluss.utils.concurrent.ExecutorThreadFactory;
import org.apache.fluss.utils.types.Tuple2;
+
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachineTest.java b/fluss-server/src/test/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachineTest.java
index e04b8b8e5..9009765e4 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachineTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachineTest.java
@@ -43,6 +43,7 @@ import org.apache.fluss.server.zk.data.LeaderAndIsr;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Sets;
import org.apache.fluss.testutils.common.AllCallbackWrapper;
import org.apache.fluss.utils.concurrent.ExecutorThreadFactory;
+
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/kv/KvTabletTest.java b/fluss-server/src/test/java/org/apache/fluss/server/kv/KvTabletTest.java
index b5d6355b6..1f3271562 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/kv/KvTabletTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/kv/KvTabletTest.java
@@ -54,6 +54,7 @@ import org.apache.fluss.types.RowType;
import org.apache.fluss.types.StringType;
import org.apache.fluss.utils.clock.SystemClock;
import org.apache.fluss.utils.concurrent.FlussScheduler;
+
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java b/fluss-server/src/test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java
index fce6bd4b6..72e6441cd 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/kv/wal/ArrowWalBuilderTest.java
@@ -31,6 +31,7 @@ import org.apache.fluss.row.arrow.ArrowWriterProvider;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.BufferAllocator;
import org.apache.fluss.shaded.arrow.org.apache.arrow.memory.RootAllocator;
import org.apache.fluss.utils.types.Tuple2;
+
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/log/WriterStateManagerTest.java b/fluss-server/src/test/java/org/apache/fluss/server/log/WriterStateManagerTest.java
index 6353f7fa4..b0ac3cd2b 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/log/WriterStateManagerTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/log/WriterStateManagerTest.java
@@ -23,6 +23,7 @@ import org.apache.fluss.exception.OutOfOrderSequenceException;
import org.apache.fluss.metadata.TableBucket;
import org.apache.fluss.utils.clock.ManualClock;
import org.apache.fluss.utils.types.Tuple2;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/log/remote/DefaultRemoteLogStorageTest.java b/fluss-server/src/test/java/org/apache/fluss/server/log/remote/DefaultRemoteLogStorageTest.java
index 6270950f4..207bf1654 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/log/remote/DefaultRemoteLogStorageTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/log/remote/DefaultRemoteLogStorageTest.java
@@ -26,6 +26,7 @@ import org.apache.fluss.server.log.LogTablet;
import org.apache.fluss.server.log.remote.RemoteLogStorage.IndexType;
import org.apache.fluss.shaded.guava32.com.google.common.io.Files;
import org.apache.fluss.utils.FlussPaths;
+
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/replica/KvReplicaRestoreITCase.java b/fluss-server/src/test/java/org/apache/fluss/server/replica/KvReplicaRestoreITCase.java
index 9161ffd56..c6adbbbb1 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/replica/KvReplicaRestoreITCase.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/replica/KvReplicaRestoreITCase.java
@@ -33,6 +33,7 @@ import org.apache.fluss.server.testutils.FlussClusterExtension;
import org.apache.fluss.utils.ExceptionUtils;
import org.apache.fluss.utils.FileUtils;
import org.apache.fluss.utils.types.Tuple2;
+
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/testutils/FlussClusterExtension.java b/fluss-server/src/test/java/org/apache/fluss/server/testutils/FlussClusterExtension.java
index 9dd00a3cd..05d85edf5 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/testutils/FlussClusterExtension.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/testutils/FlussClusterExtension.java
@@ -17,7 +17,6 @@
package org.apache.fluss.server.testutils;
-import org.apache.curator.test.TestingServer;
import org.apache.fluss.cluster.Endpoint;
import org.apache.fluss.cluster.ServerNode;
import org.apache.fluss.cluster.ServerType;
@@ -67,6 +66,8 @@ import org.apache.fluss.server.zk.data.TableAssignment;
import org.apache.fluss.utils.FileUtils;
import org.apache.fluss.utils.clock.Clock;
import org.apache.fluss.utils.clock.SystemClock;
+
+import org.apache.curator.test.TestingServer;
import org.junit.jupiter.api.extension.AfterAllCallback;
import org.junit.jupiter.api.extension.AfterEachCallback;
import org.junit.jupiter.api.extension.BeforeAllCallback;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperClientTest.java b/fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperClientTest.java
index 0df4b87cd..89c260180 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperClientTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperClientTest.java
@@ -43,6 +43,7 @@ import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.client.ZKClientCo
import org.apache.fluss.testutils.common.AllCallbackWrapper;
import org.apache.fluss.types.DataTypes;
import org.apache.fluss.utils.types.Tuple2;
+
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperExtension.java b/fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperExtension.java
index 7fb7a4a78..18516960a 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperExtension.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/zk/ZooKeeperExtension.java
@@ -17,10 +17,11 @@
package org.apache.fluss.server.zk;
-import org.apache.curator.test.TestingServer;
import org.apache.fluss.server.utils.FatalErrorHandler;
import org.apache.fluss.shaded.zookeeper3.org.apache.zookeeper.KeeperException;
import org.apache.fluss.testutils.common.CustomExtension;
+
+import org.apache.curator.test.TestingServer;
import org.apache.zookeeper.server.ZooKeeperServer;
import org.junit.jupiter.api.extension.Extension;
import org.junit.jupiter.api.extension.ExtensionContext;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/zk/data/CoordinatorAddressJsonSerdeTest.java b/fluss-server/src/test/java/org/apache/fluss/server/zk/data/CoordinatorAddressJsonSerdeTest.java
index 75a6888fa..d90151d83 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/zk/data/CoordinatorAddressJsonSerdeTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/zk/data/CoordinatorAddressJsonSerdeTest.java
@@ -21,6 +21,7 @@ import org.apache.fluss.cluster.Endpoint;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.fluss.utils.json.JsonSerdeTestBase;
+
import org.junit.jupiter.api.Test;
import java.io.IOException;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/zk/data/TableRegistrationJsonSerdeTest.java b/fluss-server/src/test/java/org/apache/fluss/server/zk/data/TableRegistrationJsonSerdeTest.java
index c3aec9563..348b20cfc 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/zk/data/TableRegistrationJsonSerdeTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/zk/data/TableRegistrationJsonSerdeTest.java
@@ -22,6 +22,7 @@ import org.apache.fluss.metadata.TableDescriptor.TableDistribution;
import org.apache.fluss.record.TestData;
import org.apache.fluss.shaded.guava32.com.google.common.collect.Maps;
import org.apache.fluss.utils.json.JsonSerdeTestBase;
+
import org.junit.jupiter.api.Test;
import java.util.Arrays;
diff --git a/fluss-server/src/test/java/org/apache/fluss/server/zk/data/TabletServerRegistrationJsonSerdeTest.java b/fluss-server/src/test/java/org/apache/fluss/server/zk/data/TabletServerRegistrationJsonSerdeTest.java
index ec0e99c7c..575e5dba2 100644
--- a/fluss-server/src/test/java/org/apache/fluss/server/zk/data/TabletServerRegistrationJsonSerdeTest.java
+++ b/fluss-server/src/test/java/org/apache/fluss/server/zk/data/TabletServerRegistrationJsonSerdeTest.java
@@ -21,6 +21,7 @@ import org.apache.fluss.cluster.Endpoint;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.JsonNode;
import org.apache.fluss.shaded.jackson2.com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.fluss.utils.json.JsonSerdeTestBase;
+
import org.junit.jupiter.api.Test;
import java.io.IOException;
diff --git a/pom.xml b/pom.xml
index b43cc11ae..17ebb3849 100644
--- a/pom.xml
+++ b/pom.xml
@@ -989,7 +989,7 @@
<configuration>
<java>
<googleJavaFormat>
- <version>1.7</version>
+ <version>1.15</version>
<style>AOSP</style>
</googleJavaFormat>
(fluss) 05/12: WIP
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch ci-rename-to-apache
in repository https://gitbox.apache.org/repos/asf/fluss.git
commit 78b503c15d3dedd52c4a546d9c4bd637cea93f4f
Author: Jark Wu <ja...@apache.org>
AuthorDate: Mon Aug 25 13:58:34 2025 +0800
WIP
---
LICENSE | 356 ++++++++++-----------
.../fluss/flink/adapter/CatalogTableAdapter.java | 0
.../adapter/SingleThreadFetcherManagerAdapter.java | 0
...ngleThreadMultiplexSourceReaderBaseAdapter.java | 0
.../fluss/flink/adapter/CatalogTableAdapter.java | 0
.../fluss/flink/catalog/Flink21CatalogITCase.java | 4 -
.../fluss/flink/metrics/Flink21MetricsITCase.java | 0
.../flink/procedure/Flink21ProcedureITCase.java | 0
.../security/acl/Flink21AuthorizationITCase.java | 0
.../fluss/flink/sink/Flink21TableSinkITCase.java | 0
.../source/Flink21TableSourceBatchITCase.java | 0
.../source/Flink21TableSourceFailOverITCase.java | 0
.../flink/source/Flink21TableSourceITCase.java | 0
.../fluss/flink/adapter/CatalogTableAdapter.java | 0
.../adapter/SingleThreadFetcherManagerAdapter.java | 0
...ngleThreadMultiplexSourceReaderBaseAdapter.java | 0
.../apache}/fluss/flink/lake/LakeCatalog.java | 25 +-
.../fluss/flink/lake/LakeRecordRecordEmitter.java | 25 +-
.../fluss/flink/lake/LakeSplitGenerator.java | 0
.../fluss/flink/lake/LakeSplitReaderGenerator.java | 0
.../fluss/flink/lake/LakeSplitSerializer.java | 0
.../flink/lake/LakeSplitStateInitializer.java | 0
.../apache}/fluss/flink/lake/LakeTableFactory.java | 25 +-
.../fluss/flink/lake/reader/KeyValueRow.java | 0
.../reader/LakeSnapshotAndLogSplitScanner.java | 0
.../flink/lake/reader/LakeSnapshotScanner.java | 0
.../fluss/flink/lake/reader/SortMergeReader.java | 26 +-
.../lake/split/LakeSnapshotAndFlussLogSplit.java | 0
.../fluss/flink/lake/split/LakeSnapshotSplit.java | 0
.../state/LakeSnapshotAndFlussLogSplitState.java | 0
.../flink/lake/state/LakeSnapshotSplitState.java | 0
.../fluss/flink/lake/LakeSplitSerializerTest.java | 0
.../flink/lake/reader/SortMergeReaderTest.java | 0
.../replica/fetcher/ReplicaFetcherThread.java | 2 +-
website/blog/2025-06-01-partial-updates.md | 2 +-
35 files changed, 230 insertions(+), 235 deletions(-)
diff --git a/LICENSE b/LICENSE
index 5c274b510..da868f307 100644
--- a/LICENSE
+++ b/LICENSE
@@ -210,191 +210,191 @@ Apache License 2.0
--------------------------------------
Apache Arrow-java
-./fluss-common/src/main/java/com/alibaba/fluss/compression/ArrowCompressionFactory.java
-./fluss-common/src/main/java/com/alibaba/fluss/compression/Lz4ArrowCompressionCodec.java
-./fluss-common/src/main/java/com/alibaba/fluss/compression/ZstdArrowCompressionCodec.java
+./fluss-common/src/main/java/org/apache/fluss/compression/ArrowCompressionFactory.java
+./fluss-common/src/main/java/org/apache/fluss/compression/Lz4ArrowCompressionCodec.java
+./fluss-common/src/main/java/org/apache/fluss/compression/ZstdArrowCompressionCodec.java
Apache Flink
-./fluss-client/src/main/java/com/alibaba/fluss/client/token/DefaultSecurityTokenManager.java
-./fluss-common/src/main/java/com/alibaba/fluss/classloading/ComponentClassLoader.java
-./fluss-common/src/main/java/com/alibaba/fluss/config/ConfigOption.java
-./fluss-common/src/main/java/com/alibaba/fluss/config/Configuration.java
-./fluss-common/src/main/java/com/alibaba/fluss/config/ConfigurationUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/config/GlobalConfiguration.java
-./fluss-common/src/main/java/com/alibaba/fluss/config/MemorySize.java
-./fluss-common/src/main/java/com/alibaba/fluss/fs/FSDataOutputStream.java
-./fluss-common/src/main/java/com/alibaba/fluss/fs/FileSystem.java
-./fluss-common/src/main/java/com/alibaba/fluss/fs/FileSystemSafetyNet.java
-./fluss-common/src/main/java/com/alibaba/fluss/fs/FsPath.java
-./fluss-common/src/main/java/com/alibaba/fluss/fs/SafetyNetCloseableRegistry.java
-./fluss-common/src/main/java/com/alibaba/fluss/fs/SafetyNetWrapperFileSystem.java
-./fluss-common/src/main/java/com/alibaba/fluss/fs/local/LocalFileSystem.java
-./fluss-common/src/main/java/com/alibaba/fluss/memory/AbstractPagedOutputView.java
-./fluss-common/src/main/java/com/alibaba/fluss/memory/MemorySegment.java
-./fluss-common/src/main/java/com/alibaba/fluss/memory/MemoryUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/metrics/MeterView.java
-./fluss-common/src/main/java/com/alibaba/fluss/metrics/groups/AbstractMetricGroup.java
-./fluss-common/src/main/java/com/alibaba/fluss/metrics/groups/MetricGroup.java
-./fluss-common/src/main/java/com/alibaba/fluss/metrics/registry/MetricRegistryImpl.java
-./fluss-common/src/main/java/com/alibaba/fluss/plugin/DefaultPluginManager.java
-./fluss-common/src/main/java/com/alibaba/fluss/plugin/DirectoryBasedPluginFinder.java
-./fluss-common/src/main/java/com/alibaba/fluss/plugin/PluginLoader.java
-./fluss-common/src/main/java/com/alibaba/fluss/row/BinarySegmentUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/row/BinaryString.java
-./fluss-common/src/main/java/com/alibaba/fluss/row/Decimal.java
-./fluss-common/src/main/java/com/alibaba/fluss/types/DataType.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/AbstractAutoCloseableRegistry.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/DateTimeUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/DecimalUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/ExceptionUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/ExecutorUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/FatalExitExceptionHandler.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/FileUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/IOUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/InstantiationUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/MurmurHashUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/NetUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/OperatingSystem.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/SerializedValue.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/TimeUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/UnsafeUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/concurrent/ExecutorThreadFactory.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/concurrent/FutureUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/types/Either.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/types/Tuple.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/types/Tuple2.java
-./fluss-filesystems/fluss-fs-hadoop/src/main/java/com/alibaba/fluss/fs/hdfs/HadoopDataInputStream.java
-./fluss-filesystems/fluss-fs-hadoop/src/main/java/com/alibaba/fluss/fs/hdfs/HadoopDataOutputStream.java
-./fluss-filesystems/fluss-fs-hadoop/src/main/java/com/alibaba/fluss/fs/hdfs/HadoopFileSystem.java
-./fluss-filesystems/fluss-fs-hadoop/src/main/java/com/alibaba/fluss/fs/hdfs/HadoopFsPlugin.java
-./fluss-filesystems/fluss-fs-hadoop/src/main/java/com/alibaba/fluss/fs/hdfs/utils/HadoopUtils.java
-./fluss-filesystems/fluss-fs-oss/src/main/java/com/alibaba/fluss/fs/oss/OSSFileSystem.java
-./fluss-filesystems/fluss-fs-oss/src/main/java/com/alibaba/fluss/fs/oss/OSSFileSystemPlugin.java
-./fluss-filesystems/fluss-fs-s3/src/main/java/com/alibaba/fluss/fs/s3/token/S3DelegationTokenReceiver.java
-./fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/utils/CatalogPropertiesUtils.java
-./fluss-metrics/fluss-metrics-jmx/src/main/java/com/alibaba/fluss/metrics/jmx/JMXService.java
-./fluss-metrics/fluss-metrics-prometheus/src/main/java/com/alibaba/fluss/metrics/prometheus/PrometheusReporter.java
-./fluss-metrics/fluss-metrics-prometheus/src/main/java/com/alibaba/fluss/metrics/prometheus/PrometheusReporterPlugin.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/rocksdb/RocksDBKvBuilder.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/rocksdb/RocksDBResourceContainer.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/rocksdb/RocksDBWriteBatchWrapper.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/snapshot/AsyncSnapshotCallable.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/snapshot/CompletedSnapshot.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/snapshot/CompletedSnapshotHandle.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/snapshot/CompletedSnapshotStore.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/snapshot/PeriodicSnapshotManager.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/snapshot/RocksIncrementalSnapshot.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/kv/snapshot/SharedKvFileRegistry.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/metrics/ServerMetricUtils.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/utils/ResourceGuard.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/utils/ShutdownHookUtil.java
-./fluss-test-utils/src/main/java/com/alibaba/fluss/testutils/common/TestLoggerExtension.java
+./fluss-client/src/main/java/org/apache/fluss/client/token/DefaultSecurityTokenManager.java
+./fluss-common/src/main/java/org/apache/fluss/classloading/ComponentClassLoader.java
+./fluss-common/src/main/java/org/apache/fluss/config/ConfigOption.java
+./fluss-common/src/main/java/org/apache/fluss/config/Configuration.java
+./fluss-common/src/main/java/org/apache/fluss/config/ConfigurationUtils.java
+./fluss-common/src/main/java/org/apache/fluss/config/GlobalConfiguration.java
+./fluss-common/src/main/java/org/apache/fluss/config/MemorySize.java
+./fluss-common/src/main/java/org/apache/fluss/fs/FSDataOutputStream.java
+./fluss-common/src/main/java/org/apache/fluss/fs/FileSystem.java
+./fluss-common/src/main/java/org/apache/fluss/fs/FileSystemSafetyNet.java
+./fluss-common/src/main/java/org/apache/fluss/fs/FsPath.java
+./fluss-common/src/main/java/org/apache/fluss/fs/SafetyNetCloseableRegistry.java
+./fluss-common/src/main/java/org/apache/fluss/fs/SafetyNetWrapperFileSystem.java
+./fluss-common/src/main/java/org/apache/fluss/fs/local/LocalFileSystem.java
+./fluss-common/src/main/java/org/apache/fluss/memory/AbstractPagedOutputView.java
+./fluss-common/src/main/java/org/apache/fluss/memory/MemorySegment.java
+./fluss-common/src/main/java/org/apache/fluss/memory/MemoryUtils.java
+./fluss-common/src/main/java/org/apache/fluss/metrics/MeterView.java
+./fluss-common/src/main/java/org/apache/fluss/metrics/groups/AbstractMetricGroup.java
+./fluss-common/src/main/java/org/apache/fluss/metrics/groups/MetricGroup.java
+./fluss-common/src/main/java/org/apache/fluss/metrics/registry/MetricRegistryImpl.java
+./fluss-common/src/main/java/org/apache/fluss/plugin/DefaultPluginManager.java
+./fluss-common/src/main/java/org/apache/fluss/plugin/DirectoryBasedPluginFinder.java
+./fluss-common/src/main/java/org/apache/fluss/plugin/PluginLoader.java
+./fluss-common/src/main/java/org/apache/fluss/row/BinarySegmentUtils.java
+./fluss-common/src/main/java/org/apache/fluss/row/BinaryString.java
+./fluss-common/src/main/java/org/apache/fluss/row/Decimal.java
+./fluss-common/src/main/java/org/apache/fluss/types/DataType.java
+./fluss-common/src/main/java/org/apache/fluss/utils/AbstractAutoCloseableRegistry.java
+./fluss-common/src/main/java/org/apache/fluss/utils/DateTimeUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/DecimalUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/ExceptionUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/ExecutorUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/FatalExitExceptionHandler.java
+./fluss-common/src/main/java/org/apache/fluss/utils/FileUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/IOUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/InstantiationUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/MurmurHashUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/NetUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/OperatingSystem.java
+./fluss-common/src/main/java/org/apache/fluss/utils/SerializedValue.java
+./fluss-common/src/main/java/org/apache/fluss/utils/TimeUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/UnsafeUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/concurrent/ExecutorThreadFactory.java
+./fluss-common/src/main/java/org/apache/fluss/utils/concurrent/FutureUtils.java
+./fluss-common/src/main/java/org/apache/fluss/utils/types/Either.java
+./fluss-common/src/main/java/org/apache/fluss/utils/types/Tuple.java
+./fluss-common/src/main/java/org/apache/fluss/utils/types/Tuple2.java
+./fluss-filesystems/fluss-fs-hadoop/src/main/java/org/apache/fluss/fs/hdfs/HadoopDataInputStream.java
+./fluss-filesystems/fluss-fs-hadoop/src/main/java/org/apache/fluss/fs/hdfs/HadoopDataOutputStream.java
+./fluss-filesystems/fluss-fs-hadoop/src/main/java/org/apache/fluss/fs/hdfs/HadoopFileSystem.java
+./fluss-filesystems/fluss-fs-hadoop/src/main/java/org/apache/fluss/fs/hdfs/HadoopFsPlugin.java
+./fluss-filesystems/fluss-fs-hadoop/src/main/java/org/apache/fluss/fs/hdfs/utils/HadoopUtils.java
+./fluss-filesystems/fluss-fs-oss/src/main/java/org/apache/fluss/fs/oss/OSSFileSystem.java
+./fluss-filesystems/fluss-fs-oss/src/main/java/org/apache/fluss/fs/oss/OSSFileSystemPlugin.java
+./fluss-filesystems/fluss-fs-s3/src/main/java/org/apache/fluss/fs/s3/token/S3DelegationTokenReceiver.java
+./fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/utils/CatalogPropertiesUtils.java
+./fluss-metrics/fluss-metrics-jmx/src/main/java/org/apache/fluss/metrics/jmx/JMXService.java
+./fluss-metrics/fluss-metrics-prometheus/src/main/java/org/apache/fluss/metrics/prometheus/PrometheusReporter.java
+./fluss-metrics/fluss-metrics-prometheus/src/main/java/org/apache/fluss/metrics/prometheus/PrometheusReporterPlugin.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/rocksdb/RocksDBKvBuilder.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/rocksdb/RocksDBResourceContainer.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/rocksdb/RocksDBWriteBatchWrapper.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/snapshot/AsyncSnapshotCallable.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/snapshot/CompletedSnapshot.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/snapshot/CompletedSnapshotHandle.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/snapshot/CompletedSnapshotStore.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/snapshot/PeriodicSnapshotManager.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/snapshot/RocksIncrementalSnapshot.java
+./fluss-server/src/main/java/org/apache/fluss/server/kv/snapshot/SharedKvFileRegistry.java
+./fluss-server/src/main/java/org/apache/fluss/server/metrics/ServerMetricUtils.java
+./fluss-server/src/main/java/org/apache/fluss/server/utils/ResourceGuard.java
+./fluss-server/src/main/java/org/apache/fluss/server/utils/ShutdownHookUtil.java
+./fluss-test-utils/src/main/java/org/apache/fluss/testutils/common/TestLoggerExtension.java
Apache Kafka
-./fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogFetchBuffer.java
-./fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogFetchCollector.java
-./fluss-client/src/main/java/com/alibaba/fluss/client/table/scanner/log/LogFetcher.java
-./fluss-client/src/main/java/com/alibaba/fluss/client/write/IdempotenceManager.java
-./fluss-client/src/main/java/com/alibaba/fluss/client/write/RecordAccumulator.java
-./fluss-client/src/main/java/com/alibaba/fluss/client/write/Sender.java
-./fluss-common/src/main/java/com/alibaba/fluss/compression/FlussLZ4BlockInputStream.java
-./fluss-common/src/main/java/com/alibaba/fluss/compression/FlussLZ4BlockOutputStream.java
-./fluss-common/src/main/java/com/alibaba/fluss/record/DefaultLogRecordBatch.java
-./fluss-common/src/main/java/com/alibaba/fluss/record/FileLogInputStream.java
-./fluss-common/src/main/java/com/alibaba/fluss/record/FileLogRecords.java
-./fluss-common/src/main/java/com/alibaba/fluss/record/IndexedLogRecord.java
-./fluss-common/src/main/java/com/alibaba/fluss/record/MemoryLogRecords.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/concurrent/FlussScheduler.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/crc/Checksums.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/crc/Crc32C.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/crc/Java.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/crc/PureJavaCrc32C.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/log/ByteBufferUnmapper.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/log/FairBucketStatusMap.java
-./fluss-common/src/main/java/com/alibaba/fluss/utils/ExponentialBackoff.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/jaas/AuthenticateCallbackHandler.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/jaas/DefaultLogin.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/jaas/JaasConfig.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/jaas/JaasContext.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/jaas/Login.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/jaas/LoginManager.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/jaas/SaslClientCallbackHandler.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/jaas/SaslServerFactory.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/plain/PlainAuthenticateCallback.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/plain/PlainLoginModule.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/plain/PlainSaslServer.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/plain/PlainSaslServerProvider.java
-./fluss-common/src/main/java/com/alibaba/fluss/security/auth/sasl/plain/PlainServerCallbackHandler.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/coordinator/statemachine/ReplicaStateMachine.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/coordinator/statemachine/TableBucketStateMachine.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/AbstractIndex.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/LazyIndex.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/LocalLog.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/LogLoader.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/LogManager.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/LogOffsetMetadata.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/LogOffsetSnapshot.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/LogSegment.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/LogSegments.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/LogTablet.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/OffsetIndex.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/TimeIndex.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/WriterStateManager.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/checkpoint/CheckpointFile.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/log/checkpoint/OffsetCheckpointFile.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/replica/AdjustIsrManager.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/replica/FollowerReplica.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/replica/IsrState.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/replica/delay/DelayedFetchLog.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/replica/delay/DelayedOperation.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/replica/delay/DelayedOperationManager.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/replica/delay/DelayedWrite.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/replica/fetcher/ReplicaFetcherManager.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/replica/fetcher/ReplicaFetcherThread.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/utils/timer/DefaultTimer.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/utils/timer/Timer.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/utils/timer/TimerTask.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/utils/timer/TimerTaskEntry.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/utils/timer/TimerTaskList.java
-./fluss-server/src/main/java/com/alibaba/fluss/server/utils/timer/TimingWheel.java
+./fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetchBuffer.java
+./fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetchCollector.java
+./fluss-client/src/main/java/org/apache/fluss/client/table/scanner/log/LogFetcher.java
+./fluss-client/src/main/java/org/apache/fluss/client/write/IdempotenceManager.java
+./fluss-client/src/main/java/org/apache/fluss/client/write/RecordAccumulator.java
+./fluss-client/src/main/java/org/apache/fluss/client/write/Sender.java
+./fluss-common/src/main/java/org/apache/fluss/compression/FlussLZ4BlockInputStream.java
+./fluss-common/src/main/java/org/apache/fluss/compression/FlussLZ4BlockOutputStream.java
+./fluss-common/src/main/java/org/apache/fluss/record/DefaultLogRecordBatch.java
+./fluss-common/src/main/java/org/apache/fluss/record/FileLogInputStream.java
+./fluss-common/src/main/java/org/apache/fluss/record/FileLogRecords.java
+./fluss-common/src/main/java/org/apache/fluss/record/IndexedLogRecord.java
+./fluss-common/src/main/java/org/apache/fluss/record/MemoryLogRecords.java
+./fluss-common/src/main/java/org/apache/fluss/utils/concurrent/FlussScheduler.java
+./fluss-common/src/main/java/org/apache/fluss/utils/crc/Checksums.java
+./fluss-common/src/main/java/org/apache/fluss/utils/crc/Crc32C.java
+./fluss-common/src/main/java/org/apache/fluss/utils/crc/Java.java
+./fluss-common/src/main/java/org/apache/fluss/utils/crc/PureJavaCrc32C.java
+./fluss-common/src/main/java/org/apache/fluss/utils/log/ByteBufferUnmapper.java
+./fluss-common/src/main/java/org/apache/fluss/utils/log/FairBucketStatusMap.java
+./fluss-common/src/main/java/org/apache/fluss/utils/ExponentialBackoff.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/AuthenticateCallbackHandler.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/DefaultLogin.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/JaasConfig.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/JaasContext.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/Login.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/LoginManager.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/SaslClientCallbackHandler.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/jaas/SaslServerFactory.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/plain/PlainAuthenticateCallback.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/plain/PlainLoginModule.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/plain/PlainSaslServer.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/plain/PlainSaslServerProvider.java
+./fluss-common/src/main/java/org/apache/fluss/security/auth/sasl/plain/PlainServerCallbackHandler.java
+./fluss-server/src/main/java/org/apache/fluss/server/coordinator/statemachine/ReplicaStateMachine.java
+./fluss-server/src/main/java/org/apache/fluss/server/coordinator/statemachine/TableBucketStateMachine.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/AbstractIndex.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/LazyIndex.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/LocalLog.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/LogLoader.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/LogManager.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/LogOffsetMetadata.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/LogOffsetSnapshot.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/LogSegment.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/LogSegments.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/LogTablet.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/OffsetIndex.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/TimeIndex.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/WriterStateManager.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/checkpoint/CheckpointFile.java
+./fluss-server/src/main/java/org/apache/fluss/server/log/checkpoint/OffsetCheckpointFile.java
+./fluss-server/src/main/java/org/apache/fluss/server/replica/AdjustIsrManager.java
+./fluss-server/src/main/java/org/apache/fluss/server/replica/FollowerReplica.java
+./fluss-server/src/main/java/org/apache/fluss/server/replica/IsrState.java
+./fluss-server/src/main/java/org/apache/fluss/server/replica/delay/DelayedFetchLog.java
+./fluss-server/src/main/java/org/apache/fluss/server/replica/delay/DelayedOperation.java
+./fluss-server/src/main/java/org/apache/fluss/server/replica/delay/DelayedOperationManager.java
+./fluss-server/src/main/java/org/apache/fluss/server/replica/delay/DelayedWrite.java
+./fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherManager.java
+./fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
+./fluss-server/src/main/java/org/apache/fluss/server/utils/timer/DefaultTimer.java
+./fluss-server/src/main/java/org/apache/fluss/server/utils/timer/Timer.java
+./fluss-server/src/main/java/org/apache/fluss/server/utils/timer/TimerTask.java
+./fluss-server/src/main/java/org/apache/fluss/server/utils/timer/TimerTaskEntry.java
+./fluss-server/src/main/java/org/apache/fluss/server/utils/timer/TimerTaskList.java
+./fluss-server/src/main/java/org/apache/fluss/server/utils/timer/TimingWheel.java
Apache Paimon
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/And.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/CompareUtils.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/CompoundPredicate.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/Contains.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/EndsWith.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/Equal.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/FieldRef.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/FunctionVisitor.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterOrEqual.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/GreaterThan.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/In.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNotNull.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/IsNull.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafFunction.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafPredicate.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/LeafUnaryFunction.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/LessOrEqual.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/LessThan.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/NotEqual.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/NotIn.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/NullFalseLeafBinaryFunction.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/Or.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/PartitionPredicateVisitor.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/Predicate.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateBuilder.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/PredicateVisitor.java
-./fluss-common/src/main/java/com/alibaba/fluss/predicate/StartsWith.java
-./fluss-common/src/main/java/com/alibaba/fluss/row/encode/paimon/PaimonBinaryRowWriter.java
-./fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lakehouse/paimon/reader/PaimonSnapshotScanner.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/And.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/CompareUtils.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/CompoundPredicate.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/Contains.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/EndsWith.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/Equal.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/FieldRef.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/FunctionVisitor.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/GreaterOrEqual.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/GreaterThan.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/In.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/IsNotNull.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/IsNull.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/LeafFunction.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/LeafPredicate.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/LeafUnaryFunction.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/LessOrEqual.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/LessThan.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/NotEqual.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/NotIn.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/NullFalseLeafBinaryFunction.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/Or.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/PartitionPredicateVisitor.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/Predicate.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/PredicateBuilder.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/PredicateVisitor.java
+./fluss-common/src/main/java/org/apache/fluss/predicate/StartsWith.java
+./fluss-common/src/main/java/org/apache/fluss/row/encode/paimon/PaimonBinaryRowWriter.java
+./fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lakehouse/paimon/reader/PaimonSnapshotScanner.java
Apache Spark
-./fluss-rpc/src/main/java/com/alibaba/fluss/rpc/netty/NettyLogger.java
+./fluss-rpc/src/main/java/org/apache/fluss/rpc/netty/NettyLogger.java
LightProto
-./fluss-common/src/main/java/com/alibaba/fluss/utils/ProtoCodecUtils.java
-./fluss-protogen/fluss-protogen-generator/src/main/java/com/alibaba/fluss/protogen/generator/generator/ProtoGen.java
-./fluss-protogen/fluss-protogen-generator/src/main/java/com/alibaba/fluss/protogen/generator/generator/ProtobufMessage.java
-./fluss-protogen/fluss-protogen-generator/src/main/java/com/alibaba/fluss/protogen/generator/generator/ProtobufNumberField.java
-./fluss-protogen/fluss-protogen-maven-plugin/src/main/java/com/alibaba/fluss/protogen/maven/plugin/ProtoGenMojo.java
+./fluss-common/src/main/java/org/apache/fluss/utils/ProtoCodecUtils.java
+./fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtoGen.java
+./fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtobufMessage.java
+./fluss-protogen/fluss-protogen-generator/src/main/java/org/apache/fluss/protogen/generator/generator/ProtobufNumberField.java
+./fluss-protogen/fluss-protogen-maven-plugin/src/main/java/org/apache/fluss/protogen/maven/plugin/ProtoGenMojo.java
diff --git a/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java b/fluss-flink/fluss-flink-1.18/src/main/java/org/apache/fluss/flink/adapter/CatalogTableAdapter.java
similarity index 100%
rename from fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
rename to fluss-flink/fluss-flink-1.18/src/main/java/org/apache/fluss/flink/adapter/CatalogTableAdapter.java
diff --git a/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java b/fluss-flink/fluss-flink-1.18/src/main/java/org/apache/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
similarity index 100%
rename from fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
rename to fluss-flink/fluss-flink-1.18/src/main/java/org/apache/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
diff --git a/fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java b/fluss-flink/fluss-flink-1.18/src/main/java/org/apache/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
similarity index 100%
rename from fluss-flink/fluss-flink-1.18/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
rename to fluss-flink/fluss-flink-1.18/src/main/java/org/apache/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
diff --git a/fluss-flink/fluss-flink-1.19/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java b/fluss-flink/fluss-flink-1.19/src/main/java/org/apache/fluss/flink/adapter/CatalogTableAdapter.java
similarity index 100%
rename from fluss-flink/fluss-flink-1.19/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
rename to fluss-flink/fluss-flink-1.19/src/main/java/org/apache/fluss/flink/adapter/CatalogTableAdapter.java
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/catalog/Flink21CatalogITCase.java
similarity index 74%
rename from fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java
rename to fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/catalog/Flink21CatalogITCase.java
index cae4d4ebb..b12aaa5e8 100644
--- a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java
+++ b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/catalog/Flink21CatalogITCase.java
@@ -15,11 +15,7 @@
* limitations under the License.
*/
-<<<<<<<< HEAD:fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/catalog/Flink21CatalogITCase.java
package org.apache.fluss.flink.catalog;
-========
-package org.apache.fluss.flink;
->>>>>>>> c4d07399 ([INFRA] The project package name updated to org.apache.fluss.):fluss-flink/fluss-flink-1.19/src/main/java/org/apache/fluss/flink/DummyClass119.java
/** IT case for catalog in Flink 2.1. */
public class Flink21CatalogITCase extends FlinkCatalogITCase {}
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/metrics/Flink21MetricsITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/metrics/Flink21MetricsITCase.java
similarity index 100%
rename from fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/metrics/Flink21MetricsITCase.java
rename to fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/metrics/Flink21MetricsITCase.java
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/procedure/Flink21ProcedureITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/procedure/Flink21ProcedureITCase.java
similarity index 100%
rename from fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/procedure/Flink21ProcedureITCase.java
rename to fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/procedure/Flink21ProcedureITCase.java
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/security/acl/Flink21AuthorizationITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/security/acl/Flink21AuthorizationITCase.java
similarity index 100%
rename from fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/security/acl/Flink21AuthorizationITCase.java
rename to fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/security/acl/Flink21AuthorizationITCase.java
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/sink/Flink21TableSinkITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/sink/Flink21TableSinkITCase.java
similarity index 100%
rename from fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/sink/Flink21TableSinkITCase.java
rename to fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/sink/Flink21TableSinkITCase.java
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceBatchITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceBatchITCase.java
similarity index 100%
rename from fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceBatchITCase.java
rename to fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceBatchITCase.java
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceFailOverITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceFailOverITCase.java
similarity index 100%
rename from fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceFailOverITCase.java
rename to fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceFailOverITCase.java
diff --git a/fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceITCase.java b/fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceITCase.java
similarity index 100%
rename from fluss-flink/fluss-flink-2.1/src/test/java/com/alibaba/fluss/flink/source/Flink21TableSourceITCase.java
rename to fluss-flink/fluss-flink-2.1/src/test/java/org/apache/fluss/flink/source/Flink21TableSourceITCase.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/adapter/CatalogTableAdapter.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/CatalogTableAdapter.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/adapter/CatalogTableAdapter.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/adapter/SingleThreadFetcherManagerAdapter.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/adapter/SingleThreadMultiplexSourceReaderBaseAdapter.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeCatalog.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeCatalog.java
similarity index 63%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeCatalog.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeCatalog.java
index ff1846fcb..0df4c544b 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeCatalog.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeCatalog.java
@@ -1,20 +1,21 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
+package org.apache.fluss.flink.lake;
+
import org.apache.flink.table.catalog.CatalogBaseTable;
import org.apache.flink.table.catalog.ObjectPath;
import org.apache.flink.table.catalog.exceptions.CatalogException;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeRecordRecordEmitter.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java
similarity index 66%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeRecordRecordEmitter.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java
index 566ef053c..3114f10ef 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeRecordRecordEmitter.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeRecordRecordEmitter.java
@@ -1,20 +1,21 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
+package org.apache.fluss.flink.lake;
+
import org.apache.flink.api.connector.source.SourceOutput;
import org.apache.fluss.client.table.scanner.ScanRecord;
import org.apache.fluss.flink.lake.state.LakeSnapshotAndFlussLogSplitState;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitGenerator.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitGenerator.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitGenerator.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitGenerator.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitReaderGenerator.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitReaderGenerator.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitReaderGenerator.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitReaderGenerator.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitSerializer.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitSerializer.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitSerializer.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitSerializer.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitStateInitializer.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitStateInitializer.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeSplitStateInitializer.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeSplitStateInitializer.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeTableFactory.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeTableFactory.java
similarity index 65%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeTableFactory.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeTableFactory.java
index b7f0da3da..f772848b6 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/LakeTableFactory.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/LakeTableFactory.java
@@ -1,21 +1,20 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
-import org.apache.flink.table.catalog.ObjectIdentifier;
+package org.apache.fluss.flink.lake;import org.apache.flink.table.catalog.ObjectIdentifier;
import org.apache.flink.table.connector.source.DynamicTableSource;
import org.apache.flink.table.factories.DynamicTableFactory;
import org.apache.flink.table.factories.FactoryUtil;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/KeyValueRow.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/KeyValueRow.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/KeyValueRow.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/KeyValueRow.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotAndLogSplitScanner.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/LakeSnapshotAndLogSplitScanner.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotAndLogSplitScanner.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/LakeSnapshotAndLogSplitScanner.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotScanner.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/LakeSnapshotScanner.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/LakeSnapshotScanner.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/LakeSnapshotScanner.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/SortMergeReader.java
similarity index 95%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/SortMergeReader.java
index 4a85d9b9e..8e4e9b669 100644
--- a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/reader/SortMergeReader.java
+++ b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/reader/SortMergeReader.java
@@ -1,22 +1,20 @@
/*
- * 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
+ * Copyright (c) 2025 Alibaba Group Holding Ltd.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Licensed 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
*
- * 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.
+ * 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.
*/
-import org.apache.fluss.record.LogRecord;
+package org.apache.fluss.flink.lake.reader;import org.apache.fluss.record.LogRecord;
import org.apache.fluss.row.InternalRow;
import org.apache.fluss.row.ProjectedRow;
import org.apache.fluss.utils.CloseableIterator;
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotAndFlussLogSplit.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/split/LakeSnapshotAndFlussLogSplit.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotAndFlussLogSplit.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/split/LakeSnapshotAndFlussLogSplit.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotSplit.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/split/LakeSnapshotSplit.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/split/LakeSnapshotSplit.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/split/LakeSnapshotSplit.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotAndFlussLogSplitState.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/state/LakeSnapshotAndFlussLogSplitState.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotAndFlussLogSplitState.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/state/LakeSnapshotAndFlussLogSplitState.java
diff --git a/fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotSplitState.java b/fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/state/LakeSnapshotSplitState.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/main/java/com/alibaba/fluss/flink/lake/state/LakeSnapshotSplitState.java
rename to fluss-flink/fluss-flink-common/src/main/java/org/apache/fluss/flink/lake/state/LakeSnapshotSplitState.java
diff --git a/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/LakeSplitSerializerTest.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/LakeSplitSerializerTest.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/LakeSplitSerializerTest.java
rename to fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/LakeSplitSerializerTest.java
diff --git a/fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/reader/SortMergeReaderTest.java b/fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java
similarity index 100%
rename from fluss-flink/fluss-flink-common/src/test/java/com/alibaba/fluss/flink/lake/reader/SortMergeReaderTest.java
rename to fluss-flink/fluss-flink-common/src/test/java/org/apache/fluss/flink/lake/reader/SortMergeReaderTest.java
diff --git a/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java b/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
index 81fc841bc..4ba16240c 100644
--- a/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
+++ b/fluss-server/src/main/java/org/apache/fluss/server/replica/fetcher/ReplicaFetcherThread.java
@@ -337,7 +337,7 @@ final class ReplicaFetcherThread extends ShutdownableThread {
|| e instanceof OutOfOrderSequenceException
|| e instanceof InvalidOffsetException) {
// TODO this part of logic need to be removed after we introduce leader epoch cache.
- // Trace by https://github.com/alibaba/fluss/issues/673
+ // Trace by https://github.com/apache/fluss/issues/673
LOG.error(
"Founding recoverable error while processing data for bucket {} at offset {}, try to "
+ "truncate to LeaderEndOffsetSnapshot",
diff --git a/website/blog/2025-06-01-partial-updates.md b/website/blog/2025-06-01-partial-updates.md
index b9c535d9c..a774c313a 100644
--- a/website/blog/2025-06-01-partial-updates.md
+++ b/website/blog/2025-06-01-partial-updates.md
@@ -265,7 +265,7 @@ Flink SQL> SELECT * FROM user_rec_wide;
Now let's switch to `batch` mode and query the current snapshot of the `user_rec_wide` table.
-But before that, let's start the [Tiering Service](https://alibaba.github.io/fluss-docs/docs/maintenance/tiered-storage/lakehouse-storage/#start-the-datalake-tiering-service) that allows offloading the tables as `Lakehouse` tables.
+But before that, let's start the [Tiering Service](/docs/maintenance/tiered-storage/lakehouse-storage.md#start-the-datalake-tiering-service) that allows offloading the tables as `Lakehouse` tables.
**Step 7:** Open a new terminal 💻 in the `Coordinator Server` and run the following command to start the `Tiering Service`:
```shell