diff --git a/.github/workflows/ci-build-java8.yml b/.github/workflows/ci-build-java8.yml index aa81c24..3c0f7b3 100644 --- a/.github/workflows/ci-build-java8.yml +++ b/.github/workflows/ci-build-java8.yml @@ -9,6 +9,8 @@ on: jobs: java-8-compatibility: runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout the repository uses: actions/checkout@v4 @@ -22,15 +24,5 @@ jobs: 8 17 cache: "maven" - - name: Cache local Maven repository - uses: actions/cache@v3 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - name: Run maven compile with Java 8 - run: | - mvn --batch-mode --update-snapshots -Dtoolchain.version=8 clean compile \ - -DtrimStackTrace=false \ - -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + run: mvn --batch-mode -Djava.version=8 clean compile diff --git a/.github/workflows/ci-build-next-java.yml b/.github/workflows/ci-build-next-java.yml index 3f95694..ca4a32b 100644 --- a/.github/workflows/ci-build-next-java.yml +++ b/.github/workflows/ci-build-next-java.yml @@ -6,14 +6,13 @@ on: pull_request: jobs: - java-17-compatibility: + next-java-compatibility: runs-on: ubuntu-latest defaults: run: shell: "bash" permissions: contents: read - checks: write # Allow scacap/action-surefire-report concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -29,13 +28,4 @@ jobs: java-version: 17 cache: "maven" - name: Run tests and build with Maven - run: | - mvn --batch-mode --update-snapshots clean javadoc:javadoc \ - -DtrimStackTrace=false -Djava.version=17 -Dtoolchain.version=17 \ - -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn - - name: Publish Test Report for Java 17 - uses: scacap/action-surefire-report@v1 - if: ${{ always() && github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' }} - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - fail_if_no_tests: false + run: mvn --batch-mode clean javadoc:javadoc -Djava.version=17 diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 9449f10..2609e1b 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -25,12 +25,12 @@ jobs: fail-fast: false matrix: exasol_db_version: [ - 8.26.0, - 7.1.29 + 8.32.0, + 7.1.30 ] env: { - DEFAULT_EXASOL_DB_VERSION: 8.26.0 + DEFAULT_EXASOL_DB_VERSION: 8.32.0 } steps: - name: Free Disk Space @@ -50,7 +50,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: temurin - java-version: | + java-version: |- 11 17 cache: maven @@ -127,7 +127,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: temurin - java-version: | + java-version: |- 11 17 cache: maven diff --git a/.github/workflows/dependencies_check.yml b/.github/workflows/dependencies_check.yml index 9c2365c..02c5aa0 100644 --- a/.github/workflows/dependencies_check.yml +++ b/.github/workflows/dependencies_check.yml @@ -35,7 +35,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: temurin - java-version: | + java-version: |- 11 17 cache: maven diff --git a/.github/workflows/dependencies_update.yml b/.github/workflows/dependencies_update.yml index 0fa7180..c901506 100644 --- a/.github/workflows/dependencies_update.yml +++ b/.github/workflows/dependencies_update.yml @@ -35,7 +35,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: temurin - java-version: | + java-version: |- 11 17 cache: maven diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2a8bbf7..750fe45 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,7 +52,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: temurin - java-version: | + java-version: |- 11 17 cache: maven @@ -67,7 +67,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: temurin - java-version: | + java-version: |- 11 17 cache: maven diff --git a/.project-keeper.yml b/.project-keeper.yml index 6f96f2d..547ed40 100644 --- a/.project-keeper.yml +++ b/.project-keeper.yml @@ -9,8 +9,8 @@ build: runnerOs: ubuntu-20.04 freeDiskSpace: false exasolDbVersions: - - "8.26.0" # 8.29.1 not yet supported by exasol-testcontainers - - "7.1.29" + - "8.32.0" + - "7.1.30" excludes: # Only run javadoc as glue-connector cannot be built with java version > 11 currently - "E-PK-CORE-18: Outdated content: '.github/workflows/ci-build-next-java.yml'" diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 3adc1fb..43365b0 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,22 +1,27 @@ eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnull=javax.annotation.Nonnull org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=javax.annotation.ParametersAreNonnullByDefault org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.notowning=org.eclipse.jdt.annotation.NotOwning +org.eclipse.jdt.core.compiler.annotation.nullable=javax.annotation.Nullable org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled +org.eclipse.jdt.core.compiler.annotation.owning=org.eclipse.jdt.annotation.Owning +org.eclipse.jdt.core.compiler.annotation.resourceanalysis=disabled org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.methodParameters=generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.compliance=11 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.APILeak=warning +org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore @@ -39,8 +44,10 @@ org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompatibleOwningContract=warning org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.insufficientResourceAnalysis=warning org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore @@ -56,15 +63,15 @@ org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=warning org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=warning +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=ignore org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning @@ -78,7 +85,8 @@ org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning @@ -113,7 +121,7 @@ org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning org.eclipse.jdt.core.compiler.processAnnotations=disabled org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 +org.eclipse.jdt.core.compiler.source=11 org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs index 1add06a..54d02ac 100644 --- a/.settings/org.eclipse.jdt.ui.prefs +++ b/.settings/org.eclipse.jdt.ui.prefs @@ -76,6 +76,7 @@ sp_cleanup.add_missing_nls_tags=false sp_cleanup.add_missing_override_annotations=true sp_cleanup.add_missing_override_annotations_interface_methods=true sp_cleanup.add_serial_version_id=false +sp_cleanup.also_simplify_lambda=false sp_cleanup.always_use_blocks=true sp_cleanup.always_use_parentheses_in_expressions=true sp_cleanup.always_use_this_for_non_static_field_access=true @@ -130,6 +131,7 @@ sp_cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false sp_cleanup.operand_factorization=false sp_cleanup.organize_imports=true sp_cleanup.overridden_assignment=false +sp_cleanup.overridden_assignment_move_decl=false sp_cleanup.plain_replacement=false sp_cleanup.precompile_regex=false sp_cleanup.primitive_comparison=false @@ -159,10 +161,12 @@ sp_cleanup.remove_unnecessary_casts=true sp_cleanup.remove_unnecessary_nls_tags=true sp_cleanup.remove_unused_imports=true sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_method_parameters=false sp_cleanup.remove_unused_private_fields=true sp_cleanup.remove_unused_private_members=false sp_cleanup.remove_unused_private_methods=true sp_cleanup.remove_unused_private_types=true +sp_cleanup.replace_deprecated_calls=false sp_cleanup.return_expression=false sp_cleanup.simplify_lambda_expression_and_method_ref=false sp_cleanup.single_used_field=false @@ -174,6 +178,8 @@ sp_cleanup.strictly_equal_or_different=false sp_cleanup.stringbuffer_to_stringbuilder=false sp_cleanup.stringbuilder=false sp_cleanup.stringbuilder_for_local_vars=false +sp_cleanup.stringconcat_stringbuffer_stringbuilder=false +sp_cleanup.stringconcat_to_textblock=false sp_cleanup.substring=false sp_cleanup.switch=false sp_cleanup.system_property=false diff --git a/.vscode/settings.json b/.vscode/settings.json index 4b67841..1ccaabb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,5 +13,10 @@ "vmArgs": [ "-Djava.util.logging.config.file=src/test/resources/logging.properties" ] + }, + "java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx12G -Xms100m", + "sonarlint.connectedMode.project": { + "connectionId": "exasol", + "projectKey": "com.exasol:glue-connector" } } diff --git a/dependencies.md b/dependencies.md index 0acc2ef..38003a1 100644 --- a/dependencies.md +++ b/dependencies.md @@ -7,147 +7,161 @@ | ------------------------------------------- | --------------------------------------------- | | [Spark Project SQL][0] | [Apache-2.0][1] | | [Apache ZooKeeper - Server][2] | [Apache License, Version 2.0][3] | -| [Apache Avro][4] | [Apache-2.0][3] | -| [Apache Commons Compress][5] | [Apache-2.0][3] | -| [snappy-java][6] | [Apache-2.0][7] | +| [Netty/Handler][4] | [Apache License, Version 2.0][5] | +| [Apache Avro][6] | [Apache-2.0][3] | +| [Apache Commons Compress][7] | [Apache-2.0][3] | +| [snappy-java][8] | [Apache-2.0][9] | | Apache Hadoop Client Aggregator | [Apache-2.0][3] | -| [dnsjava][8] | [BSD-3-Clause][9] | -| [Apache Commons Configuration][10] | [Apache-2.0][3] | -| [aircompressor][11] | [Apache License 2.0][7] | -| [Nimbus JOSE+JWT][12] | [The Apache Software License, Version 2.0][3] | -| [janino][13] | [BSD-3-Clause][14] | -| [commons-compiler][15] | [BSD-3-Clause][14] | +| [dnsjava][10] | [BSD-3-Clause][11] | +| [Apache Commons Configuration][12] | [Apache-2.0][3] | +| [aircompressor][13] | [Apache License 2.0][9] | +| [Nimbus JOSE+JWT][14] | [The Apache Software License, Version 2.0][3] | +| [janino][15] | [BSD-3-Clause][16] | +| [commons-compiler][17] | [BSD-3-Clause][16] | | Apache Hadoop Amazon Web Services support | [Apache-2.0][3] | -| [ParaNamer Core][16] | [BSD][17] | -| [Guava: Google Core Libraries for Java][18] | [Apache License, Version 2.0][19] | -| [jackson-databind][20] | [The Apache Software License, Version 2.0][3] | -| [AWS Java SDK :: Services :: Amazon S3][21] | [Apache License, Version 2.0][22] | -| [Exasol JDBC Driver][23] | [EXAClient License][24] | -| [Exasol SQL Statement Builder][25] | [MIT License][26] | -| [spark-connector-common-java][27] | [MIT License][28] | -| [error-reporting-java8][29] | [MIT License][30] | +| [ParaNamer Core][18] | [BSD][19] | +| [Guava: Google Core Libraries for Java][20] | [Apache License, Version 2.0][21] | +| [jackson-databind][22] | [The Apache Software License, Version 2.0][3] | +| [AWS Java SDK :: Services :: Amazon S3][23] | [Apache License, Version 2.0][24] | +| [Exasol JDBC Driver][25] | [EXAClient License][26] | +| [Exasol SQL Statement Builder][27] | [MIT License][28] | +| [spark-connector-common-java][29] | [MIT License][30] | +| [error-reporting-java8][31] | [MIT License][32] | ## Test Dependencies | Dependency | License | | ----------------------------------------------- | ------------------------------------ | -| [mockito-core][31] | [MIT][32] | -| [mockito-junit-jupiter][31] | [MIT][32] | -| [JUnit Jupiter (Aggregator)][33] | [Eclipse Public License v2.0][34] | -| [JUnit Jupiter API][33] | [Eclipse Public License v2.0][34] | -| [Hamcrest][35] | [BSD License 3][36] | -| [Testcontainers :: JUnit Jupiter Extension][37] | [MIT][38] | -| [Testcontainers :: Localstack][37] | [MIT][38] | -| [AWS Java SDK for Amazon S3][21] | [Apache License, Version 2.0][22] | -| AWSGlueETL | [Amazon Software License][39] | -| [snappy][40] | [Apache License 2.0][1] | -| [Ion Java][41] | [The Apache License, Version 2.0][3] | -| [Test containers for Exasol on Docker][42] | [MIT License][43] | -| [Test Database Builder for Java][44] | [MIT License][45] | -| [Test utilities for `java.util.logging`][46] | [MIT][32] | -| [Matcher for SQL Result Sets][47] | [MIT License][48] | -| [EqualsVerifier \| release normal jar][49] | [Apache License, Version 2.0][3] | -| [Apache Log4j API][50] | [Apache-2.0][3] | -| [Apache Log4j Core][51] | [Apache-2.0][3] | +| [mockito-core][33] | [MIT][34] | +| [mockito-junit-jupiter][33] | [MIT][34] | +| [JUnit Jupiter (Aggregator)][35] | [Eclipse Public License v2.0][36] | +| [JUnit Jupiter API][35] | [Eclipse Public License v2.0][36] | +| [Hamcrest][37] | [BSD-3-Clause][38] | +| [Testcontainers :: JUnit Jupiter Extension][39] | [MIT][40] | +| [Testcontainers :: Localstack][39] | [MIT][40] | +| [AWS Java SDK for Amazon S3][23] | [Apache License, Version 2.0][24] | +| AWSGlueETL | [Amazon Software License][41] | +| [snappy][42] | [Apache License 2.0][1] | +| [Ion Java][43] | [The Apache License, Version 2.0][3] | +| [Test containers for Exasol on Docker][44] | [MIT License][45] | +| [Test Database Builder for Java][46] | [MIT License][47] | +| [Test utilities for `java.util.logging`][48] | [MIT][34] | +| [Matcher for SQL Result Sets][49] | [MIT License][50] | +| [EqualsVerifier \| release normal jar][51] | [Apache License, Version 2.0][3] | +| [Apache Log4j API][52] | [Apache-2.0][3] | +| [Apache Log4j Core][53] | [Apache-2.0][3] | ## Plugin Dependencies | Dependency | License | | ------------------------------------------------------- | ------------------------------------- | -| [SonarQube Scanner for Maven][52] | [GNU LGPL 3][53] | -| [Apache Maven Toolchains Plugin][54] | [Apache-2.0][3] | -| [Apache Maven Compiler Plugin][55] | [Apache-2.0][3] | -| [Apache Maven Enforcer Plugin][56] | [Apache-2.0][3] | -| [Maven Flatten Plugin][57] | [Apache Software Licenese][3] | -| [Apache Maven Shade Plugin][58] | [Apache-2.0][3] | -| [OpenFastTrace Maven Plugin][59] | [GNU General Public License v3.0][60] | -| [org.sonatype.ossindex.maven:ossindex-maven-plugin][61] | [ASL2][19] | -| [Maven Surefire Plugin][62] | [Apache-2.0][3] | -| [Versions Maven Plugin][63] | [Apache License, Version 2.0][3] | -| [duplicate-finder-maven-plugin Maven Mojo][64] | [Apache License 2.0][1] | -| [Project Keeper Maven plugin][65] | [The MIT License][66] | -| [Apache Maven Assembly Plugin][67] | [Apache-2.0][3] | -| [Apache Maven JAR Plugin][68] | [Apache-2.0][3] | -| [Artifact reference checker and unifier][69] | [MIT License][70] | -| [Maven Failsafe Plugin][71] | [Apache-2.0][3] | -| [JaCoCo :: Maven Plugin][72] | [EPL-2.0][73] | -| [error-code-crawler-maven-plugin][74] | [MIT License][75] | -| [Reproducible Build Maven Plugin][76] | [Apache 2.0][19] | +| [Apache Maven Clean Plugin][54] | [Apache-2.0][3] | +| [Apache Maven Install Plugin][55] | [Apache-2.0][3] | +| [Apache Maven Resources Plugin][56] | [Apache-2.0][3] | +| [Apache Maven Site Plugin][57] | [Apache License, Version 2.0][3] | +| [SonarQube Scanner for Maven][58] | [GNU LGPL 3][59] | +| [Apache Maven Toolchains Plugin][60] | [Apache-2.0][3] | +| [Apache Maven Compiler Plugin][61] | [Apache-2.0][3] | +| [Apache Maven Shade Plugin][62] | [Apache-2.0][3] | +| [Apache Maven Enforcer Plugin][63] | [Apache-2.0][3] | +| [Maven Flatten Plugin][64] | [Apache Software Licenese][3] | +| [OpenFastTrace Maven Plugin][65] | [GNU General Public License v3.0][66] | +| [org.sonatype.ossindex.maven:ossindex-maven-plugin][67] | [ASL2][21] | +| [Maven Surefire Plugin][68] | [Apache-2.0][3] | +| [Versions Maven Plugin][69] | [Apache License, Version 2.0][3] | +| [duplicate-finder-maven-plugin Maven Mojo][70] | [Apache License 2.0][1] | +| [Project Keeper Maven plugin][71] | [The MIT License][72] | +| [Apache Maven Assembly Plugin][73] | [Apache-2.0][3] | +| [Apache Maven JAR Plugin][74] | [Apache-2.0][3] | +| [Artifact reference checker and unifier][75] | [MIT License][76] | +| [Maven Failsafe Plugin][77] | [Apache-2.0][3] | +| [JaCoCo :: Maven Plugin][78] | [EPL-2.0][79] | +| [Quality Summarizer Maven Plugin][80] | [MIT License][81] | +| [error-code-crawler-maven-plugin][82] | [MIT License][83] | +| [Reproducible Build Maven Plugin][84] | [Apache 2.0][21] | [0]: https://spark.apache.org/ [1]: http://www.apache.org/licenses/LICENSE-2.0.html [2]: http://zookeeper.apache.org/zookeeper [3]: https://www.apache.org/licenses/LICENSE-2.0.txt -[4]: https://avro.apache.org -[5]: https://commons.apache.org/proper/commons-compress/ -[6]: https://github.com/xerial/snappy-java -[7]: https://www.apache.org/licenses/LICENSE-2.0.html -[8]: https://github.com/dnsjava/dnsjava -[9]: https://opensource.org/licenses/BSD-3-Clause -[10]: https://commons.apache.org/proper/commons-configuration/ -[11]: https://github.com/airlift/aircompressor -[12]: https://bitbucket.org/connect2id/nimbus-jose-jwt -[13]: http://janino-compiler.github.io/janino/ -[14]: https://spdx.org/licenses/BSD-3-Clause.html -[15]: http://janino-compiler.github.io/commons-compiler/ -[16]: https://github.com/paul-hammant/paranamer/paranamer -[17]: LICENSE.txt -[18]: https://github.com/google/guava -[19]: http://www.apache.org/licenses/LICENSE-2.0.txt -[20]: https://github.com/FasterXML/jackson -[21]: https://aws.amazon.com/sdkforjava -[22]: https://aws.amazon.com/apache2.0 -[23]: http://www.exasol.com/ -[24]: https://repo1.maven.org/maven2/com/exasol/exasol-jdbc/24.1.1/exasol-jdbc-24.1.1-license.txt -[25]: https://github.com/exasol/sql-statement-builder/ -[26]: https://github.com/exasol/sql-statement-builder/blob/main/LICENSE -[27]: https://github.com/exasol/spark-connector-common-java/ -[28]: https://github.com/exasol/spark-connector-common-java/blob/main/LICENSE -[29]: https://github.com/exasol/error-reporting-java/ -[30]: https://github.com/exasol/error-reporting-java/blob/main/LICENSE -[31]: https://github.com/mockito/mockito -[32]: https://opensource.org/licenses/MIT -[33]: https://junit.org/junit5/ -[34]: https://www.eclipse.org/legal/epl-v20.html -[35]: http://hamcrest.org/JavaHamcrest/ -[36]: http://opensource.org/licenses/BSD-3-Clause -[37]: https://java.testcontainers.org -[38]: http://opensource.org/licenses/MIT -[39]: http://aws.amazon.com/asl/ -[40]: http://github.com/dain/snappy -[41]: https://github.com/amazon-ion/ion-java/ -[42]: https://github.com/exasol/exasol-testcontainers/ -[43]: https://github.com/exasol/exasol-testcontainers/blob/main/LICENSE -[44]: https://github.com/exasol/test-db-builder-java/ -[45]: https://github.com/exasol/test-db-builder-java/blob/main/LICENSE -[46]: https://github.com/exasol/java-util-logging-testing/ -[47]: https://github.com/exasol/hamcrest-resultset-matcher/ -[48]: https://github.com/exasol/hamcrest-resultset-matcher/blob/main/LICENSE -[49]: https://www.jqno.nl/equalsverifier -[50]: https://logging.apache.org/log4j/2.x/log4j/log4j-api/ -[51]: https://logging.apache.org/log4j/2.x/log4j/log4j-core/ -[52]: http://sonarsource.github.io/sonar-scanner-maven/ -[53]: http://www.gnu.org/licenses/lgpl.txt -[54]: https://maven.apache.org/plugins/maven-toolchains-plugin/ -[55]: https://maven.apache.org/plugins/maven-compiler-plugin/ -[56]: https://maven.apache.org/enforcer/maven-enforcer-plugin/ -[57]: https://www.mojohaus.org/flatten-maven-plugin/ -[58]: https://maven.apache.org/plugins/maven-shade-plugin/ -[59]: https://github.com/itsallcode/openfasttrace-maven-plugin -[60]: https://www.gnu.org/licenses/gpl-3.0.html -[61]: https://sonatype.github.io/ossindex-maven/maven-plugin/ -[62]: https://maven.apache.org/surefire/maven-surefire-plugin/ -[63]: https://www.mojohaus.org/versions/versions-maven-plugin/ -[64]: https://basepom.github.io/duplicate-finder-maven-plugin -[65]: https://github.com/exasol/project-keeper/ -[66]: https://github.com/exasol/project-keeper/blob/main/LICENSE -[67]: https://maven.apache.org/plugins/maven-assembly-plugin/ -[68]: https://maven.apache.org/plugins/maven-jar-plugin/ -[69]: https://github.com/exasol/artifact-reference-checker-maven-plugin/ -[70]: https://github.com/exasol/artifact-reference-checker-maven-plugin/blob/main/LICENSE -[71]: https://maven.apache.org/surefire/maven-failsafe-plugin/ -[72]: https://www.jacoco.org/jacoco/trunk/doc/maven.html -[73]: https://www.eclipse.org/legal/epl-2.0/ -[74]: https://github.com/exasol/error-code-crawler-maven-plugin/ -[75]: https://github.com/exasol/error-code-crawler-maven-plugin/blob/main/LICENSE -[76]: http://zlika.github.io/reproducible-build-maven-plugin +[4]: https://netty.io/netty-handler/ +[5]: https://www.apache.org/licenses/LICENSE-2.0 +[6]: https://avro.apache.org +[7]: https://commons.apache.org/proper/commons-compress/ +[8]: https://github.com/xerial/snappy-java +[9]: https://www.apache.org/licenses/LICENSE-2.0.html +[10]: https://github.com/dnsjava/dnsjava +[11]: https://opensource.org/licenses/BSD-3-Clause +[12]: https://commons.apache.org/proper/commons-configuration/ +[13]: https://github.com/airlift/aircompressor +[14]: https://bitbucket.org/connect2id/nimbus-jose-jwt +[15]: http://janino-compiler.github.io/janino/ +[16]: https://spdx.org/licenses/BSD-3-Clause.html +[17]: http://janino-compiler.github.io/commons-compiler/ +[18]: https://github.com/paul-hammant/paranamer/paranamer +[19]: LICENSE.txt +[20]: https://github.com/google/guava +[21]: http://www.apache.org/licenses/LICENSE-2.0.txt +[22]: https://github.com/FasterXML/jackson +[23]: https://aws.amazon.com/sdkforjava +[24]: https://aws.amazon.com/apache2.0 +[25]: http://www.exasol.com/ +[26]: https://repo1.maven.org/maven2/com/exasol/exasol-jdbc/24.2.0/exasol-jdbc-24.2.0-license.txt +[27]: https://github.com/exasol/sql-statement-builder/ +[28]: https://github.com/exasol/sql-statement-builder/blob/main/LICENSE +[29]: https://github.com/exasol/spark-connector-common-java/ +[30]: https://github.com/exasol/spark-connector-common-java/blob/main/LICENSE +[31]: https://github.com/exasol/error-reporting-java/ +[32]: https://github.com/exasol/error-reporting-java/blob/main/LICENSE +[33]: https://github.com/mockito/mockito +[34]: https://opensource.org/licenses/MIT +[35]: https://junit.org/junit5/ +[36]: https://www.eclipse.org/legal/epl-v20.html +[37]: http://hamcrest.org/JavaHamcrest/ +[38]: https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE +[39]: https://java.testcontainers.org +[40]: http://opensource.org/licenses/MIT +[41]: http://aws.amazon.com/asl/ +[42]: http://github.com/dain/snappy +[43]: https://github.com/amazon-ion/ion-java/ +[44]: https://github.com/exasol/exasol-testcontainers/ +[45]: https://github.com/exasol/exasol-testcontainers/blob/main/LICENSE +[46]: https://github.com/exasol/test-db-builder-java/ +[47]: https://github.com/exasol/test-db-builder-java/blob/main/LICENSE +[48]: https://github.com/exasol/java-util-logging-testing/ +[49]: https://github.com/exasol/hamcrest-resultset-matcher/ +[50]: https://github.com/exasol/hamcrest-resultset-matcher/blob/main/LICENSE +[51]: https://www.jqno.nl/equalsverifier +[52]: https://logging.apache.org/log4j/2.x/log4j/log4j-api/ +[53]: https://logging.apache.org/log4j/2.x/log4j/log4j-core/ +[54]: https://maven.apache.org/plugins/maven-clean-plugin/ +[55]: https://maven.apache.org/plugins/maven-install-plugin/ +[56]: https://maven.apache.org/plugins/maven-resources-plugin/ +[57]: https://maven.apache.org/plugins/maven-site-plugin/ +[58]: http://sonarsource.github.io/sonar-scanner-maven/ +[59]: http://www.gnu.org/licenses/lgpl.txt +[60]: https://maven.apache.org/plugins/maven-toolchains-plugin/ +[61]: https://maven.apache.org/plugins/maven-compiler-plugin/ +[62]: https://maven.apache.org/plugins/maven-shade-plugin/ +[63]: https://maven.apache.org/enforcer/maven-enforcer-plugin/ +[64]: https://www.mojohaus.org/flatten-maven-plugin/ +[65]: https://github.com/itsallcode/openfasttrace-maven-plugin +[66]: https://www.gnu.org/licenses/gpl-3.0.html +[67]: https://sonatype.github.io/ossindex-maven/maven-plugin/ +[68]: https://maven.apache.org/surefire/maven-surefire-plugin/ +[69]: https://www.mojohaus.org/versions/versions-maven-plugin/ +[70]: https://basepom.github.io/duplicate-finder-maven-plugin +[71]: https://github.com/exasol/project-keeper/ +[72]: https://github.com/exasol/project-keeper/blob/main/LICENSE +[73]: https://maven.apache.org/plugins/maven-assembly-plugin/ +[74]: https://maven.apache.org/plugins/maven-jar-plugin/ +[75]: https://github.com/exasol/artifact-reference-checker-maven-plugin/ +[76]: https://github.com/exasol/artifact-reference-checker-maven-plugin/blob/main/LICENSE +[77]: https://maven.apache.org/surefire/maven-failsafe-plugin/ +[78]: https://www.jacoco.org/jacoco/trunk/doc/maven.html +[79]: https://www.eclipse.org/legal/epl-2.0/ +[80]: https://github.com/exasol/quality-summarizer-maven-plugin/ +[81]: https://github.com/exasol/quality-summarizer-maven-plugin/blob/main/LICENSE +[82]: https://github.com/exasol/error-code-crawler-maven-plugin/ +[83]: https://github.com/exasol/error-code-crawler-maven-plugin/blob/main/LICENSE +[84]: http://zlika.github.io/reproducible-build-maven-plugin diff --git a/doc/changes/changelog.md b/doc/changes/changelog.md index 93e95c8..5236a78 100644 --- a/doc/changes/changelog.md +++ b/doc/changes/changelog.md @@ -1,5 +1,6 @@ # Changes +* [2.1.8](changes_2.1.8.md) * [2.1.7](changes_2.1.7.md) * [2.1.6](changes_2.1.6.md) * [2.1.5](changes_2.1.5.md) diff --git a/doc/changes/changes_2.1.8.md b/doc/changes/changes_2.1.8.md new file mode 100644 index 0000000..8918025 --- /dev/null +++ b/doc/changes/changes_2.1.8.md @@ -0,0 +1,61 @@ +# Exasol AWS Glue Connector 2.1.8, released 2024-11-21 + +Code name: Fixed vulnerabilities CVE-2024-47535, CVE-2024-51504, CVE-2024-47554, CVE-2024-47561 + +## Summary + +This release fixes the following vulnerabilities: +* CVE-2024-47535 in `io.netty:netty-common:jar:4.1.105.Final:compile` +* CVE-2024-51504 in `org.apache.zookeeper:zookeeper:jar:3.9.2:provided` +* CVE-2024-47554 in `commons-io:commons-io:jar:2.11.0:provided` +* CVE-2024-47561 in `org.apache.avro:avro:jar:1.11.3:provided` + +## Security + +* #118: Fixed CVE-2024-47535 in `io.netty:netty-common:jar:4.1.105.Final:compile` +* #116: Fixed CVE-2024-51504 in `org.apache.zookeeper:zookeeper:jar:3.9.2:provided` +* #114: Fixed CVE-2024-47554 in `commons-io:commons-io:jar:2.11.0:provided` +* #113: Fixed CVE-2024-47561 in `org.apache.avro:avro:jar:1.11.3:provided` + +## Dependency Updates + +### Compile Dependency Updates + +* Updated `com.exasol:exasol-jdbc:24.1.1` to `24.2.0` +* Updated `com.exasol:spark-connector-common-java:2.0.7` to `2.0.10` +* Updated `org.apache.hadoop:hadoop-aws:3.4.0` to `3.4.1` +* Updated `org.xerial.snappy:snappy-java:1.1.10.5` to `1.1.10.7` +* Updated `software.amazon.awssdk:s3:2.26.25` to `2.29.18` + +### Test Dependency Updates + +* Updated `com.amazonaws:aws-java-sdk-s3:1.12.765` to `1.12.778` +* Updated `com.exasol:exasol-testcontainers:7.1.0` to `7.1.1` +* Updated `com.exasol:hamcrest-resultset-matcher:1.6.5` to `1.7.0` +* Updated `com.exasol:test-db-builder-java:3.5.4` to `3.6.0` +* Updated `nl.jqno.equalsverifier:equalsverifier:3.16.1` to `3.17.3` +* Updated `org.apache.logging.log4j:log4j-api:2.23.1` to `2.24.1` +* Updated `org.apache.logging.log4j:log4j-core:2.23.1` to `2.24.1` +* Updated `org.hamcrest:hamcrest:2.2` to `3.0` +* Updated `org.junit.jupiter:junit-jupiter-api:5.10.3` to `5.11.3` +* Updated `org.junit.jupiter:junit-jupiter:5.10.3` to `5.11.3` +* Updated `org.mockito:mockito-core:5.12.0` to `5.14.2` +* Updated `org.mockito:mockito-junit-jupiter:5.12.0` to `5.14.2` +* Updated `org.testcontainers:junit-jupiter:1.20.0` to `1.20.4` +* Updated `org.testcontainers:localstack:1.20.0` to `1.20.4` + +### Plugin Dependency Updates + +* Updated `com.exasol:project-keeper-maven-plugin:4.3.3` to `4.4.0` +* Added `com.exasol:quality-summarizer-maven-plugin:0.2.0` +* Updated `io.github.zlika:reproducible-build-maven-plugin:0.16` to `0.17` +* Updated `org.apache.maven.plugins:maven-clean-plugin:2.5` to `3.4.0` +* Updated `org.apache.maven.plugins:maven-failsafe-plugin:3.2.5` to `3.5.1` +* Updated `org.apache.maven.plugins:maven-install-plugin:2.4` to `3.1.3` +* Updated `org.apache.maven.plugins:maven-jar-plugin:3.4.1` to `3.4.2` +* Updated `org.apache.maven.plugins:maven-resources-plugin:2.6` to `3.3.1` +* Updated `org.apache.maven.plugins:maven-shade-plugin:3.5.2` to `3.6.0` +* Updated `org.apache.maven.plugins:maven-site-plugin:3.3` to `3.9.1` +* Updated `org.apache.maven.plugins:maven-surefire-plugin:3.2.5` to `3.5.1` +* Updated `org.codehaus.mojo:versions-maven-plugin:2.16.2` to `2.17.1` +* Updated `org.itsallcode:openfasttrace-maven-plugin:1.8.0` to `2.3.0` diff --git a/doc/developers_guide/developers_guide.md b/doc/developers_guide/developers_guide.md index 64dec32..1e13003 100644 --- a/doc/developers_guide/developers_guide.md +++ b/doc/developers_guide/developers_guide.md @@ -40,11 +40,11 @@ To test connector by creating a custom connector, please follow these steps. ### Creating an Assembly Jar -By running `mvn verify` or `mvn package` create a connector artifact. For example, `target/exasol-glue-connector-2.1.7-assembly.jar`. +By running `mvn verify` or `mvn package` create a connector artifact. For example, `target/exasol-glue-connector-2.1.8-assembly.jar`. ### Uploading the Artifact to S3 Bucket -Upload the JAR artifact from previous step into an S3 bucket. For instance, `s3://exasol-artifacts/glue-connector/exasol-glue-connector-2.1.7-assembly.jar`. +Upload the JAR artifact from previous step into an S3 bucket. For instance, `s3://exasol-artifacts/glue-connector/exasol-glue-connector-2.1.8-assembly.jar`. ### Creating a Glue Studio Custom Connector diff --git a/pk_generated_parent.pom b/pk_generated_parent.pom index 2675cf2..7020910 100644 --- a/pk_generated_parent.pom +++ b/pk_generated_parent.pom @@ -3,7 +3,7 @@ 4.0.0 com.exasol glue-connector-generated-parent - 2.1.7 + 2.1.8 pom UTF-8 @@ -36,6 +36,26 @@ + + org.apache.maven.plugins + maven-clean-plugin + 3.4.0 + + + org.apache.maven.plugins + maven-install-plugin + 3.1.3 + + + org.apache.maven.plugins + maven-resources-plugin + 3.3.1 + + + org.apache.maven.plugins + maven-site-plugin + 3.9.1 + org.sonarsource.scanner.maven sonar-maven-plugin @@ -139,7 +159,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.5 + 3.5.1 @@ -150,7 +170,7 @@ org.codehaus.mojo versions-maven-plugin - 2.16.2 + 2.17.1 display-updates @@ -230,7 +250,7 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.1 + 3.4.2 default-jar @@ -254,7 +274,7 @@ org.apache.maven.plugins maven-failsafe-plugin - 3.2.5 + 3.5.1 -Djava.util.logging.config.file=src/test/resources/logging.properties ${argLine} @@ -312,6 +332,19 @@ + + com.exasol + quality-summarizer-maven-plugin + 0.2.0 + + + summarize-metrics + + summarize + + + + com.exasol error-code-crawler-maven-plugin @@ -328,7 +361,7 @@ io.github.zlika reproducible-build-maven-plugin - 0.16 + 0.17 strip-jar diff --git a/pom.xml b/pom.xml index 59ecbbd..ffdaada 100644 --- a/pom.xml +++ b/pom.xml @@ -3,23 +3,21 @@ 4.0.0 com.exasol glue-connector - 2.1.7 + 2.1.8 Exasol AWS Glue Connector An AWS Glue connector for accessing Exasol database https://github.com/exasol/glue-connector/ glue-connector-generated-parent com.exasol - 2.1.7 + 2.1.8 pk_generated_parent.pom - 8 - 11 - 3.4.0 - 5.10.3 - 5.12.0 - 2.23.1 + 3.4.1 + 5.11.3 + 5.14.2 + 2.24.1 @@ -35,7 +33,7 @@ org.apache.spark spark-sql_2.12 - 3.5.1 + 3.5.3 provided @@ -114,7 +112,7 @@ org.apache.zookeeper zookeeper - 3.9.2 + 3.9.3 provided @@ -129,12 +127,19 @@ + + + io.netty + netty-handler + 4.1.115.Final + provided + org.apache.avro avro - 1.11.3 + 1.12.0 provided dnsjava dnsjava - 3.6.1 + 3.6.2 provided @@ -231,14 +236,14 @@ io.airlift aircompressor - 0.27 + 2.0.2 provided com.nimbusds nimbus-jose-jwt - 9.40 + 9.47 provided @@ -266,7 +271,7 @@ com.google.guava guava - 33.2.1-jre + 33.3.1-jre provided @@ -278,12 +283,12 @@ software.amazon.awssdk s3 - 2.26.25 + 2.29.18 com.exasol exasol-jdbc - 24.1.1 + 24.2.0 com.exasol @@ -293,7 +298,7 @@ com.exasol spark-connector-common-java - 2.0.7 + 2.0.10 com.exasol @@ -328,19 +333,19 @@ org.hamcrest hamcrest - 2.2 + 3.0 test org.testcontainers junit-jupiter - 1.20.0 + 1.20.4 test org.testcontainers localstack - 1.20.0 + 1.20.4 test + org.bouncycastle + bcprov-jdk15on + org.codehaus.jackson * @@ -478,13 +488,13 @@ com.exasol exasol-testcontainers - 7.1.0 + 7.1.1 test com.exasol test-db-builder-java - 3.5.4 + 3.6.0 test @@ -496,13 +506,13 @@ com.exasol hamcrest-resultset-matcher - 1.6.5 + 1.7.0 test nl.jqno.equalsverifier equalsverifier - 3.16.1 + 3.17.3 test @@ -520,24 +530,12 @@ - - org.apache.maven.plugins - maven-toolchains-plugin - - - - - ${toolchain.version} - - - - org.apache.maven.plugins maven-compiler-plugin - ${java.version} - ${java.version} + 8 + 8 - CVE-2023-33201 - CVE-2023-33202 - CVE-2024-29857 - CVE-2024-30171 - CVE-2024-30172 - CVE-2023-33201 - CVE-2023-33202 - CVE-2024-29857 - CVE-2024-30171 - CVE-2024-34447 diff --git a/src/test/java/com/exasol/glue/ittests/BaseIntegrationTestSetup.java b/src/test/java/com/exasol/glue/ittests/BaseIntegrationTestSetup.java index 9b1a74d..b2bc1ff 100644 --- a/src/test/java/com/exasol/glue/ittests/BaseIntegrationTestSetup.java +++ b/src/test/java/com/exasol/glue/ittests/BaseIntegrationTestSetup.java @@ -29,15 +29,16 @@ public class BaseIntegrationTestSetup { private static final Logger LOGGER = Logger.getLogger(BaseIntegrationTestSetup.class.getName()); - private static final String DEFAULT_DOCKER_IMAGE = "7.1.25"; + private static final String DEFAULT_DOCKER_IMAGE = "8.32.0"; protected static final String DEFAULT_BUCKET_NAME = "csvtest"; @Container + @SuppressWarnings("resource") // Will be closed by @Testcontainers private static final ExasolContainer> EXASOL = new ExasolContainer<>( getExasolDockerImage()).withReuse(true); @Container private static final S3LocalStackContainerWithReuse S3 = new S3LocalStackContainerWithReuse( - DockerImageName.parse("localstack/localstack:2.2")); + DockerImageName.parse("localstack/localstack:3.8")); protected static Connection connection; protected static ExasolObjectFactory factory; @@ -151,15 +152,21 @@ private static String getRandomAppId() { } private static void updateExasolContainerHostsFile() { + // Workaround for sed failing on 8.32.0 with error message + // "sed: cannot rename /etc/sedipVlut: Device or resource busy" final List commands = List.of( // - "sed -i '/amazonaws/d' /etc/hosts", // - "echo '" + getS3ContainerInternalIp() + " csvtest.s3.amazonaws.com' >> /etc/hosts"); + "cp /etc/hosts /tmp/hosts", // + "sed -i '/amazonaws/d' /tmp/hosts", // + "echo '" + getS3ContainerInternalIp() + " csvtest.s3.amazonaws.com' >> /tmp/hosts", // + "cp /tmp/hosts /etc/hosts"); commands.forEach(command -> { try { - final ExecResult exitCode = EXASOL.execInContainer("/bin/sh", "-c", command); - if (exitCode.getExitCode() != 0) { - throw new RuntimeException( - "Command to update Exasol container `/etc/hosts` file returned non-zero result."); + final ExecResult result = EXASOL.execInContainer("/bin/sh", "-c", command); + if (result.getExitCode() != 0) { + throw new RuntimeException("Command '" + command + + "' to update Exasol container `/etc/hosts` file returned non-zero result " + + result.getExitCode() + ", stdout: '" + result.getStdout() + "', stderr: '" + + result.getStderr() + "'."); } } catch (final InterruptedException | IOException exception) { throw new RuntimeException("Failed to update Exasol container `/etc/hosts`.", exception);