diff --git a/.github/workflows/check-java-bridge-licensing.yml b/.github/workflows/check-java-bridge-licensing.yml new file mode 100644 index 0000000..1072532 --- /dev/null +++ b/.github/workflows/check-java-bridge-licensing.yml @@ -0,0 +1,55 @@ +# 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: Check Java Bridge Licensing + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.number || github.run_id }} + cancel-in-progress: true + +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/paimon-validation-deployment" + + steps: + - uses: actions/checkout@v2 + + - name: Set JDK + uses: actions/setup-java@v2 + with: + java-version: 8 + distribution: 'adopt' + - name: Build + run: | + set -o pipefail + cd paimon_python_java/paimon-python-java-bridge + mvn clean deploy ${{ env.MVN_COMMON_OPTIONS }} -DskipTests \ + -DaltDeploymentRepository=validation_repository::default::file:${{ env.MVN_VALIDATION_DIR }} \ + | tee ${{ env.MVN_BUILD_OUTPUT_FILE }} + + - name: Check licensing + run: | + cd paimon_python_java/paimon-python-java-bridge + mvn ${{ env.MVN_COMMON_OPTIONS }} exec:java@check-licensing -N \ + -Dexec.args="${{ env.MVN_BUILD_OUTPUT_FILE }} $(pwd) ${{ env.MVN_VALIDATION_DIR }}" \ + -Dlog4j.configurationFile=file://$(pwd)/tools/ci/log4j.properties + env: + MAVEN_OPTS: -Xmx4096m diff --git a/LICENSE b/LICENSE index 261eeb9..f51b94d 100644 --- a/LICENSE +++ b/LICENSE @@ -199,3 +199,23 @@ 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 product bundles various third-party components under other open source licenses. +This section summarizes those components and their licenses. See licenses/ +for text of these licenses. + +Apache Software Foundation License 2.0 +-------------------------------------- + +paimon_python_java/paimon-python-java-bridge/src/main/java/org/apache/paimon/python/FileLock.java +paimon_python_java/paimon-python-java-bridge/src/main/java/org/apache/paimon/python/NetUtils +paimon_python_java/paimon-python-java-bridge/src/main/java/org/apache/paimon/python/PythonEnvUtils +paimon_python_java/paimon-python-java-bridge/src/main/java/org/apache/paimon/python/PythonGatewayServer + +paimon_python_java/gateway_server.py +paimon_python_java/java_gateway.py +paimon_python_java/util/exceptions.py + +from http://flink.apache.org/ version 1.20.0 diff --git a/NOTICE b/NOTICE index b666c9f..81978c0 100644 --- a/NOTICE +++ b/NOTICE @@ -2,4 +2,269 @@ Apache Paimon Python Copyright 2024 The Apache Software Foundation This product includes software developed at -The Apache Software Foundation (http://www.apache.org/). \ No newline at end of file +The Apache Software Foundation (http://www.apache.org/). + + +This project bundles the following dependencies under the under the MIT license +- org.slf4j:slf4j-api:1.7.32 + +This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) +- org.apache.logging.log4j:log4j-1.2-api:2.17.1 +- org.apache.arrow:arrow-vector:14.0.0 +- org.apache.arrow:arrow-format:14.0.0 +- org.apache.arrow:arrow-memory-core:14.0.0 +- org.apache.arrow:arrow-memory-unsafe:14.0.0 +- org.apache.arrow:arrow-c-data:14.0.0 +- com.google.flatbuffers:flatbuffers-java:1.12.0 + +This project bundles the following dependencies under the 2-Clause BSD License +- net.sf.py4j:py4j:0.10.9.7 + + +Apache Paimon-shade (incubating) +Copyright 2023-2024 The Apache Software Foundation + +Paimon : Bundle +Copyright 2023-2024 The Apache Software Foundation + +paimon-common +Copyright 2023-2024 The Apache Software Foundation + +This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) +- org.roaringbitmap:RoaringBitmap:1.0.5 +- org.apache.datasketches:datasketches-java:4.2.0 +- org.apache.datasketches:datasketches-memory:2.2.0 + +This project bundles the following dependencies under the BSD 3-clause license. +You find them under licenses/LICENSE.antlr-runtime and licenses/LICENSE.janino. + +- org.antlr:antlr4-runtime:4.9.3 +- org.codehaus.janino:janino:3.0.11 +- org.codehaus.janino:commons-compiler:3.0.11 +- it.unimi.dsi:fastutil:8.5.12 +- net.openhft:zero-allocation-hashing:0.16 +- com.github.davidmoten:hilbert-curve:0.2.2 +- com.github.davidmoten:guava-mini:0.1.3 + +datasketches-java +Copyright 2015-2022 The Apache Software Foundation + +Apache DataSketches Memory +Copyright 2022 - The Apache Software Foundation + +Copyright 2015-2018 Yahoo Inc. +Copyright 2019-2020 Verizon Media +Copyright 2021 Yahoo Inc. + +Prior to moving to ASF, the software for this project was developed at +Yahoo Inc. (https://developer.yahoo.com). + +Paimon : Core +Copyright 2023-2024 The Apache Software Foundation + +Paimon : Code Gen Loader +Copyright 2023-2024 The Apache Software Foundation + +paimon-format +Copyright 2023-2024 The Apache Software Foundation + +This project bundles the following dependencies under the Apache Software License 2.0. (http://www.apache.org/licenses/LICENSE-2.0.txt) + +- org.apache.orc:orc-core:1.9.2 +- org.apache.orc:orc-shims:1.9.2 +- org.apache.hive:hive-storage-api:2.8.1 +- io.airlift:aircompressor:0.27 +- commons-lang:commons-lang:2.6 +- org.apache.commons:commons-lang3:3.12.0 + +- org.apache.avro:avro:1.11.3 +- com.fasterxml.jackson.core:jackson-core:2.14.2 +- com.fasterxml.jackson.core:jackson-databind:2.14.2 +- com.fasterxml.jackson.core:jackson-annotations:2.14.2 +- org.apache.commons:commons-compress:1.22 + +- org.apache.parquet:parquet-hadoop:1.13.1 +- org.apache.parquet:parquet-column:1.13.1 +- org.apache.parquet:parquet-common:1.13.1 +- org.apache.parquet:parquet-encoding:1.13.1 +- org.apache.parquet:parquet-format-structures:1.13.1 +- org.apache.parquet:parquet-jackson:1.13.1 +- commons-pool:commons-pool:1.6 + +This project bundles the following dependencies under the BSD license. +You find it under licenses/LICENSE.protobuf, licenses/LICENSE.zstd-jni +and licenses/LICENSE.threeten-extra + +- com.google.protobuf:protobuf-java:3.19.6 +- com.github.luben:zstd-jni:1.5.5-11 +- org.threeten:threeten-extra:1.7.1 + +# Jackson JSON processor + +Jackson is a high-performance, Free/Open Source JSON processing library. +It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has +been in development since 2007. +It is currently developed by a community of developers. + +## Licensing + +Jackson 2.x core and extension components are licensed under Apache License 2.0 +To find the details that apply to this artifact see the accompanying LICENSE file. + +## Credits + +A list of contributors may be found from CREDITS(-2.x) file, which is included +in some artifacts (usually source distributions); but is always available +from the source code management (SCM) system project uses. + +Apache Commons Lang +Copyright 2001-2011 The Apache Software Foundation + +This product includes software developed by +The Apache Software Foundation (http://www.apache.org/). + +ORC Core +Copyright 2013-2023 The Apache Software Foundation + +ORC Shims +Copyright 2013-2023 The Apache Software Foundation + +Apache Commons Lang +Copyright 2001-2021 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (https://www.apache.org/). + +Hive Storage API +Copyright 2020 The Apache Software Foundation + +Apache Avro +Copyright 2009-2023 The Apache Software Foundation + +Apache Commons Compress +Copyright 2002-2022 The Apache Software Foundation + +--- + +The files in the package org.apache.commons.compress.archivers.sevenz +were derived from the LZMA SDK, version 9.20 (C/ and CPP/7zip/), +which has been placed in the public domain: + +"LZMA SDK is placed in the public domain." (http://www.7-zip.org/sdk.html) + +The test file lbzip2_32767.bz2 has been copied from libbzip2's source +repository: + +This program, "bzip2", the associated library "libbzip2", and all +documentation, are copyright (C) 1996-2019 Julian R Seward. All +rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + +3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + +4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Julian Seward, jseward@acm.org + +Apache Commons Pool +Copyright 2001-2012 The Apache Software Foundation + +Paimon : Hive Catalog +Copyright 2023-2024 The Apache Software Foundation + +Paimon : Hive Common +Copyright 2023-2024 The Apache Software Foundation + +paimon-shade-jackson-2 +Copyright 2023-2024 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.14.2 +- com.fasterxml.jackson.core:jackson-core:2.14.2 +- com.fasterxml.jackson.core:jackson-databind:2.14.2 +- com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.14.2 +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.14.2 +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.14.2 +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2 +- org.yaml:snakeyaml:1.33 + +Jackson is a high-performance, Free/Open Source JSON processing library. +It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has +been in development since 2007. +It is currently developed by a community of developers, as well as supported +commercially by FasterXML.com. + +Jackson core and extension components may be licensed under different licenses. +To find the details that apply to this artifact see the accompanying LICENSE file. +For more information, including possible other licensing options, contact +FasterXML.com (http://fasterxml.com). + +A list of contributors may be found from CREDITS file, which is included +in some artifacts (usually source distributions); but is always available +from the source code management (SCM) system project uses. + +paimon-shade-guava-30 +Copyright 2023-2024 The Apache Software Foundation + +- com.google.guava:guava:30.1.1-jre +- com.google.guava:failureaccess:1.0.1 + +paimon-shade-caffeine-2 +Copyright 2023-2024 The Apache Software Foundation + +- com.github.ben-manes.caffeine:caffeine:2.9.3 + +Paimon : Arrow +Copyright 2023-2024 The Apache Software Foundation + +Apache Log4j 1.x Compatibility API +Copyright 1999-1969 The Apache Software Foundation + +Arrow Vectors +Copyright 2023 The Apache Software Foundation + +Arrow Format +Copyright 2023 The Apache Software Foundation + +Arrow Memory - Core +Copyright 2023 The Apache Software Foundation + +Arrow Memory - Unsafe +Copyright 2023 The Apache Software Foundation + +Arrow Java C Data Interface +Copyright 2023 The Apache Software Foundation + +Apache Flink +Copyright 2014-2024 The Apache Software Foundation + diff --git a/paimon_python_java/paimon-python-java-bridge/pom.xml b/paimon_python_java/paimon-python-java-bridge/pom.xml index 52bc061..dd7f7f2 100644 --- a/paimon_python_java/paimon-python-java-bridge/pom.xml +++ b/paimon_python_java/paimon-python-java-bridge/pom.xml @@ -23,10 +23,11 @@ org.apache.paimon paimon-python-java-bridge - 0.1-SNAPSHOT + 0.9-SNAPSHOT Paimon : Python-Java Bridge jar + 2024 0.9.0 @@ -37,6 +38,7 @@ package 14.0.0 1.8 + 0.9.0 @@ -132,21 +134,21 @@ - org.apache.maven.plugins - maven-compiler-plugin - 3.8.0 - - ${target.java.version} - ${target.java.version} - - false - - - -Xpkginfo:always - -Xlint:deprecation - - - + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + ${target.java.version} + ${target.java.version} + + false + + + -Xpkginfo:always + -Xlint:deprecation + + + org.apache.maven.plugins @@ -159,6 +161,9 @@ shade + false + false + true org.apache.paimon:paimon-bundle @@ -174,6 +179,18 @@ net.sf.py4j:py4j + + + + + + Apache Paimon + ${project.inceptionYear} + UTF-8 + + com.fasterxml.jackson @@ -184,7 +201,54 @@ + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${project.basedir} + + dependency-reduced-pom.xml + + + + + - + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + false + + + check-license + + none + + java + + + + + org.apache.paimon.tools.ci.licensecheck.LicenseChecker + true + false + + + + org.apache.paimon + paimon-ci-tools + ${paimon.ci.tools.version} + + + + + + diff --git a/paimon_python_java/paimon-python-java-bridge/src/main/resources/META-INF/NOTICE b/paimon_python_java/paimon-python-java-bridge/src/main/resources/META-INF/NOTICE new file mode 100644 index 0000000..db5800c --- /dev/null +++ b/paimon_python_java/paimon-python-java-bridge/src/main/resources/META-INF/NOTICE @@ -0,0 +1,21 @@ +paimon-python-java-bridge +Copyright 2024 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 under the MIT license +- org.slf4j:slf4j-api:1.7.32 + +This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) +- org.apache.logging.log4j:log4j-1.2-api:2.17.1 +- org.apache.arrow:arrow-vector:14.0.0 +- org.apache.arrow:arrow-format:14.0.0 +- org.apache.arrow:arrow-memory-core:14.0.0 +- org.apache.arrow:arrow-memory-unsafe:14.0.0 +- org.apache.arrow:arrow-c-data:14.0.0 +- com.google.flatbuffers:flatbuffers-java:1.12.0 + +This project bundles the following dependencies under the 2-Clause BSD License +- net.sf.py4j:py4j:0.10.9.7 + diff --git a/paimon_python_java/paimon-python-java-bridge/tools/ci/log4j.properties b/paimon_python_java/paimon-python-java-bridge/tools/ci/log4j.properties new file mode 100644 index 0000000..7daf1c3 --- /dev/null +++ b/paimon_python_java/paimon-python-java-bridge/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