diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml deleted file mode 100644 index aa299bd..0000000 --- a/.github/actions/build/action.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Maven Build -description: "Builds a Maven project." - -inputs: - java-version: - description: "The Java version the build shall run with." - required: true - maven-version: - description: "The Maven version the build shall run with." - required: true - mutation-testing: - description: "Whether to run mutation testing." - default: 'true' - required: false - -runs: - using: composite - steps: - - name: Set up Java ${{ inputs.java-version }} - uses: actions/setup-java@v4 - with: - java-version: ${{ inputs.java-version }} - distribution: sapmachine - cache: maven - - - name: Setup Maven ${{ inputs.maven-version }} - uses: stCarolas/setup-maven@v5 - with: - maven-version: ${{ inputs.maven-version }} - - - name: Piper Maven build - uses: SAP/project-piper-action@main - with: - step-name: mavenBuild - - #- name: Mutation Testing - # if: ${{ inputs.mutation-testing == 'true' }} - # run: mvn org.pitest:pitest-maven:mutationCoverage -f cds-feature-auditlog-ng/pom.xml -ntp -B - # shell: bash diff --git a/.github/actions/deploy-release/action.yml b/.github/actions/deploy-release/action.yml deleted file mode 100644 index 1c97ab2..0000000 --- a/.github/actions/deploy-release/action.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: Deploy Release to Maven Central -description: "Deploys released artifacts to Maven Central repository." - -inputs: - user: - description: "The user used for the upload (technical user for maven central upload)" - required: true - password: - description: "The password used for the upload (technical user for maven central upload)" - required: true - pgp-pub-key: - description: "The public pgp key ID" - required: true - pgp-private-key: - description: "The private pgp key" - required: true - pgp-passphrase: - description: "The passphrase for pgp" - required: true - revision: - description: "The revision of cds-feature-auditlog-ng" - required: true - maven-version: - description: "The Maven version the build shall run with." - required: true - -runs: - using: composite - steps: - - name: Echo Inputs - run: | - echo "user: ${{ inputs.user }}" - echo "revision: ${{ inputs.revision }}" - shell: bash - - - name: Set up Java - uses: actions/setup-java@v4 - with: - distribution: sapmachine - java-version: '17' - cache: maven - server-id: central - server-username: MAVEN_CENTRAL_USER - server-password: MAVEN_CENTRAL_PASSWORD - - - name: Set up Maven ${{ inputs.maven-version }} - uses: stCarolas/setup-maven@v5 - with: - maven-version: ${{ inputs.maven-version }} - - - name: Import GPG Key - run: | - echo "${{ inputs.pgp-private-key }}" | gpg --batch --passphrase "$PASSPHRASE" --import - shell: bash - env: - PASSPHRASE: ${{ inputs.pgp-passphrase }} - - - name: Deploy to Maven Central - run: > - mvn -B -ntp --show-version - -Dmaven.install.skip=true - -Dmaven.test.skip=true - -Dgpg.passphrase="$GPG_PASSPHRASE" - -Dgpg.keyname="$GPG_PUB_KEY" - clean deploy -P deploy-release - shell: bash - env: - MAVEN_CENTRAL_USER: ${{ inputs.user }} - MAVEN_CENTRAL_PASSWORD: ${{ inputs.password }} - GPG_PASSPHRASE: ${{ inputs.pgp-passphrase }} - GPG_PUB_KEY: ${{ inputs.pgp-pub-key }} diff --git a/.github/actions/scan-with-blackduck/action.yaml b/.github/actions/scan-with-blackduck/action.yaml deleted file mode 100644 index 76be691..0000000 --- a/.github/actions/scan-with-blackduck/action.yaml +++ /dev/null @@ -1,54 +0,0 @@ -name: "Scan with BlackDuck" -description: "Scans the project with BlackDuck" - -inputs: - blackduck_token: - description: "The token to use for BlackDuck authentication" - required: true - github_token: - description: "The token to use for GitHub authentication" - required: true - java-version: - description: "The version of Java to use" - default: '17' - required: false - maven-version: - description: "The Maven version the build shall run with." - required: true - -runs: - using: composite - steps: - - name: Set up Java ${{ inputs.java-version }} - uses: actions/setup-java@v4 - with: - java-version: ${{ inputs.java-version }} - distribution: sapmachine - cache: maven - - - name: Setup Maven ${{ inputs.maven-version }} - uses: stCarolas/setup-maven@v5 - with: - maven-version: ${{ inputs.maven-version }} - - - name: Get Major Version - id: get-major-version - run: | - echo "REVISION=$(mvn help:evaluate -Dexpression=revision -q -DforceStdout)" >> $GITHUB_OUTPUT - shell: bash - - - name: Print Version Number - run: echo "${{ steps.get-major-version.outputs.REVISION }}" - shell: bash - - - name: BlackDuck Scan - uses: SAP/project-piper-action@main - with: - step-name: detectExecuteScan - flags: \ - --githubToken=$GITHUB_token \ - --version=${{ steps.get-major-version.outputs.REVISION }} - env: - PIPER_token: ${{ inputs.blackduck_token }} - GITHUB_token: ${{ inputs.github_token }} - SCAN_MODE: FULL diff --git a/.github/actions/scan-with-sonar/action.yaml b/.github/actions/scan-with-sonar/action.yaml deleted file mode 100644 index 34522cf..0000000 --- a/.github/actions/scan-with-sonar/action.yaml +++ /dev/null @@ -1,48 +0,0 @@ -name: Scan with SonarQube -description: Scans the project with SonarQube - -inputs: - sonarq-token: - description: The token to use for SonarQube authentication - required: true - github-token: - description: The token to use for GitHub authentication - required: true - java-version: - description: The version of Java to use - required: true - maven-version: - description: The version of Maven to use - required: true - -runs: - using: composite - - steps: - - name: Set up Java ${{inputs.java-version}} - uses: actions/setup-java@v4 - with: - java-version: ${{inputs.java-version}} - distribution: sapmachine - cache: maven - - - name: Set up Maven ${{inputs.maven-version}} - uses: stCarolas/setup-maven@v5 - with: - maven-version: ${{inputs.maven-version}} - - - name: Get Revision - id: get-revision - run: | - echo "REVISION=$(mvn help:evaluate -Dexpression=revision -q -DforceStdout)" >> $GITHUB_OUTPUT - shell: bash - - - name: Print Revision - run: echo "${{steps.get-revision.outputs.REVISION}}" - shell: bash - - - name: SonarQube Scan - uses: SAP/project-piper-action@main - with: - step-name: sonarExecuteScan - flags: --token=${{inputs.sonarq-token}} --githubToken=${{inputs.github-token}} --version=${{steps.get-revision.outputs.REVISION}} --inferJavaBinaries=true diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index fbef0fd..0000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,92 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL Advanced" - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - schedule: - - cron: '24 18 * * 2' - -jobs: - analyze: - name: Analyze (${{ matrix.language }}) - # Runner size impacts CodeQL analysis time. To learn more, please see: - # - https://gh.io/recommended-hardware-resources-for-running-codeql - # - https://gh.io/supported-runners-and-hardware-resources - # - https://gh.io/using-larger-runners (GitHub.com only) - # Consider using larger runners or machines with greater resources for possible analysis time improvements. - runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} - permissions: - # required for all workflows - security-events: write - - # required to fetch internal or private CodeQL packs - packages: read - - # only required for workflows in private repositories - actions: read - contents: read - - strategy: - fail-fast: false - matrix: - include: - - language: java-kotlin - build-mode: none # This mode only analyzes Java. Set this to 'autobuild' or 'manual' to analyze Kotlin too. - # CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' - # Use `c-cpp` to analyze code written in C, C++ or both - # Use 'java-kotlin' to analyze code written in Java, Kotlin or both - # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both - # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis, - # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning. - # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how - # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages - steps: - - name: Checkout repository - uses: actions/checkout@v6 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} - build-mode: ${{ matrix.build-mode }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality - - # If the analyze step fails for one of the languages you are analyzing with - # "We were unable to automatically build your code", modify the matrix above - # to set the build mode to "manual" for that language. Then modify this step - # to build your code. - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - if: matrix.build-mode == 'manual' - shell: bash - run: | - echo 'If you are using a "manual" build mode for one or more of the' \ - 'languages you are analyzing, replace this with the commands to build' \ - 'your code, for example:' - echo ' make bootstrap' - echo ' make release' - exit 1 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 - with: - category: "/language:${{matrix.language}}" diff --git a/.github/workflows/main-build-and-deploy-oss.yml b/.github/workflows/main-build-and-deploy-oss.yml index 275e6f7..35029c0 100644 --- a/.github/workflows/main-build-and-deploy-oss.yml +++ b/.github/workflows/main-build-and-deploy-oss.yml @@ -1,27 +1,54 @@ name: Deploy to Maven Central env: - JAVA_VERSION: '17' - MAVEN_VERSION: '3.6.3' + JAVA_VERSION: '21' + MAVEN_VERSION: '3.9.15' on: release: types: [ "released" ] jobs: - #blackduck: - # name: Blackduck Scan - # runs-on: ubuntu-latest - # timeout-minutes: 15 - # steps: - # - name: Checkout - # uses: actions/checkout@v6 - # - name: Scan With Black Duck - # uses: ./.github/actions/scan-with-blackduck - # with: - # blackduck_token: ${{ secrets.BLACK_DUCK_TOKEN }} - # github_token: ${{ secrets.GITHUB_TOKEN }} - # maven-version: ${{ env.MAVEN_VERSION }} + blackduck: + name: Blackduck Scan + runs-on: ubuntu-latest + timeout-minutes: 30 + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - name: Scan With Black Duck + uses: cap-java/.github/actions/scan-with-blackduck@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main + with: + blackduck_token: ${{ secrets.BLACK_DUCK_TOKEN }} + maven-version: ${{ env.MAVEN_VERSION }} + project-name: com.sap.cds.feature.auditlog-ng + included-modules: cds-feature-auditlog-ng + # scan_mode determines the type of scan to perform + # Set to RAPID now for main and for PRs because the project com.sap.cds.feature.auditlog-ng is not available on https://sap.blackducksoftware.com/ + # Change back to FULL on main as soon as the project has been created on https://sap.blackducksoftware.com/. + scan_mode: RAPID + codeql: + name: CodeQL Scan + runs-on: ubuntu-latest + timeout-minutes: 60 + permissions: + contents: read + actions: read + security-events: write + packages: read + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + + - name: Scan With CodeQL + uses: cap-java/.github/actions/scan-with-codeql@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main + with: + maven-version: ${{ env.MAVEN_VERSION }} + java-version: ${{ env.JAVA_VERSION }} + language: java-kotlin + queries: security-extended # update-version: # name: Update Version @@ -43,6 +70,7 @@ jobs: # path: . # include-hidden-files: true # retention-days: 1 + requires-approval: runs-on: ubuntu-latest name: "Waiting for release approval" @@ -66,12 +94,12 @@ jobs: - name: Checkout uses: actions/checkout@v6 - name: Build - uses: ./.github/actions/build + uses: cap-java/.github/actions/build@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main with: java-version: ${{ env.JAVA_VERSION }} maven-version: ${{ env.MAVEN_VERSION }} #- name: Sonar Scan - # uses: ./.github/actions/scan-with-sonar + # uses: cap-java/.github/actions/scan-with-sonar@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main # with: # java-version: ${{ env.JAVA_VERSION }} # maven-version: ${{ env.MAVEN_VERSION }} @@ -97,13 +125,13 @@ jobs: with: name: root-build - name: Deploy - uses: ./.github/actions/deploy-release + uses: cap-java/.github/actions/deploy-release@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main with: user: ${{ secrets.CAP_JAVA_CDS_FEATURE_AUDITLOG_NG_USER }} password: ${{ secrets.CAP_JAVA_CDS_FEATURE_AUDITLOG_NG_PASS }} - pgp-pub-key: ${{ secrets.PGP_PUBKEY_ID }} - pgp-private-key: ${{ secrets.PGP_PRIVATE_KEY }} - pgp-passphrase: ${{ secrets.PGP_PASSPHRASE }} + gpg-pub-key: ${{ secrets.PGP_PUBKEY_ID }} + gpg-private-key: ${{ secrets.PGP_PRIVATE_KEY }} + gpg-passphrase: ${{ secrets.PGP_PASSPHRASE }} revision: ${{ github.event.release.tag_name }} maven-version: ${{ env.MAVEN_VERSION }} - name: Echo Status diff --git a/.github/workflows/main-build.yml b/.github/workflows/main-build.yml index 6b92881..fd8f066 100644 --- a/.github/workflows/main-build.yml +++ b/.github/workflows/main-build.yml @@ -1,8 +1,8 @@ name: Main build and deploy env: - JAVA_VERSION: '17' - MAVEN_VERSION: '3.6.3' + JAVA_VERSION: '21' + MAVEN_VERSION: '3.9.15' on: push: @@ -14,19 +14,19 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java-version: [ 17, 21 ] + java-version: [ 21, 25 ] steps: - name: Checkout uses: actions/checkout@v6 - name: Build - uses: ./.github/actions/build + uses: cap-java/.github/actions/build@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main with: java-version: ${{ matrix.java-version }} maven-version: ${{ env.MAVEN_VERSION }} #- name: SonarQube Scan - # uses: ./.github/actions/scan-with-sonar + # uses: cap-java/.github/actions/scan-with-sonar@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main # if: ${{ matrix.java-version == 17 }} # with: # java-version: ${{ matrix.java-version }} @@ -34,19 +34,47 @@ jobs: # sonarq-token: ${{ secrets.SONARQ_TOKEN }} # github-token: ${{ secrets.GITHUB_TOKEN }} - # scan: - # name: Blackduck Scan - # runs-on: ubuntu-latest - # timeout-minutes: 15 - # steps: - # - name: Checkout - # uses: actions/checkout@v6 - # - name: Scan - # uses: ./.github/actions/scan-with-blackduck - # with: - # blackduck_token: ${{ secrets.BLACK_DUCK_TOKEN }} - # github_token: ${{ secrets.GITHUB_TOKEN }} - # maven-version: ${{ env.MAVEN_VERSION }} + blackduck: + name: Blackduck Scan + runs-on: ubuntu-latest + timeout-minutes: 30 + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + + - name: Scan With Black Duck + uses: cap-java/.github/actions/scan-with-blackduck@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main + with: + blackduck_token: ${{ secrets.BLACK_DUCK_TOKEN }} + maven-version: ${{ env.MAVEN_VERSION }} + project-name: com.sap.cds.feature.auditlog-ng + included-modules: cds-feature-auditlog-ng + # scan_mode determines the type of scan to perform + # Set to RAPID now for main and for PRs because the project com.sap.cds.feature.auditlog-ng is not available on https://sap.blackducksoftware.com/ + # Change back to FULL on main as soon as the project has been created on https://sap.blackducksoftware.com/. + scan_mode: RAPID + codeql: + name: CodeQL Scan + runs-on: ubuntu-latest + timeout-minutes: 60 + permissions: + contents: read + actions: read + security-events: write + packages: read + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + + - name: Scan With CodeQL + uses: cap-java/.github/actions/scan-with-codeql@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main + with: + maven-version: ${{ env.MAVEN_VERSION }} + java-version: ${{ env.JAVA_VERSION }} + language: java-kotlin + queries: security-extended deploy-snapshot: name: Deploy snapshot to Artifactory diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml index 2c6ea53..35fc086 100644 --- a/.github/workflows/pull-request-build.yml +++ b/.github/workflows/pull-request-build.yml @@ -1,36 +1,90 @@ name: Pull Request Voter +permissions: + actions: read + contents: read + packages: read + security-events: write + env: - MAVEN_VERSION: '3.6.3' + MAVEN_VERSION: '3.9.15' on: + workflow_dispatch: pull_request: branches: [ "main" ] + types: [reopened, synchronize, opened] jobs: + blackduck: + name: Blackduck Scan + runs-on: ubuntu-latest + timeout-minutes: 30 + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + + - name: Scan With Black Duck + uses: cap-java/.github/actions/scan-with-blackduck@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main + with: + blackduck_token: ${{ secrets.BLACK_DUCK_TOKEN }} + maven-version: ${{ env.MAVEN_VERSION }} + project-name: com.sap.cds.feature.auditlog-ng + included-modules: cds-feature-auditlog-ng + # scan_mode and rapid_compare_mode determine the type of scan to perform + # RAPID scan on a PR with BOM_COMPARE that will only tag issues introduced by the PR + # not pre-existing issues that could have appeared in the main branch in the meantime + # removing BOM_COMPARE for now since there is no project for cds-feature-auditlog-ng on https://sap.blackducksoftware.com/ + # include BOM_COMPARE as soon as the project is created + scan_mode: RAPID + #rapid_compare_mode: BOM_COMPARE + build: runs-on: ubuntu-latest strategy: matrix: - java-version: [ 17, 21 ] + java-version: [ 21, 25 ] steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Build - uses: ./.github/actions/build + uses: cap-java/.github/actions/build@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main with: java-version: ${{ matrix.java-version }} maven-version: ${{ env.MAVEN_VERSION }} #- name: SonarQube Scan - # uses: ./.github/actions/scan-with-sonar + # uses: cap-java/.github/actions/scan-with-sonar@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main # if: ${{ matrix.java-version == 17 }} # with: # java-version: ${{ matrix.java-version }} # maven-version: ${{ env.MAVEN_VERSION }} # sonarq-token: ${{ secrets.SONARQ_TOKEN }} # github-token: ${{ secrets.GITHUB_TOKEN }} + + codeql: + name: CodeQL Scan + runs-on: ubuntu-latest + timeout-minutes: 60 + permissions: + contents: read + actions: read + security-events: write + packages: read + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + + - name: Scan With CodeQL + uses: cap-java/.github/actions/scan-with-codeql@296573b55e906f5c77a1855bcfe4285cbbc5cac4 # main + with: + maven-version: ${{ env.MAVEN_VERSION }} + java-version: '21' + language: java-kotlin + queries: security-extended diff --git a/.pipeline/config.yml b/.pipeline/config.yml deleted file mode 100644 index 9881379..0000000 --- a/.pipeline/config.yml +++ /dev/null @@ -1,40 +0,0 @@ -steps: - mavenBuild: - verbose: false - verify: true - flatten: true - # https://www.project-piper.io/steps/mavenBuild/#dockerimage - # If empty, Docker is not used and the command is executed directly on the Jenkins system. - dockerImage: '' - - detectExecuteScan: - projectName: 'com.sap.cds.feature.auditlog-ng' - groups: - - 'CDSJAVA-OPEN-SOURCE' - serverUrl: 'https://sap.blackducksoftware.com/' - mavenExcludedScopes: [ "provided", "test" ] - failOn: [ 'BLOCKER', 'CRITICAL', 'MAJOR' ] - versioningModel: "major-minor" - detectTools: [ 'DETECTOR', 'BINARY_SCAN' ] - installArtifacts: true - repository: '/cap-java/auditlog-ng' - verbose: true - scanProperties: - - --detect.included.detector.types=MAVEN - - --detect.excluded.directories='**/node_modules,**/*test*,**/localrepo,**/target/site,**/*-site.jar' - - --detect.maven.build.command='-pl com.sap.cds:cds-feature-auditlog-ng' - # https://www.project-piper.io/steps/detectExecuteScan/#dockerimage - # If empty, Docker is not used and the command is executed directly on the Jenkins system. - dockerImage: '' - - sonarExecuteScan: - serverUrl: https://sonar.tools.sap - projectKey: cds-feature-auditlog-ng - # https://www.project-piper.io/steps/sonarExecuteScan/#dockerimage - # If empty, Docker is not used and the command is executed directly on the Jenkins system. - dockerImage: '' - options: - - sonar.qualitygate.wait=true - - sonar.java.source=17 - - sonar.exclusions=**/node_modules/**,**/target/** - - sonar.coverage.jacoco.xmlReportPaths=cds-feature-auditlog-ng/target/site/jacoco/jacoco.xml diff --git a/pom.xml b/pom.xml index 25799d1..7676f76 100644 --- a/pom.xml +++ b/pom.xml @@ -24,11 +24,11 @@ 0.0.4 - 17 + 21 ${java.version} UTF-8 2.0.0 - 4.6.1 + 5.0.0 2.7.2 2.8.3 1.61.0 @@ -37,7 +37,9 @@ 5.18.0 5.25.0 5.21.0 - 1.83 + 2.4.0 + 2.22.1 + 1.84 com.sap.cds @@ -55,6 +57,38 @@ + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-stdlib-common + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-stdlib-jdk7 + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + ${kotlin.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + com.sap.cds cds-services-bom