diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..7beec2511 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,554 @@ +version: 2.1 + +parameters: + docker-img: + type: 'string' + default: '' + +commands: + timeout: + parameters: + duration: + default: '5m' + type: 'string' + steps: + - run: + name: Cancel job after <> + background: true + command: | + sleep <> + echo "Cancelling job as <> has elapsed" + curl --fail -X POST -H "Circle-Token: ${CIRCLE_TOKEN}" "https://circleci.com/api/v1.1/project/github/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/${CIRCLE_BUILD_NUM}/cancel" + install-sdk: + parameters: + sdk: + type: 'string' + version: + type: 'string' + steps: + - restore_cache: + key: sdk-{{ .Environment.CIRCLE_JOB }}-{{ arch }}-<>-<> + - run: + name: Install SDK + command: | + curl -s "https://get.sdkman.io" | bash + source "$HOME/.sdkman/bin/sdkman-init.sh" + sdk version + sdk install <> <> + sdk default <> <> + sdk use <> <> + echo '### SDKMAN ###' >> "$BASH_ENV" + echo 'export SDKMAN_DIR="$HOME/.sdkman"' >> "$BASH_ENV" + echo '[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"' >> "$BASH_ENV" + source "$BASH_ENV" + - save_cache: + key: sdk-{{ .Environment.CIRCLE_JOB }}-{{ arch }}-<>-<> + paths: + - ~/.sdkman + start-db: + parameters: + docker-img: + type: 'string' + default: <> + topology: + type: 'string' + default: 'single' + ssl: + type: 'string' + default: 'false' + compression: + type: 'string' + default: 'false' + steps: + - run: + name: Start Database + command: ./docker/start_db.sh + environment: + DOCKER_IMAGE: <> + STARTER_MODE: <> + STARTER_DOCKER_IMAGE: 'docker.io/arangodb/arangodb-starter:0.18.5' + SSL: <> + COMPRESSION: <> + mvn-info: + parameters: + working_directory: + type: 'string' + default: '.' + steps: + - run: + name: mvn version + working_directory: <> + command: mvn --version + - run: + name: mvn dependency:tree + working_directory: <> + command: mvn dependency:tree + mvn-install: + steps: + - run: + name: mvn install + command: mvn install -Dmaven.test.skip=true -Dgpg.skip=true -Dmaven.javadoc.skip=true + setup_jwt: + steps: + - run: + name: Setup JWT + command: | + ENDPOINT=$(./docker/find_active_endpoint.sh) + echo "Active endpoint: $ENDPOINT" + JWT=$(curl "http://$ENDPOINT/_db/_system/_open/auth" -X POST -d '{"username":"root","password":"test"}' | jq ".jwt" | xargs) + echo "Setting JWT: $JWT" + sed -i "/arangodb.password/c\arangodb.jwt=$JWT" driver/src/test/resources/arangodb.properties + report: + parameters: + working_directory: + type: 'string' + default: '.' + steps: + - run: + name: Create reports + command: mvn surefire-report:report-only + working_directory: <> + - store_artifacts: + path: <>/target/site + load_cache: + steps: + - run: + name: Generate Cache Checksum + command: find . -name 'pom.xml' | sort | xargs cat > /tmp/maven_cache_seed + - restore_cache: + key: maven-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/maven_cache_seed" }} + store_cache: + steps: + - save_cache: + key: maven-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/maven_cache_seed" }} + paths: + - ~/.m2/repository + config_gpg: + steps: + - run: + name: Configure GPG + command: echo $GPG_PRIVATE_KEY | base64 --decode | gpg --batch --no-tty --import --yes + deploy: + steps: + - run: + name: Deploy to Apache Maven Central + command: mvn -s .circleci/maven-release-settings.xml -Dmaven.test.skip=true deploy + release: + steps: + - run: + name: Release to Apache Maven Central + command: mvn -s .circleci/maven-release-settings.xml -Dmaven.test.skip=true nexus-staging:release + environment: + MAVEN_OPTS: "--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED" + +executors: + j11: + docker: + - image: 'cimg/openjdk:11.0' + j17: + docker: + - image: 'cimg/openjdk:17.0' + j21: + docker: + - image: 'cimg/openjdk:21.0' + +jobs: + + test: + parameters: + docker-img: + type: 'string' + default: <> + topology: + type: 'string' + default: 'single' + ssl: + type: 'string' + default: 'false' + jdk: + type: 'string' + default: 'j21' + args: + type: 'string' + default: '' + jwt: + type: 'boolean' + default: false + executor: <> + steps: + - timeout + - checkout + - setup_remote_docker + - start-db: + docker-img: <> + topology: <> + ssl: <> + - when: + condition: + equal: [ true, <> ] + steps: + - setup_jwt + - load_cache + - mvn-info + - run: + name: Test + command: mvn -am -pl driver test -Dsurefire.failIfNoSpecifiedTests=false <> + - report: + working_directory: driver + - store_cache + + integration-test: + parameters: + args: + type: 'string' + default: '' + executor: 'j21' + steps: + - timeout + - checkout + - setup_remote_docker + - start-db + - load_cache + - mvn-info + - mvn-install + - run: + name: Test + command: mvn test <> + working_directory: integration-tests + - report: + working_directory: integration-tests + - store_cache + + sonar: + executor: 'j21' + resource_class: 'large' + steps: + - timeout + - checkout + - setup_remote_docker + - start-db + - load_cache + - mvn-info + - restore_cache: + name: Restore Sonar cache + key: sonar-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/maven_cache_seed" }} + - run: + name: Build and analyze + command: mvn -Pstatic-code-analysis -B -Dgpg.skip=true -am -pl driver verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=arangodb_arangodb-java-driver -Dmaven.javadoc.skip=true + - save_cache: + name: Save Sonar cache + key: sonar-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/maven_cache_seed" }} + paths: + - ~/.sonar/cache + - store_cache + + tutorial: + executor: 'j21' + steps: + - timeout + - checkout + - setup_remote_docker + - start-db + - load_cache + - mvn-info + - mvn-install + - run: + name: Run Maven + command: mvn compile exec:java -Dexec.mainClass=FirstProject + working_directory: tutorial/maven + - run: + name: Run Gradle + command: gradle run + working_directory: tutorial/gradle + - store_cache + + resilience-test: + executor: 'j21' + resource_class: 'large' + steps: + - timeout + - checkout + - setup_remote_docker + - start-db: + topology: 'cluster' + compression: 'true' + - load_cache + - mvn-info + - run: + name: Start Toxiproxy + command: ./bin/startProxy.sh + working_directory: resilience-tests + background: true + environment: + TOXIPROXY_VERSION: v2.9.0 + - mvn-install + - run: + name: Test + command: mvn test + working_directory: resilience-tests + - store_cache + + native: + parameters: + graalvm-version: + type: 'string' + project: + type: 'string' + ssl: + type: 'string' + default: 'false' + args: + type: 'string' + default: '' + resource-class: + type: 'string' + executor: 'j21' + resource_class: <> + steps: + - timeout + - checkout + - setup_remote_docker + - load_cache + - mvn-install + - install-sdk: + sdk: 'java' + version: <> + - start-db: + compression: 'true' + ssl: <> + - mvn-info: + working_directory: <> + - run: + name: Test Native + command: mvn test -Pnative -P'!arch-test' <> + working_directory: <> + - report: + working_directory: <> + - store_cache + + deploy: + executor: 'j11' + steps: + - timeout + - checkout + - load_cache + - mvn-info + - config_gpg + - deploy + - store_cache + + release: + executor: 'j11' + steps: + - timeout + - checkout + - load_cache + - mvn-info + - config_gpg + - deploy + - release + - store_cache + +workflows: + test-adb-version: + when: + not: <> + jobs: + - test: + name: test-single-<> + matrix: + parameters: + docker-img: + - 'docker.io/arangodb/arangodb:3.11' + - 'docker.io/arangodb/arangodb:3.12' + - 'docker.io/arangodb/enterprise:3.11' + - 'docker.io/arangodb/enterprise:3.12' + topology: + - 'single' + args: + - '-DenableSlowTests=true' + - test: + name: test-cluster-<> + matrix: + parameters: + docker-img: + - 'docker.io/arangodb/arangodb:3.11' + - 'docker.io/arangodb/arangodb:3.12' + - 'docker.io/arangodb/enterprise:3.11' + - 'docker.io/arangodb/enterprise:3.12' + topology: + - 'cluster' + test-adb-topology: + when: <> + jobs: + - test: + name: test-<> + matrix: + parameters: + topology: + - 'single' + - 'cluster' + args: + - '-DenableSlowTests=true' + test-active-failover: + when: + not: <> + jobs: + - test: + name: test-<>-<> + matrix: + parameters: + docker-img: + - 'docker.io/arangodb/arangodb:3.11' + - 'docker.io/arangodb/enterprise:3.11' + topology: + - 'activefailover' + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + test-user-language: + jobs: + - test: + name: test-<> + matrix: + parameters: + args: + - '-DargLine="-Duser.language=jp"' + - '-DargLine="-Duser.language=tr"' + test-jdk: + jobs: + - test: + name: test-<> + matrix: + parameters: + jdk: + - 'j17' + - 'j21' + test-jackson: + jobs: + - test: + name: test-<> + matrix: + parameters: + args: + - '-Dadb.jackson.version=2.17.1' + - '-Dadb.jackson.version=2.16.2' + - '-Dadb.jackson.version=2.15.4' + - '-Dadb.jackson.version=2.14.3' + - '-Dadb.jackson.version=2.13.5' + - '-Dadb.jackson.version=2.12.7' + - '-Dadb.jackson.version=2.11.4' + - '-Dadb.jackson.version=2.10.5' + test-ssl: + jobs: + - test: + name: test-ssl + matrix: + parameters: + ssl: + - 'true' + args: + - '-Dgroups=ssl -DSslTest=true' + test-jwt: + jobs: + - test: + name: test-jwt + matrix: + parameters: + jwt: + - true + integration-test: + jobs: + - integration-test: + name: integration-test-<> + matrix: + parameters: + args: + - '-Pinternal-serde' + - '-Pjackson-serde' + - '-Pjsonb-serde' + - '-Pplain' + sonar: + when: + not: <> + jobs: + - sonar: + name: sonar + tutorial: + jobs: + - tutorial + resilience-test: + jobs: + - resilience-test + native: + jobs: + - native: + name: native-<>-<> + matrix: + parameters: + graalvm-version: + - '22.0.1-graalce' + - '21.0.2-graalce' + project: + - 'driver' + - 'integration-tests' + resource-class: + - '2xlarge' + - native: + name: native-arm-<>-<> + matrix: + parameters: + graalvm-version: + - '22.0.1-graalce' + - '21.0.2-graalce' + project: + - 'driver' + - 'integration-tests' + resource-class: + - 'arm.2xlarge' + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - native: + name: native-ssl-<>-<> + matrix: + parameters: + graalvm-version: + - '22.0.1-graalce' + - '21.0.2-graalce' + project: + - 'driver' + - 'integration-tests' + args: + - '-Dgroups=ssl -DSslTest=true' + ssl: + - 'true' + resource-class: + - '2xlarge' + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + deploy: + jobs: + - deploy: + context: java-release + filters: + tags: + only: /^deploy.*/ + branches: + ignore: /.*/ + release: + jobs: + - release: + context: java-release + filters: + tags: + only: /^release.*/ + branches: + ignore: /.*/ diff --git a/.circleci/maven-release-settings.xml b/.circleci/maven-release-settings.xml new file mode 100644 index 000000000..be5b9aef8 --- /dev/null +++ b/.circleci/maven-release-settings.xml @@ -0,0 +1,25 @@ + + + + + ossrh + + true + + + ${env.GPG_KEYNAME} + ${env.GPG_PASSPHRASE} + + + + + + + ossrh + ${env.OSSRH_USERNAME} + ${env.OSSRH_PASSWORD} + + + + diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index 6df3725c5..000000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,88 +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" - -on: - workflow_dispatch: - push: - branches: - - main - paths-ignore: - - 'docker/**' - - 'tutorial/**' - - 'ChangeLog.md' - - 'README.md' - pull_request: - types: [ opened, synchronize, reopened ] - branches: - - main - schedule: - - cron: '0 0 * * *' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'java' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Set up JDK - uses: actions/setup-java@v2 - with: - java-version: 17 - distribution: 'adopt' - cache: maven - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - # 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. - - # 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 - - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 - - # â„šī¸ 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 the Autobuild fails above, remove it and uncomment the following three lines. - # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. - - # - run: | - # echo "Run, Build Application using script" - # ./location_of_script_within_repo/buildscript.sh - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/maven-deploy.yml b/.github/workflows/maven-deploy.yml deleted file mode 100644 index acca6dc1e..000000000 --- a/.github/workflows/maven-deploy.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Deploy - -on: - workflow_dispatch: - push: - tags: [ deploy** ] - -jobs: - deploy: - timeout-minutes: 20 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK - uses: actions/setup-java@v3 - with: - java-version: '11' - distribution: 'adopt' - cache: 'maven' - server-id: ossrh - server-username: MAVEN_USERNAME - server-password: MAVEN_CENTRAL_TOKEN - gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} - gpg-passphrase: MAVEN_GPG_PASSPHRASE - - name: Publish to Apache Maven Central - run: mvn --no-transfer-progress -Ddeploy -Dmaven.test.skip=true deploy - env: - MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} - MAVEN_CENTRAL_TOKEN: ${{ secrets.OSSRH_PASSWORD }} - MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} diff --git a/.github/workflows/maven-release.yml b/.github/workflows/maven-release.yml deleted file mode 100644 index f8604f238..000000000 --- a/.github/workflows/maven-release.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Release - -on: - workflow_dispatch: - push: - tags: [ release** ] - -jobs: - release: - timeout-minutes: 20 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK - uses: actions/setup-java@v3 - with: - java-version: '11' - distribution: 'adopt' - cache: 'maven' - server-id: ossrh - server-username: MAVEN_USERNAME - server-password: MAVEN_CENTRAL_TOKEN - gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} - gpg-passphrase: MAVEN_GPG_PASSPHRASE - - name: Publish to Apache Maven Central - run: mvn --no-transfer-progress -Ddeploy -Dmaven.test.skip=true deploy - env: - MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} - MAVEN_CENTRAL_TOKEN: ${{ secrets.OSSRH_PASSWORD }} - MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - - name: Release to Apache Maven Central - run: mvn --no-transfer-progress -Ddeploy -Dmaven.test.skip=true nexus-staging:release - env: - MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} - MAVEN_CENTRAL_TOKEN: ${{ secrets.OSSRH_PASSWORD }} - MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} diff --git a/.github/workflows/native.yml b/.github/workflows/native.yml deleted file mode 100644 index 5fb31da0a..000000000 --- a/.github/workflows/native.yml +++ /dev/null @@ -1,95 +0,0 @@ -name: Native Tests - -on: - workflow_dispatch: - push: - tags: [ v** ] - -jobs: - test-native: - timeout-minutes: 20 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - docker-img: - - docker.io/arangodb/enterprise:3.12 - topology: - - cluster - module: - - driver - - integration-tests - compression: - - true - graalvm: - - '21.0.2' - - '22.0.1' - - steps: - - uses: actions/checkout@v2 - - uses: graalvm/setup-graalvm@v1 - with: - java-version: ${{matrix.graalvm}} - distribution: 'graalvm-community' - components: 'js' - cache: 'maven' - native-image-job-reports: 'true' - github-token: ${{ secrets.GITHUB_TOKEN }} - - name: Start Database - run: ./docker/start_db.sh - env: - ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }} - STARTER_MODE: ${{matrix.topology}} - DOCKER_IMAGE: ${{matrix.docker-img}} - COMPRESSION: ${{matrix.compression}} - - name: Info - run: mvn -version - - name: Install - run: mvn --no-transfer-progress install -DskipTests=true -Dgpg.skip=true -Dmaven.javadoc.skip=true - - name: Test Native - working-directory: ${{matrix.module}} - run: mvn --no-transfer-progress -Pnative -P'!arch-test' -DenableSlowTests=true test - - test-native-ssl: - timeout-minutes: 20 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - docker-img: - - docker.io/arangodb/enterprise:3.11 - topology: - - single - module: - - driver - - integration-tests - graalvm: - - '21.0.2' - - '22.0.1' - - steps: - - uses: actions/checkout@v2 - - uses: graalvm/setup-graalvm@v1 - with: - java-version: ${{matrix.graalvm}} - distribution: 'graalvm-community' - components: 'js' - cache: 'maven' - native-image-job-reports: 'true' - github-token: ${{ secrets.GITHUB_TOKEN }} - - name: Start Database - run: ./docker/start_db.sh - env: - ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }} - STARTER_MODE: ${{matrix.topology}} - DOCKER_IMAGE: ${{matrix.docker-img}} - SSL: true - - name: Info - run: mvn -version - - name: Install - run: mvn --no-transfer-progress install -DskipTests=true -Dgpg.skip=true -Dmaven.javadoc.skip=true - - name: Test Native - working-directory: ${{matrix.module}} - run: mvn --no-transfer-progress -Pnative -P'!arch-test' -Dgroups=ssl -DSslTest=true -DenableSlowTests=true test diff --git a/.github/workflows/resilience.yml b/.github/workflows/resilience.yml deleted file mode 100644 index 7d2efe4ac..000000000 --- a/.github/workflows/resilience.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Resilience Tests - -on: - workflow_dispatch: - push: - branches: - - main - - devel - paths-ignore: - - 'docker/**' - - 'tutorial/**' - - 'ChangeLog.md' - - 'README.md' - pull_request: - types: [ opened, synchronize, reopened ] - branches: - - main - - -jobs: - test: - if: '! github.event.pull_request.draft' - timeout-minutes: 20 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - include: - - docker-img: docker.io/arangodb/enterprise:3.11 - compression: false - - docker-img: docker.io/arangodb/arangodb:3.12 - compression: true - - env: - TOXIPROXY_VERSION: v2.7.0 - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK - uses: actions/setup-java@v2 - with: - java-version: 21 - distribution: 'adopt' - cache: maven - - name: Start Database - run: ./docker/start_db.sh - env: - STARTER_MODE: cluster - DOCKER_IMAGE: ${{matrix.docker-img}} - COMPRESSION: ${{matrix.compression}} - - name: Info - run: mvn -version - - name: Start Toxiproxy - working-directory: resilience-tests - run: ./bin/startProxy.sh - - name: Install - run: mvn --no-transfer-progress install -DskipTests=true -Dgpg.skip=true -Dmaven.javadoc.skip=true - - name: Test - working-directory: resilience-tests - run: mvn --no-transfer-progress -DenableSlowTests=true test diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index a4bbfc881..000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,310 +0,0 @@ -name: Test - -on: - workflow_dispatch: - push: - branches: - - main - - devel - paths-ignore: - - 'docker/**' - - 'tutorial/**' - - 'ChangeLog.md' - - 'README.md' - pull_request: - types: [ opened, synchronize, reopened ] - branches: - - main - - devel - -jobs: - - test: - if: '! github.event.pull_request.draft' - timeout-minutes: 20 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - docker-img: - - docker.io/arangodb/arangodb:3.11 - - docker.io/arangodb/arangodb:3.12 - - docker.io/arangodb/enterprise:3.11 - - docker.io/arangodb/enterprise:3.12 - starter-docker-img: - # support activefailover - - docker.io/arangodb/arangodb-starter:0.18.5 - topology: - - single - - cluster - - activefailover - java-version: - - 21 - user-language: - - en - exclude: - - docker-img: docker.io/arangodb/arangodb:3.12 - topology: activefailover - - docker-img: docker.io/arangodb/enterprise:3.12 - topology: activefailover - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK - uses: actions/setup-java@v2 - with: - java-version: ${{matrix.java-version}} - distribution: 'adopt' - cache: maven - - name: Start Database - run: ./docker/start_db.sh - env: - ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }} - STARTER_MODE: ${{matrix.topology}} - DOCKER_IMAGE: ${{matrix.docker-img}} - STARTER_DOCKER_IMAGE: ${{matrix.starter-docker-img}} - - name: Info - run: mvn -version - - name: Test - run: mvn --no-transfer-progress -am -pl driver test -DargLine="-Duser.language=${{matrix.user-language}}" -DenableSlowTests=true - - test-ssl: - if: '! github.event.pull_request.draft' - timeout-minutes: 10 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - docker-img: - - docker.io/arangodb/arangodb:3.11 - topology: - - single - java-version: - - 21 - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK - uses: actions/setup-java@v2 - with: - java-version: ${{matrix.java-version}} - distribution: 'adopt' - cache: maven - - name: Start Database - run: ./docker/start_db.sh - env: - ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }} - STARTER_MODE: ${{matrix.topology}} - DOCKER_IMAGE: ${{matrix.docker-img}} - SSL: true - - name: Info - run: mvn -version - - name: Test - run: mvn --no-transfer-progress -Dgroups=ssl -DSslTest=true -DenableSlowTests=true -am -pl driver test - - # test encodeURIComponent() and normalize('NFC') comparing to Javascript behavior - test-graalvm: - if: '! github.event.pull_request.draft' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: graalvm/setup-graalvm@v1 - with: - java-version: '21.0.1' - distribution: 'graalvm' - cache: 'maven' - github-token: ${{ secrets.GITHUB_TOKEN }} - - name: Info - run: mvn -version - - name: Test - run: mvn -e --no-transfer-progress -am -pl driver test -Dtest=graalvm.UnicodeUtilsTest -Dsurefire.failIfNoSpecifiedTests=false -DenableSlowTests=true - - test-jwt: - if: '! github.event.pull_request.draft' - timeout-minutes: 20 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - docker-img: - - docker.io/arangodb/enterprise:3.11 - starter-docker-img: - # support activefailover - - docker.io/arangodb/arangodb-starter:0.18.5 - topology: - - single - - cluster - - activefailover - java-version: - - 21 - user-language: - - en - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK - uses: actions/setup-java@v2 - with: - java-version: ${{matrix.java-version}} - distribution: 'adopt' - cache: maven - - name: Start Database - run: ./docker/start_db.sh - env: - ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }} - STARTER_MODE: ${{matrix.topology}} - DOCKER_IMAGE: ${{matrix.docker-img}} - STARTER_DOCKER_IMAGE: ${{matrix.starter-docker-img}} - - name: Set JWT - run: | - ENDPOINT=$(./docker/find_active_endpoint.sh) - echo "Active endpoint: $ENDPOINT" - JWT=$(curl "http://$ENDPOINT/_db/_system/_open/auth" -X POST -d '{"username":"root","password":"test"}' | jq ".jwt" | xargs) - echo "Setting JWT: $JWT" - sed -i "/arangodb.password/c\arangodb.jwt=$JWT" driver/src/test/resources/arangodb.properties - - name: Info - run: mvn -version - - name: Test - run: mvn --no-transfer-progress -am -pl driver test -DargLine="-Duser.language=${{matrix.user-language}}" -DenableSlowTests=true - - jackson-test: - if: '! github.event.pull_request.draft' - timeout-minutes: 20 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - jackson-version: - - 2.17.1 - - 2.16.2 - - 2.15.4 - - 2.14.3 - - 2.13.5 - - 2.12.7 - - 2.11.4 - - 2.10.5 - docker-img: - - docker.io/arangodb/arangodb:3.11 - topology: - - single - java-version: - - 21 - user-language: - - en - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK - uses: actions/setup-java@v2 - with: - java-version: ${{matrix.java-version}} - distribution: 'adopt' - cache: maven - - name: Start Database - run: ./docker/start_db.sh - env: - ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }} - STARTER_MODE: ${{matrix.topology}} - DOCKER_IMAGE: ${{matrix.docker-img}} - - name: Info - run: mvn -version - - name: Test - run: mvn --no-transfer-progress -am -pl driver test -Dadb.jackson.version=${{matrix.jackson-version}} -DenableSlowTests=true - - integration-tests: - if: '! github.event.pull_request.draft' - timeout-minutes: 20 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - docker-img: - - docker.io/arangodb/arangodb:3.12 - topology: - - single - java-version: - - 17 - - 21 - compression: - - true - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK - uses: actions/setup-java@v2 - with: - java-version: ${{matrix.java-version}} - distribution: 'adopt' - cache: maven - - name: Start Database - run: ./docker/start_db.sh - env: - STARTER_MODE: ${{matrix.topology}} - DOCKER_IMAGE: ${{matrix.docker-img}} - COMPRESSION: ${{matrix.compression}} - - name: Info - run: mvn -version - - name: Install - run: mvn --no-transfer-progress install -DskipTests=true -Dgpg.skip=true -Dmaven.javadoc.skip=true - - name: Test internal-serde - working-directory: integration-tests - run: mvn --no-transfer-progress -Pinternal-serde test - - name: Test jackson-serde - working-directory: integration-tests - run: mvn --no-transfer-progress -Pjackson-serde test - - name: Test jsonb-serde - working-directory: integration-tests - run: mvn --no-transfer-progress -Pjsonb-serde test - - name: Test plain - working-directory: integration-tests - run: mvn --no-transfer-progress -Pplain test - - sonar: - if: '! github.event.pull_request.draft' - timeout-minutes: 10 - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - docker-img: - - docker.io/arangodb/enterprise:3.11 - topology: - - cluster - java-version: - - 17 - - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - name: Set up JDK - uses: actions/setup-java@v2 - with: - java-version: ${{matrix.java-version}} - distribution: 'adopt' - cache: maven - - name: Start Database - run: ./docker/start_db.sh - env: - ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }} - STARTER_MODE: ${{matrix.topology}} - DOCKER_IMAGE: ${{matrix.docker-img}} - - name: Info - run: mvn -version - - name: Cache SonarCloud packages - uses: actions/cache@v1 - with: - path: ~/.sonar/cache - key: ${{ runner.os }}-sonar - restore-keys: ${{ runner.os }}-sonar - - name: Build and analyze - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: mvn --no-transfer-progress -Pstatic-code-analysis -B -Dgpg.skip=true -am -pl driver verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=arangodb_arangodb-java-driver -Dmaven.javadoc.skip=true -DenableSlowTests=true diff --git a/.github/workflows/tutorial.yml b/.github/workflows/tutorial.yml deleted file mode 100644 index 84c00b2c4..000000000 --- a/.github/workflows/tutorial.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Tutorial - -on: - workflow_dispatch: - push: - tags: [ v** ] - -jobs: - tutorial: - timeout-minutes: 20 - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK - uses: actions/setup-java@v4 - with: - java-version: 21 - distribution: 'adopt' - cache: maven - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - name: Start Database - run: ./docker/start_db.sh - - name: Install - run: mvn --no-transfer-progress install -DskipTests=true -Dgpg.skip=true -Dmaven.javadoc.skip=true - - name: Execute Maven - working-directory: tutorial/maven - run: mvn compile exec:java -Dexec.mainClass=FirstProject - - name: Execute Gradle - working-directory: tutorial/gradle - run: gradle run diff --git a/.gitignore b/.gitignore index ae4e4673f..ec9fc91ff 100644 --- a/.gitignore +++ b/.gitignore @@ -6,10 +6,6 @@ target *.iml .directory -/docker/jwtHeader -/docker/jwtSecret -/docker/data - test-results-native .flattened-pom.xml /resilience-tests/bin/toxiproxy-server-linux-amd64 diff --git a/README.md b/README.md index 21aa2d1ce..adc810431 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ # ArangoDB Java Driver [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.arangodb/arangodb-java-driver/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.arangodb/arangodb-java-driver) -[![Actions Status](https://github.com/arangodb/arangodb-java-driver/workflows/Java%20CI/badge.svg)](https://github.com/arangodb/arangodb-java-driver/actions) +[![CircleCI](https://dl.circleci.com/status-badge/img/gh/arangodb/arangodb-java-driver/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/arangodb/arangodb-java-driver/tree/main) The official [ArangoDB](https://www.arangodb.com/) Java Driver. diff --git a/docker/jwtHeader b/docker/jwtHeader new file mode 100644 index 000000000..153e1b8a1 --- /dev/null +++ b/docker/jwtHeader @@ -0,0 +1 @@ +Authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhcmFuZ29kYiIsInNlcnZlcl9pZCI6ImZvbyJ9.QmuhPHkmRPJuHGxsEqggHGRyVXikV44tb5YU_yWEvEM diff --git a/docker/jwtSecret b/docker/jwtSecret new file mode 100644 index 000000000..ea75728ba --- /dev/null +++ b/docker/jwtSecret @@ -0,0 +1 @@ +Averysecretword diff --git a/docker/start_db.sh b/docker/start_db.sh index b8b012637..4c0c2e9a2 100755 --- a/docker/start_db.sh +++ b/docker/start_db.sh @@ -26,9 +26,6 @@ docker pull $STARTER_DOCKER_IMAGE docker pull $DOCKER_IMAGE LOCATION=$(pwd)/$(dirname "$0") - -echo "Averysecretword" > "$LOCATION"/jwtSecret -docker run --rm -v "$LOCATION"/jwtSecret:/jwtSecret "$STARTER_DOCKER_IMAGE" auth header --auth.jwt-secret /jwtSecret > "$LOCATION"/jwtHeader AUTHORIZATION_HEADER=$(cat "$LOCATION"/jwtHeader) STARTER_ARGS= @@ -41,7 +38,7 @@ if [ "$STARTER_MODE" == "single" ]; then fi if [ "$SSL" == "true" ]; then - STARTER_ARGS="$STARTER_ARGS --ssl.keyfile=server.pem" + STARTER_ARGS="$STARTER_ARGS --ssl.keyfile=/data/server.pem" SCHEME=https ARANGOSH_SCHEME=http+ssl fi @@ -50,25 +47,22 @@ if [ "$COMPRESSION" == "true" ]; then STARTER_ARGS="${STARTER_ARGS} --all.http.compress-response-threshold=1" fi -if [ "$USE_MOUNTED_DATA" == "true" ]; then - STARTER_ARGS="${STARTER_ARGS} --starter.data-dir=/data" - MOUNT_DATA="-v $LOCATION/data:/data" - echo $MOUNT_DATA -fi +# data volume +docker create -v /data --name arangodb-data alpine:3 /bin/true +docker cp "$LOCATION"/jwtSecret arangodb-data:/data +docker cp "$LOCATION"/server.pem arangodb-data:/data docker run -d \ --name=adb \ -p 8528:8528 \ - -v "$LOCATION"/server.pem:/server.pem \ - -v "$LOCATION"/jwtSecret:/jwtSecret \ - $MOUNT_DATA \ + --volumes-from arangodb-data \ -v /var/run/docker.sock:/var/run/docker.sock \ -e ARANGO_LICENSE_KEY="$ARANGO_LICENSE_KEY" \ $STARTER_DOCKER_IMAGE \ $STARTER_ARGS \ --docker.net-mode=default \ --docker.container=adb \ - --auth.jwt-secret=/jwtSecret \ + --auth.jwt-secret=/data/jwtSecret \ --starter.address="${GW}" \ --docker.image="${DOCKER_IMAGE}" \ --starter.local --starter.mode=${STARTER_MODE} --all.log.level=debug --all.log.output=+ --log.verbose \ diff --git a/driver/src/test/java/com/arangodb/ArangoCollectionAsyncTest.java b/driver/src/test/java/com/arangodb/ArangoCollectionAsyncTest.java index d8ccbe0ed..67af36ee4 100644 --- a/driver/src/test/java/com/arangodb/ArangoCollectionAsyncTest.java +++ b/driver/src/test/java/com/arangodb/ArangoCollectionAsyncTest.java @@ -755,6 +755,7 @@ void getDocumentsWithCustomShardingKey(ArangoCollectionAsync c) throws Execution @ParameterizedTest @MethodSource("asyncCols") void getDocumentsDirtyRead(ArangoCollectionAsync collection) throws ExecutionException, InterruptedException { + assumeTrue(isCluster()); // skip activefailover final Collection values = new ArrayList<>(); values.add(new BaseDocument("1")); values.add(new BaseDocument("2")); diff --git a/driver/src/test/java/com/arangodb/ArangoCollectionTest.java b/driver/src/test/java/com/arangodb/ArangoCollectionTest.java index 2c4c9e318..04fbcacc5 100644 --- a/driver/src/test/java/com/arangodb/ArangoCollectionTest.java +++ b/driver/src/test/java/com/arangodb/ArangoCollectionTest.java @@ -780,6 +780,7 @@ void getDocumentsWithCustomShardingKey(ArangoCollection c) { @ParameterizedTest @MethodSource("cols") void getDocumentsDirtyRead(ArangoCollection collection) { + assumeTrue(isCluster()); // skip activefailover final Collection values = new ArrayList<>(); values.add(new BaseDocument("1")); values.add(new BaseDocument("2")); diff --git a/driver/src/test/java/com/arangodb/ArangoDBAsyncTest.java b/driver/src/test/java/com/arangodb/ArangoDBAsyncTest.java index a97f5f08b..0f10df63c 100644 --- a/driver/src/test/java/com/arangodb/ArangoDBAsyncTest.java +++ b/driver/src/test/java/com/arangodb/ArangoDBAsyncTest.java @@ -609,7 +609,7 @@ void arangoDBException(ArangoDBAsync arangoDB) { void fallbackHost() throws ExecutionException, InterruptedException { final ArangoDBAsync arangoDB = new ArangoDB.Builder() .loadProperties(config) - .host("not-accessible", 8529).host("127.0.0.1", 8529) + .host("not-accessible", 8529).host("172.28.0.1", 8529) .build() .async(); final ArangoDBVersion version = arangoDB.getVersion().get(); diff --git a/driver/src/test/java/com/arangodb/ArangoDBTest.java b/driver/src/test/java/com/arangodb/ArangoDBTest.java index fcab39cb8..da34073e4 100644 --- a/driver/src/test/java/com/arangodb/ArangoDBTest.java +++ b/driver/src/test/java/com/arangodb/ArangoDBTest.java @@ -621,7 +621,7 @@ void arangoDBException(ArangoDB arangoDB) { void fallbackHost() { final ArangoDB arangoDB = new ArangoDB.Builder() .loadProperties(config) - .host("not-accessible", 8529).host("127.0.0.1", 8529).build(); + .host("not-accessible", 8529).host("172.28.0.1", 8529).build(); final ArangoDBVersion version = arangoDB.getVersion(); assertThat(version).isNotNull(); } diff --git a/driver/src/test/java/com/arangodb/ArangoSslTest.java b/driver/src/test/java/com/arangodb/ArangoSslTest.java index f7f7af0a7..45cd82fda 100644 --- a/driver/src/test/java/com/arangodb/ArangoSslTest.java +++ b/driver/src/test/java/com/arangodb/ArangoSslTest.java @@ -35,6 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.catchThrowable; +import static org.junit.jupiter.api.Assumptions.assumeTrue; /** @@ -60,6 +61,8 @@ class ArangoSslTest { @ParameterizedTest @EnumSource(Protocol.class) void connect(Protocol protocol) throws Exception { + assumeTrue(protocol != Protocol.VST); + final KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); ks.load(this.getClass().getResourceAsStream(SSL_TRUSTSTORE), SSL_TRUSTSTORE_PASSWORD.toCharArray()); @@ -74,10 +77,12 @@ void connect(Protocol protocol) throws Exception { final ArangoDB arangoDB = new ArangoDB.Builder() .protocol(protocol) - .host("localhost", 8529) + .host("172.28.0.1", 8529) .password("test") .useSsl(true) - .sslContext(sc).build(); + .sslContext(sc) + .verifyHost(false) + .build(); final ArangoDBVersion version = arangoDB.getVersion(); assertThat(version).isNotNull(); } @@ -85,9 +90,11 @@ void connect(Protocol protocol) throws Exception { @ParameterizedTest @EnumSource(Protocol.class) void connectWithoutValidSslContext(Protocol protocol) { + assumeTrue(protocol != Protocol.VST); + final ArangoDB arangoDB = new ArangoDB.Builder() .protocol(protocol) - .host("localhost", 8529) + .host("172.28.0.1", 8529) .useSsl(true) .build(); Throwable thrown = catchThrowable(arangoDB::getVersion); diff --git a/driver/src/test/java/com/arangodb/example/ssl/SslExampleTest.java b/driver/src/test/java/com/arangodb/example/ssl/SslExampleTest.java index 4fae3abe6..d7dae8dbb 100644 --- a/driver/src/test/java/com/arangodb/example/ssl/SslExampleTest.java +++ b/driver/src/test/java/com/arangodb/example/ssl/SslExampleTest.java @@ -27,6 +27,7 @@ import com.arangodb.entity.ArangoDBVersion; import com.arangodb.util.TestUtils; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.condition.EnabledIfSystemProperty; import org.junit.jupiter.params.ParameterizedTest; @@ -67,15 +68,17 @@ class SslExampleTest { @BeforeAll static void fetchVersion() throws Exception { ArangoDB adb = new ArangoDB.Builder() - .host("localhost", 8529) + .host("172.28.0.1", 8529) .password("test") .useSsl(true) .sslContext(createSslContext()) + .verifyHost(false) .build(); version = adb.getVersion(); adb.shutdown(); } + @Disabled("Only local execution, in CircleCI port 8529 exposed to localhost") @ParameterizedTest @EnumSource(Protocol.class) void connect(Protocol protocol) throws Exception { @@ -96,7 +99,7 @@ void connect(Protocol protocol) throws Exception { void noopHostnameVerifier(Protocol protocol) throws Exception { assumeTrue(!protocol.equals(Protocol.VST) || TestUtils.isLessThanVersion(version.getVersion(), 3, 12, 0)); final ArangoDB arangoDB = new ArangoDB.Builder() - .host("127.0.0.1", 8529) + .host("172.28.0.1", 8529) .password("test") .useSsl(true) .sslContext(createSslContext()) @@ -112,7 +115,7 @@ void noopHostnameVerifier(Protocol protocol) throws Exception { void hostnameVerifierFailure(Protocol protocol) throws Exception { assumeTrue(protocol != Protocol.VST, "VST does not support hostname verification"); final ArangoDB arangoDB = new ArangoDB.Builder() - .host("127.0.0.1", 8529) + .host("172.28.0.1", 8529) .password("test") .useSsl(true) .sslContext(createSslContext()) diff --git a/driver/src/test/java/com/arangodb/internal/HostHandlerTest.java b/driver/src/test/java/com/arangodb/internal/HostHandlerTest.java index 706d05e58..674c14851 100644 --- a/driver/src/test/java/com/arangodb/internal/HostHandlerTest.java +++ b/driver/src/test/java/com/arangodb/internal/HostHandlerTest.java @@ -59,7 +59,7 @@ public void close() { } }; - private static final Host HOST_0 = new HostImpl(mockCP, new HostDescription("127.0.0.1", 8529)); + private static final Host HOST_0 = new HostImpl(mockCP, new HostDescription("172.28.0.1", 8529)); private static final HostResolver SINGLE_HOST = () -> { HostSet set = new HostSet(Collections.emptyList()); set.addHost(HOST_0); diff --git a/driver/src/test/resources/arangodb-bad.properties b/driver/src/test/resources/arangodb-bad.properties index 2b2743531..8a45d9ee0 100644 --- a/driver/src/test/resources/arangodb-bad.properties +++ b/driver/src/test/resources/arangodb-bad.properties @@ -1 +1 @@ -arangodb.hosts=127.0.0.1:8529,127.0.0.1:fail \ No newline at end of file +arangodb.hosts=172.28.0.1:8529,172.28.0.1:fail \ No newline at end of file diff --git a/resilience-tests/bin/startProxy.sh b/resilience-tests/bin/startProxy.sh index 00c1802df..38515448d 100755 --- a/resilience-tests/bin/startProxy.sh +++ b/resilience-tests/bin/startProxy.sh @@ -2,4 +2,4 @@ wget -O bin/toxiproxy-server-linux-amd64 https://github.com/Shopify/toxiproxy/releases/download/${TOXIPROXY_VERSION}/toxiproxy-server-linux-amd64 chmod a+x bin/toxiproxy-server-linux-amd64 -bin/toxiproxy-server-linux-amd64 & +./bin/toxiproxy-server-linux-amd64 diff --git a/resilience-tests/src/test/java/resilience/connection/AcquireHostListTest.java b/resilience-tests/src/test/java/resilience/connection/AcquireHostListTest.java index 32faa7b5b..be8d02d5f 100644 --- a/resilience-tests/src/test/java/resilience/connection/AcquireHostListTest.java +++ b/resilience-tests/src/test/java/resilience/connection/AcquireHostListTest.java @@ -21,7 +21,7 @@ public class AcquireHostListTest extends ClusterTest { @MethodSource("protocolProvider") void acquireHostList(Protocol protocol) { ArangoDB adb = new ArangoDB.Builder() - .host("127.0.0.1", 8529) + .host("172.28.0.1", 8529) .password("test") .acquireHostList(true) .protocol(protocol) @@ -44,7 +44,7 @@ void acquireHostList(Protocol protocol) { @EnumSource(LoadBalancingStrategy.class) void acquireHostListWithLoadBalancingStrategy(LoadBalancingStrategy lb) { ArangoDB adb = new ArangoDB.Builder() - .host("127.0.0.1", 8529) + .host("172.28.0.1", 8529) .password("test") .acquireHostList(true) .loadBalancingStrategy(lb) diff --git a/resilience-tests/src/test/java/resilience/protocol/ProtocolTest.java b/resilience-tests/src/test/java/resilience/protocol/ProtocolTest.java index b7a09d093..b849a3786 100644 --- a/resilience-tests/src/test/java/resilience/protocol/ProtocolTest.java +++ b/resilience-tests/src/test/java/resilience/protocol/ProtocolTest.java @@ -48,7 +48,7 @@ static Stream args() { void shouldUseConfiguredProtocol(Protocol p, String expectedLog) { assumeTrue(!p.equals(Protocol.VST) || isLessThanVersion(3, 12)); ArangoDB adb = new ArangoDB.Builder() - .host("localhost", 8529) + .host("172.28.0.1", 8529) .password("test") .protocol(p) .build(); @@ -64,11 +64,12 @@ void shouldUseConfiguredProtocol(Protocol p, String expectedLog) { void shouldUseConfiguredProtocolWithTLS(Protocol p, String expectedLog) throws Exception { assumeTrue(!p.equals(Protocol.VST) || isLessThanVersion(3, 12)); ArangoDB adb = new ArangoDB.Builder() - .host("localhost", 8529) + .host("172.28.0.1", 8529) .password("test") .protocol(p) .useSsl(true) .sslContext(sslContext()) + .verifyHost(false) .build(); adb.getVersion(); assertThat(logs.getLogs()).anyMatch(it -> it.getLoggerName().contains(expectedLog)); diff --git a/tutorial/maven/src/main/java/FirstProject.java b/tutorial/maven/src/main/java/FirstProject.java index 80e188497..eab073c13 100644 --- a/tutorial/maven/src/main/java/FirstProject.java +++ b/tutorial/maven/src/main/java/FirstProject.java @@ -9,7 +9,7 @@ public class FirstProject { private static final ArangoDB arangoDB = new ArangoDB.Builder() - .host("localhost", 8529) + .host("172.28.0.1", 8529) .password("test") .build();