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 <[email protected]> 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: [email protected] + issues: [email protected] + pullrequests: [email protected] + jobs: [email protected] + discussions: [email protected] \ 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/[email protected] + 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>[email protected]: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
