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/03 10:47:19 UTC
(fluss-shaded) 01/01: Init Commit
This is an automated email from the ASF dual-hosted git repository.
jark pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss-shaded.git
commit 1d09c14088a659a44596b54badf3fc656fd960c8
Author: Jark Wu <ja...@apache.org>
AuthorDate: Sun Aug 3 18:46:41 2025 +0800
Init Commit
---
.asf.yaml | 43 +++
.github/workflows/ci.yml | 56 ++++
.gitignore | 5 +
DISCLAIMER | 10 +
LICENSE | 201 ++++++++++++
NOTICE | 5 +
README.md | 37 +++
deploysettings.xml | 37 +++
.../fluss-shaded-arrow-15/pom.xml | 97 ++++++
.../src/main/resources/META-INF/NOTICE | 14 +
.../fluss-shaded-arrow-16/pom.xml | 96 ++++++
.../src/main/resources/META-INF/NOTICE | 13 +
fluss-shaded-arrow-parent/pom.xml | 103 ++++++
fluss-shaded-guava-32/pom.xml | 100 ++++++
.../src/main/resources/META-INF/NOTICE | 10 +
.../fluss-shaded-jackson-2/pom.xml | 111 +++++++
.../src/main/resources/META-INF/NOTICE | 16 +
fluss-shaded-jackson-parent/pom.xml | 84 +++++
fluss-shaded-netty-4/pom.xml | 118 +++++++
.../src/main/resources/META-INF/NOTICE | 42 +++
.../fluss-shaded-zookeeper-38/pom.xml | 155 +++++++++
.../src/main/resources/META-INF/NOTICE | 25 ++
fluss-shaded-zookeeper-parent/pom.xml | 102 ++++++
pom.xml | 347 +++++++++++++++++++++
tools/ci/log4j.properties | 43 +++
tools/releasing/create_release_branch.sh | 58 ++++
tools/releasing/create_source_release.sh | 78 +++++
tools/releasing/deploy_staging_jars.sh | 44 +++
tools/releasing/update_branch_version.sh | 61 ++++
tools/update_notice_year.sh | 41 +++
30 files changed, 2152 insertions(+)
diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..f3d8901
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,43 @@
+# 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.
+
+# See: https://cwiki.apache.org/confluence/display/INFRA/git+-+.asf.yaml+features
+
+github:
+ description: "Apache Fluss (Incubating) shaded artifacts repository"
+ homepage: https://fluss.apache.org/
+ features:
+ issues: true
+ projects: false
+ discussions: false
+ wiki: false
+ labels:
+ - fluss
+ - streaming
+ - real-time-analytics
+ - lakehouse
+ enabled_merge_buttons:
+ squash: true
+ merge: false
+ rebase: true
+
+notifications:
+ commits: commits@fluss.apache.org
+ issues: issues@fluss.apache.org
+ pullrequests: issues@fluss.apache.org
+ jobs: builds@fluss.apache.org
+ discussions: issues@fluss.apache.org
\ No newline at end of file
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..031deca
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,56 @@
+# 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.
+
+name: Java 8 Build
+
+on: [push, pull_request]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ env:
+ MVN_COMMON_OPTIONS: -U -B --no-transfer-progress
+ MVN_BUILD_OUTPUT_FILE: "/tmp/mvn_build_output.out"
+ MVN_VALIDATION_DIR: "/tmp/flink-validation-deployment"
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Set JDK
+ uses: actions/setup-java@v2
+ with:
+ java-version: 8
+ distribution: 'temurin'
+ cache: 'maven'
+
+ - name: Set Maven 3.8.6
+ uses: stCarolas/setup-maven@v4.2
+ with:
+ maven-version: 3.8.6
+
+ - name: Build
+ run: |
+ set -o pipefail
+
+ mvn clean deploy ${{ env.MVN_COMMON_OPTIONS }} \
+ -DaltDeploymentRepository=validation_repository::default::file:${{ env.MVN_VALIDATION_DIR }} \
+ -Plicense-check \
+ | tee ${{ env.MVN_BUILD_OUTPUT_FILE }}
+
+ - name: Check licensing
+ run: |
+ mvn ${MVN_COMMON_OPTIONS} exec:java@check-license -N \
+ -Dexec.args="${{ env.MVN_BUILD_OUTPUT_FILE }} $(pwd) ${{ env.MVN_VALIDATION_DIR }}" \
+ -Dlog4j.configurationFile=file://$(pwd)/tools/ci/log4j.properties
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8f7a660
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+.cache
+.idea
+target
+*.iml
+tools/release
\ No newline at end of file
diff --git a/DISCLAIMER b/DISCLAIMER
new file mode 100644
index 0000000..ddc4f01
--- /dev/null
+++ b/DISCLAIMER
@@ -0,0 +1,10 @@
+Apache Fluss (incubating) is an effort undergoing incubation at The Apache
+Software Foundation (ASF), sponsored by the Apache Incubator PMC.
+
+Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process
+have stabilized in a manner consistent with other successful ASF projects.
+
+While incubation status is not necessarily a reflection of the completeness
+or stability of the code, it does indicate that the project has yet to be
+fully endorsed by the ASF.
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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
+
+ 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.
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..f53a802
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,5 @@
+Apache Fluss (incubating)
+Copyright 2025 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e5c7a1d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,37 @@
+<!--
+ 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.
+-->
+
+# Fluss Shaded Dependencies
+
+This repository contains a number of shaded dependencies for the [Apache Fluss (Incubating)](https://fluss.apache.org/) project.
+
+The purpose of these dependencies is to provide a single instance of a shaded dependency in the Fluss distribution, instead of each individual module shading the dependency.
+
+Shaded dependencies contained here do not expose any transitive dependencies. They may or may not be self-contained.
+
+When using these dependencies it is recommended to work directly against the shaded namespaces.
+
+## Sources
+
+We currently do not release jars containing the shaded sources due to the unanswered legal questions raised [here](https://github.com/apache/flink-shaded/issues/25).
+
+However, it is possible to build these jars locally by cloning the repository and calling `mvn clean package -Dshade-sources`.
+
+## Reference
+
+This project is inspired from [flink-shaded](https://github.com/apache/flink-shaded).
\ No newline at end of file
diff --git a/deploysettings.xml b/deploysettings.xml
new file mode 100644
index 0000000..13559b3
--- /dev/null
+++ b/deploysettings.xml
@@ -0,0 +1,37 @@
+<!--
+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.
+-->
+
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
+ http://maven.apache.org/xsd/settings-1.0.0.xsd">
+ <servers>
+ <server>
+ <id>apache.snapshots.https</id>
+ <username>${sonatype_user}</username>
+ <password>${sonatype_pw}</password>
+ </server>
+ <server>
+ <id>apache.releases.https</id>
+ <username>${sonatype_user}</username>
+ <password>${sonatype_pw}</password>
+ </server>
+ </servers>
+</settings>
+
diff --git a/fluss-shaded-arrow-parent/fluss-shaded-arrow-15/pom.xml b/fluss-shaded-arrow-parent/fluss-shaded-arrow-15/pom.xml
new file mode 100644
index 0000000..70cab23
--- /dev/null
+++ b/fluss-shaded-arrow-parent/fluss-shaded-arrow-15/pom.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ 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>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded-arrow-parent</artifactId>
+ <version>1.0-incubating</version>
+ </parent>
+
+ <artifactId>fluss-shaded-arrow${fluss.ci.license.suffix}</artifactId>
+ <name>fluss-shaded-arrow-15</name>
+ <version>${arrow.version}-1.0-incubating</version>
+
+ <packaging>jar</packaging>
+
+ <properties>
+ <!-- Arrow 15 mistaken introduced org.eclipse.collections as a dependency, which has
+ license legal problem. See https://github.com/apache/arrow/issues/40896 -->
+ <arrow.version>15.0.0</arrow.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.arrow</groupId>
+ <artifactId>arrow-vector</artifactId>
+ <version>${arrow.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.arrow</groupId>
+ <artifactId>arrow-memory-netty</artifactId>
+ <version>${arrow.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-buffer</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>license-check</id>
+ <properties>
+ <fluss.ci.license.suffix>-15</fluss.ci.license.suffix>
+ </properties>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
diff --git a/fluss-shaded-arrow-parent/fluss-shaded-arrow-15/src/main/resources/META-INF/NOTICE b/fluss-shaded-arrow-parent/fluss-shaded-arrow-15/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..5dcf96b
--- /dev/null
+++ b/fluss-shaded-arrow-parent/fluss-shaded-arrow-15/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,14 @@
+fluss-shaded-arrow-15
+Copyright 2014-2023 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+- org.apache.arrow:arrow-vector:15.0.0
+- org.apache.arrow:arrow-format:15.0.0
+- org.apache.arrow:arrow-memory-core:15.0.0
+- org.apache.arrow:arrow-memory-netty:15.0.0
+- com.google.flatbuffers:flatbuffers-java:23.5.26
+- org.eclipse.collections:eclipse-collections:11.1.0
\ No newline at end of file
diff --git a/fluss-shaded-arrow-parent/fluss-shaded-arrow-16/pom.xml b/fluss-shaded-arrow-parent/fluss-shaded-arrow-16/pom.xml
new file mode 100644
index 0000000..b922c16
--- /dev/null
+++ b/fluss-shaded-arrow-parent/fluss-shaded-arrow-16/pom.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ 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>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded-arrow-parent</artifactId>
+ <version>1.0-incubating</version>
+ </parent>
+
+ <artifactId>fluss-shaded-arrow${fluss.ci.license.suffix}</artifactId>
+ <name>fluss-shaded-arrow-16</name>
+ <version>${arrow.version}-1.0-incubating</version>
+
+ <packaging>jar</packaging>
+
+ <properties>
+ <!-- Arrow 16 requires Java 9+ -->
+ <arrow.version>16.1.0</arrow.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.arrow</groupId>
+ <artifactId>arrow-vector</artifactId>
+ <version>${arrow.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.arrow</groupId>
+ <artifactId>arrow-memory-netty</artifactId>
+ <version>${arrow.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-common</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-buffer</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>license-check</id>
+ <properties>
+ <fluss.ci.license.suffix>-16</fluss.ci.license.suffix>
+ </properties>
+ </profile>
+ </profiles>
+
+</project>
\ No newline at end of file
diff --git a/fluss-shaded-arrow-parent/fluss-shaded-arrow-16/src/main/resources/META-INF/NOTICE b/fluss-shaded-arrow-parent/fluss-shaded-arrow-16/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..9251eae
--- /dev/null
+++ b/fluss-shaded-arrow-parent/fluss-shaded-arrow-16/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,13 @@
+fluss-shaded-arrow-16
+Copyright 2014-2023 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+- org.apache.arrow:arrow-vector:16.1.0
+- org.apache.arrow:arrow-format:16.1.0
+- org.apache.arrow:arrow-memory-core:16.1.0
+- org.apache.arrow:arrow-memory-netty:16.1.0
+- com.google.flatbuffers:flatbuffers-java:23.5.26
\ No newline at end of file
diff --git a/fluss-shaded-arrow-parent/pom.xml b/fluss-shaded-arrow-parent/pom.xml
new file mode 100644
index 0000000..69dcfeb
--- /dev/null
+++ b/fluss-shaded-arrow-parent/pom.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ 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>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded</artifactId>
+ <version>1.0-incubating</version>
+ </parent>
+
+ <artifactId>fluss-shaded-arrow-parent</artifactId>
+
+ <name>fluss-shaded-arrow-parent</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>fluss-shaded-arrow-15</module>
+ <module>fluss-shaded-arrow-16</module>
+ </modules>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>shade-fluss</id>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <createDependencyReducedPom>true</createDependencyReducedPom>
+ <dependencyReducedPomLocation>${project.basedir}/target/dependency-reduced-pom.xml</dependencyReducedPomLocation>
+ <artifactSet>
+ <includes>
+ <include>org.apache.arrow:*</include>
+ <include>com.google.flatbuffers:*</include>
+ <!-- arrow-memory-netty has classes defined in this package -->
+ <include>io.netty:*</include>
+ <!-- Only for Arrow 15.0.0 -->
+ <include>org.eclipse.collections.impl.map.mutable.primitive.IntObjectHashMap</include>
+ </includes>
+ <excludes>
+ <!-- We re-use fluss-shaded-jackson -->
+ <exclude>com.fasterxml.jackson.core:*</exclude>
+ <exclude>com.fasterxml.jackson.datatype:*</exclude>
+ </excludes>
+ </artifactSet>
+ <relocations>
+ <!-- we don't put version suffix for arrow, other shaded pattern
+ should also doesn't need the suffix for Fluss -->
+ <relocation>
+ <pattern>org.apache.arrow</pattern>
+ <shadedPattern>${shading.prefix}.arrow.org.apache.arrow</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google.flatbuffers</pattern>
+ <shadedPattern>${shading.prefix}.arrow.com.google.flatbuffers</shadedPattern>
+ </relocation>
+ <!-- This needs to match the relocation pattern of fluss-shaded-netty -->
+ <relocation>
+ <pattern>io.netty</pattern>
+ <shadedPattern>${shading.prefix}.netty4.io.netty</shadedPattern>
+ </relocation>
+ <relocation>
+ <!-- This needs to match the relocation pattern of fluss-shaded-jackson -->
+ <pattern>com.fasterxml.jackson</pattern>
+ <shadedPattern>${shading.prefix}.jackson2.com.fasterxml.jackson</shadedPattern>
+ </relocation>
+ </relocations>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <!-- Used to resolve variables in the 'version' tag -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>flatten-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
diff --git a/fluss-shaded-guava-32/pom.xml b/fluss-shaded-guava-32/pom.xml
new file mode 100644
index 0000000..56d67af
--- /dev/null
+++ b/fluss-shaded-guava-32/pom.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded</artifactId>
+ <version>1.0-incubating</version>
+ </parent>
+
+ <artifactId>fluss-shaded-guava${fluss.ci.license.suffix}</artifactId>
+ <name>fluss-shaded-guava-32</name>
+ <version>${guava.version}-1.0-incubating</version>
+
+ <packaging>jar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>${guava.version}</version>
+ <exclusions>
+ <exclusion>
+ <!-- this dependency is actually empty and appears to be some weird legacy artifact -->
+ <groupId>com.google.guava</groupId>
+ <artifactId>listenablefuture</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>license-check</id>
+ <properties>
+ <fluss.ci.license.suffix>-32</fluss.ci.license.suffix>
+ </properties>
+ </profile>
+ </profiles>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>shade-fluss</id>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <createDependencyReducedPom>true</createDependencyReducedPom>
+ <dependencyReducedPomLocation>${project.basedir}/target/dependency-reduced-pom.xml</dependencyReducedPomLocation>
+ <artifactSet>
+ <includes>
+ <include>com.google.guava:*</include>
+ </includes>
+ </artifactSet>
+ <relocations>
+ <relocation>
+ <pattern>com.google</pattern>
+ <shadedPattern>${shading.prefix}.guava32.com.google</shadedPattern>
+ </relocation>
+ </relocations>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <!-- Used to resolve variables in the 'version' tag -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>flatten-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+
+</project>
diff --git a/fluss-shaded-guava-32/src/main/resources/META-INF/NOTICE b/fluss-shaded-guava-32/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..c3feb54
--- /dev/null
+++ b/fluss-shaded-guava-32/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,10 @@
+fluss-shaded-guava-32
+Copyright 2014-2023 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+- com.google.guava:guava:32.1.3-jre
+- com.google.guava:failureaccess:1.0.1
\ No newline at end of file
diff --git a/fluss-shaded-jackson-parent/fluss-shaded-jackson-2/pom.xml b/fluss-shaded-jackson-parent/fluss-shaded-jackson-2/pom.xml
new file mode 100644
index 0000000..688b60d
--- /dev/null
+++ b/fluss-shaded-jackson-parent/fluss-shaded-jackson-2/pom.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded-jackson-parent</artifactId>
+ <version>2.15.3-1.0-incubating</version>
+ </parent>
+
+ <artifactId>fluss-shaded-jackson${fluss.ci.license.suffix}</artifactId>
+ <name>fluss-shaded-jackson-2</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-csv</artifactId>
+ </dependency>
+ <dependency>
+ <!-- Java 8 Date/time -->
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jsr310</artifactId>
+ </dependency>
+ <dependency>
+ <!-- Java 8 Datatypes -->
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-jdk8</artifactId>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>license-check</id>
+ <properties>
+ <fluss.ci.license.suffix>-2</fluss.ci.license.suffix>
+ </properties>
+ </profile>
+ </profiles>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <!-- Jackson uses multi release jars and in case 2.15.x there is version 19
+ which is not supported by 3.3.x and below -->
+ <version>3.4.1</version>
+ <executions>
+ <execution>
+ <id>shade-fluss</id>
+ <configuration>
+ <artifactSet>
+ <includes combine.children="append">
+ <include>org.yaml:snakeyaml</include>
+ </includes>
+ </artifactSet>
+ <relocations combine.children="append">
+ <relocation>
+ <pattern>org.yaml</pattern>
+ <shadedPattern>${shading.prefix}.jackson2.org.yaml
+ </shadedPattern>
+ </relocation>
+ </relocations>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <!-- Used to resolve variables in the 'version' tag -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>flatten-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
diff --git a/fluss-shaded-jackson-parent/fluss-shaded-jackson-2/src/main/resources/META-INF/NOTICE b/fluss-shaded-jackson-parent/fluss-shaded-jackson-2/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..151e0d6
--- /dev/null
+++ b/fluss-shaded-jackson-parent/fluss-shaded-jackson-2/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,16 @@
+fluss-shaded-jackson
+Copyright 2014-2023 The Apache Software Foundation
+
+This project includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+- com.fasterxml.jackson.core:jackson-annotations:2.15.3
+- com.fasterxml.jackson.core:jackson-core:2.15.3
+- com.fasterxml.jackson.core:jackson-databind:2.15.3
+- com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.15.3
+- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.3
+- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.15.3
+- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.3
+- org.yaml:snakeyaml:2.1
diff --git a/fluss-shaded-jackson-parent/pom.xml b/fluss-shaded-jackson-parent/pom.xml
new file mode 100644
index 0000000..ed70788
--- /dev/null
+++ b/fluss-shaded-jackson-parent/pom.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded</artifactId>
+ <version>1.0-incubating</version>
+ </parent>
+
+ <artifactId>fluss-shaded-jackson-parent</artifactId>
+ <name>fluss-shaded-jackson-parent</name>
+ <packaging>pom</packaging>
+ <version>2.15.3-1.0-incubating</version>
+
+ <modules>
+ <module>fluss-shaded-jackson-2</module>
+ </modules>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>com.fasterxml.jackson</groupId>
+ <artifactId>jackson-bom</artifactId>
+ <version>${jackson.version}</version>
+ <scope>import</scope>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>shade-fluss</id>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <createDependencyReducedPom>true</createDependencyReducedPom>
+ <dependencyReducedPomLocation>${project.basedir}/target/dependency-reduced-pom.xml</dependencyReducedPomLocation>
+ <artifactSet>
+ <includes>
+ <include>com.fasterxml.jackson.*:*</include>
+ </includes>
+ </artifactSet>
+ <relocations>
+ <relocation>
+ <pattern>com.fasterxml.jackson</pattern>
+ <shadedPattern>${shading.prefix}.jackson2.com.fasterxml.jackson</shadedPattern>
+ </relocation>
+ </relocations>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
diff --git a/fluss-shaded-netty-4/pom.xml b/fluss-shaded-netty-4/pom.xml
new file mode 100644
index 0000000..c45f284
--- /dev/null
+++ b/fluss-shaded-netty-4/pom.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded</artifactId>
+ <version>1.0-incubating</version>
+ </parent>
+
+ <artifactId>fluss-shaded-netty${fluss.ci.license.suffix}</artifactId>
+ <name>fluss-shaded-netty-4</name>
+ <version>${netty.version}-1.0-incubating</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-all</artifactId>
+ <version>${netty.version}</version>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>license-check</id>
+ <properties>
+ <fluss.ci.license.suffix>-4</fluss.ci.license.suffix>
+ </properties>
+ </profile>
+ </profiles>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>shade-fluss</id>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <createDependencyReducedPom>true</createDependencyReducedPom>
+ <dependencyReducedPomLocation>${project.basedir}/target/dependency-reduced-pom.xml</dependencyReducedPomLocation>
+ <artifactSet>
+ <includes>
+ <include>io.netty:*</include>
+ </includes>
+ </artifactSet>
+ <relocations>
+ <relocation>
+ <pattern>io.netty</pattern>
+ <shadedPattern>${shading.prefix}.netty4.io.netty</shadedPattern>
+ </relocation>
+ </relocations>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.7</version>
+ <executions>
+ <execution>
+ <id>rename-native-library</id>
+ <phase>package</phase>
+ <configuration>
+ <target>
+ <echo message="unpacking netty jar" />
+ <unzip src="${project.build.directory}/${artifactId}-${version}.jar" dest="${project.build.directory}/unpacked/" />
+ <echo message="renaming the complete libnetty library" />
+ <move todir="${project.build.directory}/unpacked/META-INF/native" includeemptydirs="false">
+ <fileset dir="${project.build.directory}/unpacked/META-INF/native"/>
+ <mapper type="glob" from="libnetty*" to="liborg_apache_fluss_shaded_netty4_netty*"/>
+ </move>
+ <echo message="repackaging netty jar" />
+ <jar destfile="${project.build.directory}/${artifactId}-${version}.jar" basedir="${project.build.directory}/unpacked" />
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <!-- Used to resolve variables in the 'version' tag -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>flatten-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+
+</project>
diff --git a/fluss-shaded-netty-4/src/main/resources/META-INF/NOTICE b/fluss-shaded-netty-4/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..d3f7889
--- /dev/null
+++ b/fluss-shaded-netty-4/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,42 @@
+fluss-shaded-netty
+Copyright 2014-2023 The Apache Software Foundation
+
+This project includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+- io.netty:netty-all:4.1.100.Final
+- io.netty:netty-buffer:4.1.100.Final
+- io.netty:netty-codec-dns:4.1.100.Final
+- io.netty:netty-codec-haproxy:4.1.100.Final
+- io.netty:netty-codec-http2:4.1.100.Final
+- io.netty:netty-codec-http:4.1.100.Final
+- io.netty:netty-codec-memcache:4.1.100.Final
+- io.netty:netty-codec-mqtt:4.1.100.Final
+- io.netty:netty-codec-redis:4.1.100.Final
+- io.netty:netty-codec-smtp:4.1.100.Final
+- io.netty:netty-codec-socks:4.1.100.Final
+- io.netty:netty-codec-stomp:4.1.100.Final
+- io.netty:netty-codec-xml:4.1.100.Final
+- io.netty:netty-codec:4.1.100.Final
+- io.netty:netty-common:4.1.100.Final
+- io.netty:netty-handler-proxy:4.1.100.Final
+- io.netty:netty-handler-ssl-ocsp:4.1.100.Final
+- io.netty:netty-handler:4.1.100.Final
+- io.netty:netty-resolver-dns-classes-macos:4.1.100.Final
+- io.netty:netty-resolver-dns-native-macos:osx-aarch_64:4.1.100.Final
+- io.netty:netty-resolver-dns-native-macos:osx-x86_64:4.1.100.Final
+- io.netty:netty-resolver-dns:4.1.100.Final
+- io.netty:netty-resolver:4.1.100.Final
+- io.netty:netty-transport-classes-epoll:4.1.100.Final
+- io.netty:netty-transport-classes-kqueue:4.1.100.Final
+- io.netty:netty-transport-native-epoll:linux-aarch_64:4.1.100.Final
+- io.netty:netty-transport-native-epoll:linux-x86_64:4.1.100.Final
+- io.netty:netty-transport-native-kqueue:osx-aarch_64:4.1.100.Final
+- io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.100.Final
+- io.netty:netty-transport-native-unix-common:4.1.100.Final
+- io.netty:netty-transport-rxtx:4.1.100.Final
+- io.netty:netty-transport-sctp:4.1.100.Final
+- io.netty:netty-transport-udt:4.1.100.Final
+- io.netty:netty-transport:4.1.100.Final
\ No newline at end of file
diff --git a/fluss-shaded-zookeeper-parent/fluss-shaded-zookeeper-38/pom.xml b/fluss-shaded-zookeeper-parent/fluss-shaded-zookeeper-38/pom.xml
new file mode 100644
index 0000000..208e778
--- /dev/null
+++ b/fluss-shaded-zookeeper-parent/fluss-shaded-zookeeper-38/pom.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded-zookeeper-parent</artifactId>
+ <version>1.0-incubating</version>
+ </parent>
+
+ <artifactId>fluss-shaded-zookeeper${fluss.ci.license.suffix}</artifactId>
+ <name>fluss-shaded-zookeeper-3.8</name>
+ <version>${zookeeper.version}-1.0-incubating</version>
+
+ <properties>
+ <zookeeper.version>3.8.3</zookeeper.version>
+ <curator.version>5.4.0</curator.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.zookeeper</groupId>
+ <artifactId>zookeeper</artifactId>
+ <exclusions>
+ <exclusion>
+ <!-- not relevant at runtime -->
+ <groupId>org.apache.yetus</groupId>
+ <artifactId>audience-annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- Fluss distribution provides logging classes -->
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <!-- Zookeeper dependency, that is inexplicably set to provided.
+ Unfortunately not optional, because the ServerMetrics class, again inexplicably,
+ has a hard dependency on it for testing purposes.-->
+ <groupId>io.dropwizard.metrics</groupId>
+ <artifactId>metrics-core</artifactId>
+ <version>4.1.12.1</version>
+ <exclusions>
+ <exclusion>
+ <!-- Fluss distribution provides logging classes -->
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.curator</groupId>
+ <artifactId>curator-recipes</artifactId>
+ <version>${curator.version}</version>
+ <exclusions>
+ <exclusion>
+ <!-- not relevant at runtime -->
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- not relevant at runtime -->
+ <groupId>com.google.errorprone</groupId>
+ <artifactId>error_prone_annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- supposedly not required -->
+ <groupId>com.google.guava</groupId>
+ <artifactId>failureaccess</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- supposedly not required -->
+ <groupId>com.google.guava</groupId>
+ <artifactId>listenablefuture</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- not relevant at runtime -->
+ <groupId>com.google.j2objc</groupId>
+ <artifactId>j2objc-annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- not relevant at runtime -->
+ <groupId>org.checkerframework</groupId>
+ <artifactId>checker-qual</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- not relevant at runtime -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>animal-sniffer-annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- Fluss distribution provides logging classes -->
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.zookeeper</groupId>
+ <artifactId>zookeeper</artifactId>
+ <version>${zookeeper.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-bom</artifactId>
+ <version>${netty.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <!-- For dependency convergence -->
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>${guava.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <profiles>
+ <profile>
+ <id>license-check</id>
+ <properties>
+ <fluss.ci.license.suffix>-38</fluss.ci.license.suffix>
+ </properties>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
diff --git a/fluss-shaded-zookeeper-parent/fluss-shaded-zookeeper-38/src/main/resources/META-INF/NOTICE b/fluss-shaded-zookeeper-parent/fluss-shaded-zookeeper-38/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..a8725fc
--- /dev/null
+++ b/fluss-shaded-zookeeper-parent/fluss-shaded-zookeeper-38/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,25 @@
+fluss-shaded-zookeeper-3
+Copyright 2014-2023 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+- com.google.guava:guava:32.1.3-jre
+- commons-io:commons-io:2.11.0
+- io.dropwizard.metrics:metrics-core:4.1.12.1
+- io.netty:netty-buffer:4.1.100.Final
+- io.netty:netty-codec:4.1.100.Final
+- io.netty:netty-common:4.1.100.Final
+- io.netty:netty-handler:4.1.100.Final
+- io.netty:netty-resolver:4.1.100.Final
+- io.netty:netty-transport-classes-epoll:4.1.100.Final
+- io.netty:netty-transport-native-epoll:4.1.100.Final
+- io.netty:netty-transport-native-unix-common:4.1.100.Final
+- io.netty:netty-transport:4.1.100.Final
+- org.apache.curator:curator-client:5.4.0
+- org.apache.curator:curator-framework:5.4.0
+- org.apache.curator:curator-recipes:5.4.0
+- org.apache.zookeeper:zookeeper-jute:3.8.3
+- org.apache.zookeeper:zookeeper:3.8.3
diff --git a/fluss-shaded-zookeeper-parent/pom.xml b/fluss-shaded-zookeeper-parent/pom.xml
new file mode 100644
index 0000000..1c355d4
--- /dev/null
+++ b/fluss-shaded-zookeeper-parent/pom.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded</artifactId>
+ <version>1.0-incubating</version>
+ </parent>
+
+ <artifactId>fluss-shaded-zookeeper-parent</artifactId>
+ <name>fluss-shaded-zookeeper-parent</name>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>fluss-shaded-zookeeper-38</module>
+ </modules>
+
+ <properties>
+ <shading.zookeeper.prefix>${shading.prefix}.zookeeper3</shading.zookeeper.prefix>
+ <shading.curator.prefix>${shading.prefix}.curator5</shading.curator.prefix>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>shade-fluss</id>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <createDependencyReducedPom>true</createDependencyReducedPom>
+ <dependencyReducedPomLocation>${project.basedir}/target/dependency-reduced-pom.xml</dependencyReducedPomLocation>
+ <artifactSet>
+ <includes>
+ <include>*</include>
+ </includes>
+ </artifactSet>
+ <relocations>
+ <relocation>
+ <pattern>org.apache.zookeeper</pattern>
+ <shadedPattern>${shading.zookeeper.prefix}.org.apache.zookeeper</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>io.netty</pattern>
+ <shadedPattern>${shading.zookeeper.prefix}.io.netty</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>org.apache.jute</pattern>
+ <shadedPattern>${shading.zookeeper.prefix}.org.apache.jute</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.codahale.metrics</pattern>
+ <shadedPattern>${shading.zookeeper.prefix}.com.codahale.metrics</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>org.apache.curator</pattern>
+ <shadedPattern>${shading.curator.prefix}.org.apache.curator</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>com.google</pattern>
+ <shadedPattern>${shading.curator.prefix}.com.google</shadedPattern>
+ </relocation>
+ </relocations>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <!-- Used to resolve variables in the 'version' tag -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>flatten-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..b693245
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,347 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>18</version>
+ </parent>
+
+ <groupId>org.apache.fluss</groupId>
+ <artifactId>fluss-shaded</artifactId>
+ <version>1.0-incubating</version>
+
+ <name>fluss-shaded</name>
+ <packaging>pom</packaging>
+ <url>https://fluss.apache.org/</url>
+ <inceptionYear>2025</inceptionYear>
+
+ <licenses>
+ <license>
+ <name>The Apache Software License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+
+ <description>Fluss is a Flink Unified Streaming Storage.</description>
+
+ <scm>
+ <url>https://github.com/apache/fluss-shaded</url>
+ <connection>git@github.com:apache/fluss-shaded.git</connection>
+ <developerConnection>scm:git:https://github.com/apache/fluss-shaded.git</developerConnection>
+ </scm>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <!-- Allows exec-maven-plugin to resolve snapshot plugin dependencies -->
+ <id>apache.snapshots.https</id>
+ <name>${distMgmtSnapshotsName}</name>
+ <url>${distMgmtSnapshotsUrl}</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <properties>
+ <shading.prefix>org.apache.fluss.shaded</shading.prefix>
+ <netty.version>4.1.104.Final</netty.version>
+ <jackson.version>2.15.3</jackson.version>
+ <guava.version>32.1.3-jre</guava.version>
+ <!-- The license check requires the artifactId to match the directory that the module resides in.
+ This is not the case for several modules in fluss-shaded for legacy reasons.
+ This property can be used by modules to add a suffix to the artifactId to match the directory name on CI
+ when the 'license-check' profile is active. -->
+ <fluss.ci.license.suffix/>
+ </properties>
+
+ <modules>
+ <module>fluss-shaded-guava-32</module>
+ <module>fluss-shaded-netty-4</module>
+ <module>fluss-shaded-jackson-parent</module>
+ <module>fluss-shaded-zookeeper-parent</module>
+ <module>fluss-shaded-arrow-parent</module>
+ </modules>
+
+ <profiles>
+ <profile>
+ <id>release</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <version>1.4</version>
+ <executions>
+ <execution>
+ <id>sign-artifacts</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>enforce-maven</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requireJavaVersion>
+ <version>1.8.0</version>
+ </requireJavaVersion>
+ <requireMavenVersion>
+ <!-- Maven version for releasing should match
+ the Maven version used in CI (and Fluss's main repo) -->
+ <version>[3.8.6]</version>
+ </requireMavenVersion>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>java11</id>
+ <activation>
+ <jdk>11</jdk>
+ </activation>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>3.6.0</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ </profile>
+ <profile>
+ <id>shade-sources</id>
+ <activation>
+ <property>
+ <name>shade-sources</name>
+ </property>
+ </activation>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <configuration combine.children="append">
+ <createSourcesJar>true</createSourcesJar>
+ <shadeSourcesContent>true</shadeSourcesContent>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ </profile>
+ </profiles>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>3.2.0</version>
+ <configuration>
+ <filters combine.children="append">
+ <filter>
+ <artifact>*</artifact>
+ <excludes>
+ <exclude>META-INF/maven/**</exclude>
+ </excludes>
+ </filter>
+ </filters>
+ <transformers>
+ <!-- The service transformer is needed to merge META-INF/services files -->
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+ <!-- The ApacheNoticeResourceTransformer collects and aggregates NOTICE files -->
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
+ <projectName>Apache Fluss Shaded</projectName>
+ <encoding>UTF-8</encoding>
+ </transformer>
+ </transformers>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <!-- Used to resolve variables in the 'version' tag -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>flatten-maven-plugin</artifactId>
+ <version>1.2.7</version>
+ <executions>
+ <execution>
+ <id>flatten</id>
+ <phase>package</phase>
+ <goals>
+ <goal>flatten</goal>
+ </goals>
+ <configuration>
+ <!-- The least invasive mode that effectively only resolves variables -->
+ <flattenMode>resolveCiFriendliesOnly</flattenMode>
+ <!-- By default the resulting pom is written into the modules base directory to work around MNG-6405.
+ We aren't affected, so we use the proper location. -->
+ <outputDirectory>${project.build.directory}</outputDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>flatten.clean</id>
+ <phase>clean</phase>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>dependency-convergence</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <dependencyConvergence/>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>0.11</version><!--$NO-MVN-MAN-VER$-->
+ <inherited>false</inherited>
+ <executions>
+ <execution>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <excludeSubProjects>false</excludeSubProjects>
+ <numUnapprovedLicenses>0</numUnapprovedLicenses>
+ <licenses>
+ <!-- Enforce this license:
+ 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.
+ -->
+ <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+ <licenseFamilyCategory>AL2</licenseFamilyCategory>
+ <licenseFamilyName>Apache License 2.0</licenseFamilyName>
+ <notes/>
+ <patterns>
+ <pattern>Licensed to the Apache Software Foundation (ASF) under one</pattern>
+ </patterns>
+ </license>
+ </licenses>
+ <licenseFamilies>
+ <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
+ <familyName>Apache License 2.0</familyName>
+ </licenseFamily>
+ </licenseFamilies>
+ <excludes>
+ <!-- GitHub infrastructure -->
+ <exclude>.asf.yaml</exclude>
+ <exclude>.github/**</exclude>
+ <!-- Build files -->
+ <exclude>**/*.iml</exclude>
+ <!-- Generated content -->
+ <exclude>**/target/**</exclude>
+ <!-- the licenses that are re-bundled -->
+ <exclude>**/licenses/LICENSE.*</exclude>
+ <!-- release files -->
+ <exclude>**/release/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>3.1.0</version>
+ <inherited>false</inherited>
+ <executions>
+ <execution>
+ <id>check-license</id>
+ <!-- manually called -->
+ <phase>none</phase>
+ <goals>
+ <goal>java</goal>
+ </goals>
+ <configuration>
+ <mainClass>org.apache.flink.tools.ci.licensecheck.LicenseChecker</mainClass>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <includePluginDependencies>true</includePluginDependencies>
+ <includeProjectDependencies>false</includeProjectDependencies>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-ci-tools</artifactId>
+ <version>1.18.0</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/tools/ci/log4j.properties b/tools/ci/log4j.properties
new file mode 100644
index 0000000..00c3633
--- /dev/null
+++ b/tools/ci/log4j.properties
@@ -0,0 +1,43 @@
+################################################################################
+# 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.
+################################################################################
+
+rootLogger.level = INFO
+rootLogger.appenderRef.out.ref = ConsoleAppender
+
+# -----------------------------------------------------------------------------
+# Console (use 'console')
+# -----------------------------------------------------------------------------
+
+appender.console.name = ConsoleAppender
+appender.console.type = CONSOLE
+appender.console.layout.type = PatternLayout
+appender.console.layout.pattern = %d{HH:mm:ss,SSS} [%20t] %-5p %-60c %x - %m%n
+
+# -----------------------------------------------------------------------------
+# File (use 'file')
+# -----------------------------------------------------------------------------
+appender.file.name = FileAppender
+appender.file.type = FILE
+appender.file.fileName = ${sys:log.dir}/mvn-${sys:mvn.forkNumber:-output}.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d{HH:mm:ss,SSS} [%20t] %-5p %-60c %x - %m%n
+appender.file.createOnDemand = true
+
+# suppress the irrelevant (wrong) warnings from the netty channel handler
+logger.netty.name = org.jboss.netty.channel.DefaultChannelPipeline
+logger.netty.level = ERROR
diff --git a/tools/releasing/create_release_branch.sh b/tools/releasing/create_release_branch.sh
new file mode 100755
index 0000000..81fe911
--- /dev/null
+++ b/tools/releasing/create_release_branch.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+
+#
+# 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.
+#
+
+##
+## Variables with defaults (if not overwritten by environment)
+##
+RELEASE_CANDIDATE=${RELEASE_CANDIDATE:-none}
+MVN=${MVN:-mvn}
+
+# fail immediately
+set -o errexit
+set -o nounset
+# print command before executing
+set -o xtrace
+
+CURR_DIR=`pwd`
+if [[ `basename ${CURR_DIR}` != "tools" ]] ; then
+ echo "You have to call the script from the tools/ dir"
+ exit 1
+fi
+
+###########################
+
+if [ -z "${RELEASE_VERSION}" ]; then
+ echo "RELEASE_VERSION is unset"
+ exit 1
+fi
+
+cd ..
+
+target_branch=release-${RELEASE_VERSION}
+if [ "${RELEASE_CANDIDATE}" != "none" ]; then
+ target_branch=${target_branch}-rc${RELEASE_CANDIDATE}
+fi
+
+git checkout -b ${target_branch}
+
+RELEASE_HASH=`git rev-parse HEAD`
+echo "Echo created release hash $RELEASE_HASH"
+
+echo "Done. Don't forget to create the release tag on GitHub and push the changes."
diff --git a/tools/releasing/create_source_release.sh b/tools/releasing/create_source_release.sh
new file mode 100755
index 0000000..082a0a1
--- /dev/null
+++ b/tools/releasing/create_source_release.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+
+#
+# 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.
+#
+
+##
+## Variables with defaults (if not overwritten by environment)
+##
+MVN=${MVN:-mvn}
+
+# fail immediately
+set -o errexit
+set -o nounset
+# print command before executing
+set -o xtrace
+
+CURR_DIR=`pwd`
+if [[ `basename $CURR_DIR` != "tools" ]] ; then
+ echo "You have to call the script from the tools/ dir"
+ exit 1
+fi
+
+if [ "$(uname)" == "Darwin" ]; then
+ SHASUM="shasum -a 512"
+else
+ SHASUM="sha512sum"
+fi
+
+###########################
+
+RELEASE_VERSION=${RELEASE_VERSION}
+
+if [ -z "${RELEASE_VERSION}" ]; then
+ echo "RELEASE_VERSION is unset"
+ exit 1
+fi
+
+rm -rf release
+mkdir release
+cd ..
+
+echo "Creating source package"
+
+# create a temporary git clone to ensure that we have a pristine source release
+git clone . tools/release/fluss-shaded-tmp-clone
+cd tools/release/fluss-shaded-tmp-clone
+
+trap 'cd ${CURR_DIR};rm -rf release' ERR
+
+rsync -a \
+ --exclude ".git" --exclude ".gitignore" --exclude ".gitattributes" \
+ --exclude ".asf.yaml" --exclude ".github" \
+ --exclude "deploysettings.xml" --exclude "target" \
+ --exclude ".idea" --exclude "*.iml" --exclude ".DS_Store" \
+ . fluss-shaded-$RELEASE_VERSION
+
+tar czf fluss-shaded-${RELEASE_VERSION}-src.tgz fluss-shaded-$RELEASE_VERSION
+gpg --armor --detach-sig fluss-shaded-$RELEASE_VERSION-src.tgz
+$SHASUM fluss-shaded-$RELEASE_VERSION-src.tgz > fluss-shaded-$RELEASE_VERSION-src.tgz.sha512
+
+mv fluss-shaded-$RELEASE_VERSION-src.* ../
+cd ..
+rm -rf fluss-shaded-tmp-clone
diff --git a/tools/releasing/deploy_staging_jars.sh b/tools/releasing/deploy_staging_jars.sh
new file mode 100755
index 0000000..4584346
--- /dev/null
+++ b/tools/releasing/deploy_staging_jars.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+#
+# 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.
+#
+
+##
+## Variables with defaults (if not overwritten by environment)
+##
+MVN=${MVN:-mvn}
+
+# fail immediately
+set -o errexit
+set -o nounset
+# print command before executing
+set -o xtrace
+
+CURR_DIR=`pwd`
+if [[ `basename $CURR_DIR` != "tools" ]] ; then
+ echo "You have to call the script from the tools/ dir"
+ exit 1
+fi
+
+###########################
+COMMON_OPTIONS="-Prelease -DskipTests -DretryFailedDeploymentCount=10 "
+
+cd ..
+
+echo "Deploying to repository.apache.org"
+$MVN clean deploy $COMMON_OPTIONS
diff --git a/tools/releasing/update_branch_version.sh b/tools/releasing/update_branch_version.sh
new file mode 100755
index 0000000..5c4cba3
--- /dev/null
+++ b/tools/releasing/update_branch_version.sh
@@ -0,0 +1,61 @@
+#!/usr/bin/env bash
+
+#
+# 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.
+#
+
+##
+## Variables with defaults (if not overwritten by environment)
+##
+MVN=${MVN:-mvn}
+
+# fail immediately
+set -o errexit
+set -o nounset
+# print command before executing
+set -o xtrace
+
+CURR_DIR=`pwd`
+if [[ `basename $CURR_DIR` != "tools" ]] ; then
+ echo "You have to call the script from the tools/ dir"
+ exit 1
+fi
+
+###########################
+
+OLD_VERSION=${OLD_VERSION}
+NEW_VERSION=${NEW_VERSION}
+
+
+if [ -z "${OLD_VERSION}" ]; then
+ echo "OLD_VERSION is unset"
+ exit 1
+fi
+
+if [ -z "${NEW_VERSION}" ]; then
+ echo "NEW_VERSION is unset"
+ exit 1
+fi
+
+cd ..
+
+#change version in all pom files
+find . -name 'pom.xml' -type f -exec perl -pi -e 's#<version>'$OLD_VERSION'</version>#<version>'$NEW_VERSION'</version>#; s#-'$OLD_VERSION'</version>#-'$NEW_VERSION'</version>#' {} \;
+
+git commit -am "Update version to $NEW_VERSION"
+
+echo "Don't forget to push the change."
diff --git a/tools/update_notice_year.sh b/tools/update_notice_year.sh
new file mode 100755
index 0000000..ba30789
--- /dev/null
+++ b/tools/update_notice_year.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+################################################################################
+# 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.
+################################################################################
+
+# This script updates the year in all NOTICE files
+
+set -Eeuo pipefail
+
+FLUSS_SHADED_DIR=${1:-}
+
+USAGE="update_notice_year <FLUSS_SHADED_DIR>"
+
+if [[ -z "${FLUSS_SHADED_DIR}" || "${FLUSS_SHADED_DIR}" = "-h" ]]; then
+ echo "${USAGE}"
+ exit 0
+fi
+
+NEW_YEAR=`date +'%Y'`
+
+for path in $(find "${FLUSS_SHADED_DIR}" -name "NOTICE*"); do
+ echo "Updating: ${path}"
+ sed "s/Copyright 2025-.* The Apache Software Foundation/Copyright 2025-${NEW_YEAR} The Apache Software Foundation/" "${path}" > "${path}_new"
+ mv "${path}_new" "${path}"
+done
+
+echo "The script is just a helper tool. Please verify the performed changes manually again!"
\ No newline at end of file