diff --git a/.github/workflows/gradle.yml b/.github/workflows/ci.yml
similarity index 75%
rename from .github/workflows/gradle.yml
rename to .github/workflows/ci.yml
index 8a643fe0..2947d9b9 100644
--- a/.github/workflows/gradle.yml
+++ b/.github/workflows/ci.yml
@@ -36,11 +36,9 @@ jobs:
- latest
os:
- ubuntu-latest
- - windows-latest
- include:
- # TODO(casz) remove once https://github.com/testcontainers/testcontainers-java/pull/1780 is available
- - os: 'ubuntu-latest'
- tasks: 'integrationTest'
+ # TODO: We disable Windows because testcontainers doesn't support runs in containers
+ # (see https://github.com/testcontainers/testcontainers-java/pull/1780)
+ # - windows-latest
steps:
- name: Checkout code
@@ -52,14 +50,8 @@ jobs:
java-version: ${{ matrix.java }}
distribution: temurin
- - name: Build with Gradle
- uses: gradle/gradle-build-action@v2
- with:
- arguments: |
- build
- ${{ matrix.tasks }}
- -s
- --info
+ - name: Build with Maven
+ run: mvn --batch-mode --update-snapshots verify
env:
VAULT_VERSION: ${{ matrix.vault }}
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 00000000..c0bcafe9
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,3 @@
+wrapperVersion=3.3.4
+distributionType=only-script
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index 82854f1c..00000000
--- a/build.gradle
+++ /dev/null
@@ -1,219 +0,0 @@
-plugins {
- id 'java-library'
- id 'signing'
- id 'checkstyle'
- id 'maven-publish'
-}
-
-
-group 'io.github.jopenlibs'
-archivesBaseName = 'vault-java-driver'
-version '6.2.0'
-
-sourceCompatibility = 11
-targetCompatibility = 11
-
-repositories {
- mavenCentral()
-}
-
-dependencies {
- testImplementation('junit:junit:4.13.2')
- testImplementation('org.mockito:mockito-core:5.4.0')
- testImplementation('org.testcontainers:testcontainers:1.19.1')
- testImplementation('org.eclipse.jetty:jetty-server:11.0.15')
- testImplementation('org.slf4j:slf4j-api:2.0.7')
- testImplementation('org.bouncycastle:bcprov-jdk15on:1.70')
- testImplementation('org.bouncycastle:bcpkix-jdk15on:1.70')
- testImplementation('org.apache.commons:commons-io:1.3.2')
-
- testRuntimeOnly('org.slf4j:slf4j-simple:2.0.5')
-}
-
-compileJava {
- options.compilerArgs = ['--release', targetCompatibility.toString()]
-}
-
-tasks.withType(JavaCompile).configureEach {
- options.encoding = 'UTF-8'
-}
-
-tasks.register('javadocJar', Jar) {
- dependsOn tasks.named("javadoc")
- archiveClassifier.set('javadoc')
- from javadoc.destinationDir
-}
-
-tasks.register('sourcesJar', Jar) {
- dependsOn tasks.named("classes")
- archiveClassifier.set('sources')
- from sourceSets.main.allSource
-}
-
-//
-// Separate unit tests from integration tests. See: `src/test-integration/README.md`
-//
-sourceSets {
- unitTests {
- compileClasspath += main.output + test.output
- runtimeClasspath += main.output + test.output
- java.srcDir file('src/test/java')
- }
- integrationTests {
- compileClasspath += main.output + test.output
- runtimeClasspath += main.output + test.output
- java.srcDir file('src/test-integration/java')
- resources.srcDirs += file('src/test-integration/resources')
- }
-}
-
-configurations {
- unitTestsImplementation.extendsFrom testImplementation
- unitTestsRuntimeOnly.extendsFrom testRuntimeOnly
- integrationTestsImplementation.extendsFrom testImplementation
- integrationTestsRuntimeOnly.extendsFrom testRuntimeOnly
-}
-
-tasks.named('test') {
- useJUnit()
- testClassesDirs = sourceSets.unitTests.output.classesDirs
- classpath = sourceSets.unitTests.runtimeClasspath
- testLogging {
- events "passed", "skipped", "failed"
- }
-
- reports {
- html {
- required = false
- }
- junitXml {
- required = true
- }
- }
-}
-
-def integrationTestTask = tasks.register('integrationTest', Test) {
- useJUnit()
- testClassesDirs = sourceSets.integrationTests.output.classesDirs
- classpath = sourceSets.integrationTests.runtimeClasspath
- testLogging {
- events "passed", "skipped", "failed"
- }
-
- reports {
- html {
- required = false
- }
- junitXml {
- required = true
- }
- }
-}
-
-//
-// Deploying releases to Maven Central (or snapshots to a local Nexus repository).
-//
-// Snapshots are not signed... but signing the release artifact requires the following project properties:
-//
-// signing.keyId =
-// signing.password =
-// signing.secretKeyRingFile =
-//
-if (!hasProperty('ossrhUsername')) {
- ext.ossrhUsername = ''
-}
-if (!hasProperty('ossrhPassword')) {
- ext.ossrhPassword = ''
-}
-
-artifacts {
- archives javadocJar, sourcesJar
-}
-
-java {
- withSourcesJar()
- withJavadocJar()
-}
-
-if (hasProperty("publish")) {
-
- publishing {
- publications {
- mavenJava(MavenPublication) {
- artifactId = 'vault-java-driver'
- from components.java
-
- pom {
- name = 'vault-java-driver'
- packaging = 'jar'
- description = 'Zero-dependency Java client for HashiCorp\'s Vault'
- url = 'https://github.com/jopenlibs/vault-java-driver'
-
- scm {
- connection = 'https://github.com/jopenlibs/vault-java-driver.git'
- developerConnection = 'https://github.com/jopenlibs/vault-java-driver.git'
- url = 'https://github.com/jopenlibs/vault-java-driver'
- }
-
- licenses {
- license {
- name = 'MIT'
- url = 'https://github.com/jopenlibs/vault-java-driver/blob/master/README.md#license'
- }
- }
-
- developers {
- [
- developer {
- id = 'steve-perkins'
- name = 'Steve Perkins'
- email = 'steve@steveperkins.com'
- },
- developer {
- id = 'steve-perkins-bc'
- name = 'Steve Perkins'
- email = 'steve.perkins@bettercloud.com'
- },
- developer {
- id = 'jarrodcodes'
- name = 'Jarrod Young'
- email = 'jarrodsy@gmail.com'
- },
- developer {
- id = 'tledkov'
- name = 'Taras Ledkov'
- email = 'tledkov@apache.org'
- },
- developer {
- id = 'henryx'
- name = 'Enrico Bianchi'
- email = 'enrico.bianchi@gmail.com'
- }
- ]
- }
- }
- }
- }
- repositories {
- maven {
- credentials {
- username "$ossrhUsername"
- password "$ossrhPassword"
- }
- def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
- def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
- url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
- }
- }
- }
-
- signing {
- sign publishing.publications.mavenJava
- }
-
- javadoc {
- if (JavaVersion.current().isJava9Compatible()) {
- options.addBooleanOption('html5', true)
- }
- }
-}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 29953ea1..00000000
Binary files a/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 4d52a502..00000000
--- a/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Tue Jun 18 14:17:49 EDT 2019
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-8.2-all.zip
diff --git a/gradlew b/gradlew
deleted file mode 100755
index cccdd3d5..00000000
--- a/gradlew
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env sh
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
- cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
deleted file mode 100644
index f9553162..00000000
--- a/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/mvnw b/mvnw
new file mode 100755
index 00000000..bd8896bf
--- /dev/null
+++ b/mvnw
@@ -0,0 +1,295 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Apache Maven Wrapper startup batch script, version 3.3.4
+#
+# Optional ENV vars
+# -----------------
+# JAVA_HOME - location of a JDK home dir, required when download maven via java source
+# MVNW_REPOURL - repo url base for downloading maven distribution
+# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
+# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output
+# ----------------------------------------------------------------------------
+
+set -euf
+[ "${MVNW_VERBOSE-}" != debug ] || set -x
+
+# OS specific support.
+native_path() { printf %s\\n "$1"; }
+case "$(uname)" in
+CYGWIN* | MINGW*)
+ [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")"
+ native_path() { cygpath --path --windows "$1"; }
+ ;;
+esac
+
+# set JAVACMD and JAVACCMD
+set_java_home() {
+ # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched
+ if [ -n "${JAVA_HOME-}" ]; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ]; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ JAVACCMD="$JAVA_HOME/jre/sh/javac"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ JAVACCMD="$JAVA_HOME/bin/javac"
+
+ if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then
+ echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2
+ echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2
+ return 1
+ fi
+ fi
+ else
+ JAVACMD="$(
+ 'set' +e
+ 'unset' -f command 2>/dev/null
+ 'command' -v java
+ )" || :
+ JAVACCMD="$(
+ 'set' +e
+ 'unset' -f command 2>/dev/null
+ 'command' -v javac
+ )" || :
+
+ if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then
+ echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2
+ return 1
+ fi
+ fi
+}
+
+# hash string like Java String::hashCode
+hash_string() {
+ str="${1:-}" h=0
+ while [ -n "$str" ]; do
+ char="${str%"${str#?}"}"
+ h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296))
+ str="${str#?}"
+ done
+ printf %x\\n $h
+}
+
+verbose() { :; }
+[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; }
+
+die() {
+ printf %s\\n "$1" >&2
+ exit 1
+}
+
+trim() {
+ # MWRAPPER-139:
+ # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
+ # Needed for removing poorly interpreted newline sequences when running in more
+ # exotic environments such as mingw bash on Windows.
+ printf "%s" "${1}" | tr -d '[:space:]'
+}
+
+scriptDir="$(dirname "$0")"
+scriptName="$(basename "$0")"
+
+# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
+while IFS="=" read -r key value; do
+ case "${key-}" in
+ distributionUrl) distributionUrl=$(trim "${value-}") ;;
+ distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;;
+ esac
+done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties"
+[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
+
+case "${distributionUrl##*/}" in
+maven-mvnd-*bin.*)
+ MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/
+ case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in
+ *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;;
+ :Darwin*x86_64) distributionPlatform=darwin-amd64 ;;
+ :Darwin*arm64) distributionPlatform=darwin-aarch64 ;;
+ :Linux*x86_64*) distributionPlatform=linux-amd64 ;;
+ *)
+ echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2
+ distributionPlatform=linux-amd64
+ ;;
+ esac
+ distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip"
+ ;;
+maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
+*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
+esac
+
+# apply MVNW_REPOURL and calculate MAVEN_HOME
+# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/
+[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}"
+distributionUrlName="${distributionUrl##*/}"
+distributionUrlNameMain="${distributionUrlName%.*}"
+distributionUrlNameMain="${distributionUrlNameMain%-bin}"
+MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}"
+MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")"
+
+exec_maven() {
+ unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || :
+ exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD"
+}
+
+if [ -d "$MAVEN_HOME" ]; then
+ verbose "found existing MAVEN_HOME at $MAVEN_HOME"
+ exec_maven "$@"
+fi
+
+case "${distributionUrl-}" in
+*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;;
+*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;;
+esac
+
+# prepare tmp dir
+if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then
+ clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; }
+ trap clean HUP INT TERM EXIT
+else
+ die "cannot create temp dir"
+fi
+
+mkdir -p -- "${MAVEN_HOME%/*}"
+
+# Download and Install Apache Maven
+verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
+verbose "Downloading from: $distributionUrl"
+verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
+
+# select .zip or .tar.gz
+if ! command -v unzip >/dev/null; then
+ distributionUrl="${distributionUrl%.zip}.tar.gz"
+ distributionUrlName="${distributionUrl##*/}"
+fi
+
+# verbose opt
+__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
+[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
+
+# normalize http auth
+case "${MVNW_PASSWORD:+has-password}" in
+'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
+has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
+esac
+
+if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then
+ verbose "Found wget ... using wget"
+ wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl"
+elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then
+ verbose "Found curl ... using curl"
+ curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl"
+elif set_java_home; then
+ verbose "Falling back to use Java to download"
+ javaSource="$TMP_DOWNLOAD_DIR/Downloader.java"
+ targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName"
+ cat >"$javaSource" <<-END
+ public class Downloader extends java.net.Authenticator
+ {
+ protected java.net.PasswordAuthentication getPasswordAuthentication()
+ {
+ return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() );
+ }
+ public static void main( String[] args ) throws Exception
+ {
+ setDefault( new Downloader() );
+ java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() );
+ }
+ }
+ END
+ # For Cygwin/MinGW, switch paths to Windows format before running javac and java
+ verbose " - Compiling Downloader.java ..."
+ "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java"
+ verbose " - Running Downloader.java ..."
+ "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")"
+fi
+
+# If specified, validate the SHA-256 sum of the Maven distribution zip file
+if [ -n "${distributionSha256Sum-}" ]; then
+ distributionSha256Result=false
+ if [ "$MVN_CMD" = mvnd.sh ]; then
+ echo "Checksum validation is not supported for maven-mvnd." >&2
+ echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
+ exit 1
+ elif command -v sha256sum >/dev/null; then
+ if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then
+ distributionSha256Result=true
+ fi
+ elif command -v shasum >/dev/null; then
+ if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then
+ distributionSha256Result=true
+ fi
+ else
+ echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2
+ echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
+ exit 1
+ fi
+ if [ $distributionSha256Result = false ]; then
+ echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2
+ echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2
+ exit 1
+ fi
+fi
+
+# unzip and move
+if command -v unzip >/dev/null; then
+ unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip"
+else
+ tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar"
+fi
+
+# Find the actual extracted directory name (handles snapshots where filename != directory name)
+actualDistributionDir=""
+
+# First try the expected directory name (for regular distributions)
+if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then
+ if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then
+ actualDistributionDir="$distributionUrlNameMain"
+ fi
+fi
+
+# If not found, search for any directory with the Maven executable (for snapshots)
+if [ -z "$actualDistributionDir" ]; then
+ # enable globbing to iterate over items
+ set +f
+ for dir in "$TMP_DOWNLOAD_DIR"/*; do
+ if [ -d "$dir" ]; then
+ if [ -f "$dir/bin/$MVN_CMD" ]; then
+ actualDistributionDir="$(basename "$dir")"
+ break
+ fi
+ fi
+ done
+ set -f
+fi
+
+if [ -z "$actualDistributionDir" ]; then
+ verbose "Contents of $TMP_DOWNLOAD_DIR:"
+ verbose "$(ls -la "$TMP_DOWNLOAD_DIR")"
+ die "Could not find Maven distribution directory in extracted archive"
+fi
+
+verbose "Found extracted Maven distribution directory: $actualDistributionDir"
+printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url"
+mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
+
+clean || :
+exec_maven "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
new file mode 100644
index 00000000..92450f93
--- /dev/null
+++ b/mvnw.cmd
@@ -0,0 +1,189 @@
+<# : batch portion
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Apache Maven Wrapper startup batch script, version 3.3.4
+@REM
+@REM Optional ENV vars
+@REM MVNW_REPOURL - repo url base for downloading maven distribution
+@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
+@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
+@REM ----------------------------------------------------------------------------
+
+@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
+@SET __MVNW_CMD__=
+@SET __MVNW_ERROR__=
+@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
+@SET PSModulePath=
+@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
+ IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
+)
+@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
+@SET __MVNW_PSMODULEP_SAVE=
+@SET __MVNW_ARG0_NAME__=
+@SET MVNW_USERNAME=
+@SET MVNW_PASSWORD=
+@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*)
+@echo Cannot start maven from wrapper >&2 && exit /b 1
+@GOTO :EOF
+: end batch / begin powershell #>
+
+$ErrorActionPreference = "Stop"
+if ($env:MVNW_VERBOSE -eq "true") {
+ $VerbosePreference = "Continue"
+}
+
+# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
+$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
+if (!$distributionUrl) {
+ Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
+}
+
+switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
+ "maven-mvnd-*" {
+ $USE_MVND = $true
+ $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
+ $MVN_CMD = "mvnd.cmd"
+ break
+ }
+ default {
+ $USE_MVND = $false
+ $MVN_CMD = $script -replace '^mvnw','mvn'
+ break
+ }
+}
+
+# apply MVNW_REPOURL and calculate MAVEN_HOME
+# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/
+if ($env:MVNW_REPOURL) {
+ $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" }
+ $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')"
+}
+$distributionUrlName = $distributionUrl -replace '^.*/',''
+$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
+
+$MAVEN_M2_PATH = "$HOME/.m2"
+if ($env:MAVEN_USER_HOME) {
+ $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME"
+}
+
+if (-not (Test-Path -Path $MAVEN_M2_PATH)) {
+ New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null
+}
+
+$MAVEN_WRAPPER_DISTS = $null
+if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) {
+ $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists"
+} else {
+ $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists"
+}
+
+$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain"
+$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
+$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
+
+if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
+ Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
+ Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
+ exit $?
+}
+
+if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
+ Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
+}
+
+# prepare tmp dir
+$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
+$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
+$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
+trap {
+ if ($TMP_DOWNLOAD_DIR.Exists) {
+ try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
+ catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
+ }
+}
+
+New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
+
+# Download and Install Apache Maven
+Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
+Write-Verbose "Downloading from: $distributionUrl"
+Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
+
+$webclient = New-Object System.Net.WebClient
+if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
+ $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
+}
+[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
+
+# If specified, validate the SHA-256 sum of the Maven distribution zip file
+$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
+if ($distributionSha256Sum) {
+ if ($USE_MVND) {
+ Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
+ }
+ Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
+ if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
+ Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
+ }
+}
+
+# unzip and move
+Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
+
+# Find the actual extracted directory name (handles snapshots where filename != directory name)
+$actualDistributionDir = ""
+
+# First try the expected directory name (for regular distributions)
+$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain"
+$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD"
+if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) {
+ $actualDistributionDir = $distributionUrlNameMain
+}
+
+# If not found, search for any directory with the Maven executable (for snapshots)
+if (!$actualDistributionDir) {
+ Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object {
+ $testPath = Join-Path $_.FullName "bin/$MVN_CMD"
+ if (Test-Path -Path $testPath -PathType Leaf) {
+ $actualDistributionDir = $_.Name
+ }
+ }
+}
+
+if (!$actualDistributionDir) {
+ Write-Error "Could not find Maven distribution directory in extracted archive"
+}
+
+Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir"
+Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null
+try {
+ Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
+} catch {
+ if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
+ Write-Error "fail to move MAVEN_HOME"
+ }
+} finally {
+ try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
+ catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
+}
+
+Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 00000000..c23fcbef
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,247 @@
+
+ 4.0.0
+
+ io.github.jopenlibs
+ vault-java-driver
+ 6.2.0
+ jar
+ vault-java-driver
+ Zero-dependency Java client for HashiCorp's Vault
+ https://github.com/jopenlibs/vault-java-driver
+
+
+
+ MIT
+ https://github.com/jopenlibs/vault-java-driver/blob/master/README.md#license
+
+
+
+
+
+ steve-perkins
+ Steve Perkins
+ steve@steveperkins.com
+
+
+ steve-perkins-bc
+ Steve Perkins
+ steve.perkins@bettercloud.com
+
+
+ jarrodcodes
+ Jarrod Young
+ jarrodsy@gmail.com
+
+
+ tledkov
+ Taras Ledkov
+ tledkov@apache.org
+
+
+ henryx
+ Enrico Bianchi
+ enrico.bianchi@gmail.com
+
+
+
+
+ scm:git:https://github.com/jopenlibs/vault-java-driver.git
+ scm:git:https://github.com/jopenlibs/vault-java-driver.git
+
+ https://github.com/jopenlibs/vault-java-driver
+
+
+
+ 11
+ 11
+ UTF-8
+
+
+
+
+ junit
+ junit
+ 4.13.2
+ test
+
+
+ org.mockito
+ mockito-core
+ 5.4.0
+ test
+
+
+ org.testcontainers
+ testcontainers
+ 1.21.3
+ test
+
+
+ org.eclipse.jetty
+ jetty-server
+ 11.0.15
+ test
+
+
+ org.slf4j
+ slf4j-api
+ 2.0.7
+ test
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+ 1.70
+ test
+
+
+ org.bouncycastle
+ bcpkix-jdk15on
+ 1.70
+ test
+
+
+ org.apache.commons
+ commons-io
+ 1.3.2
+ test
+
+
+ org.slf4j
+ slf4j-simple
+ 2.0.5
+ test
+
+
+
+
+
+
+
+ maven-compiler-plugin
+
+ 11
+
+
+
+
+
+ maven-source-plugin
+
+
+ attach-sources
+ verify
+
+ jar
+
+
+
+
+
+ maven-javadoc-plugin
+
+
+ attach-javadocs
+ verify
+
+ jar
+
+
+ -html5
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.2.5
+
+ ${project.basedir}/test
+
+ **/*Test.java
+ **/*Tests.java
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+ 3.2.5
+
+
+ integration-test
+ integration-test
+
+ integration-test
+
+
+
+ **/*IT.java
+
+
+
+
+ verify
+ verify
+
+ verify
+
+
+
+
+
+
+
+
+
+ ossrh
+ https://s01.oss.sonatype.org/content/repositories/snapshots/
+
+
+ ossrh
+ https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
+
+ release
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 3.0.1
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+
+
+ maven-deploy-plugin
+
+
+ ossrh::default::https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
+
+
+
+
diff --git a/settings.gradle b/settings.gradle
deleted file mode 100644
index 761c2c23..00000000
--- a/settings.gradle
+++ /dev/null
@@ -1,2 +0,0 @@
-rootProject.name = 'vault-java-driver'
-
diff --git a/src/test-integration/README.md b/src/test-integration/README.md
deleted file mode 100644
index 0d4dbd0a..00000000
--- a/src/test-integration/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-Intro
-=====
-Unit tests, which do not rely on a Vault server being available, are separated from these
-integration tests, which do require a Vault instance.
-
-Running the Integration Tests
-=============================
-Originally this test suite required a decent amount of manual setup. You had to run and configure a
-Vault server instance on your machine, and populate several environment variables with values that
-would be picked up by the tests.
-
-Since then, the tests have been modified to work
-with [TestContainers](https://www.testcontainers.org/), a Java library that efficiently manages
-Docker containers and makes them available to JUnit tests. So now, setup of the Vault server
-instance is entirely automated, and dealt with by the test suite itself.
-
-However, to run these tests you do need to have a current version of Docker installed on your
-machine. This is supported for Linux, OS X, and Windows, although the details vary significantly
-between those operating systems.See the [Docker website](https://www.docker.com/) for information on
-installing Docker on your OS, after checking also with the TestContainers website for OS-specific
-caveats (Windows in particular).
-
-With Docker installed on your machine, you can run this test suite using the `integrationTest`
-Gradle task:
-
-`$ ./gradlew integrationTest`
diff --git a/src/test/java/io/github/jopenlibs/vault/ConnectionReUsageTest.java b/src/test/java/io/github/jopenlibs/vault/ConnectionReUsageTest.java
index 7c6f652f..d737407c 100644
--- a/src/test/java/io/github/jopenlibs/vault/ConnectionReUsageTest.java
+++ b/src/test/java/io/github/jopenlibs/vault/ConnectionReUsageTest.java
@@ -2,8 +2,7 @@
import io.github.jopenlibs.vault.api.Logical;
import io.github.jopenlibs.vault.response.LogicalResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.mock.MockVault;
import java.net.Socket;
import java.net.http.HttpClient;
import java.nio.ByteBuffer;
diff --git a/src/test/java/io/github/jopenlibs/vault/RetryTests.java b/src/test/java/io/github/jopenlibs/vault/RetryTests.java
index c160cd23..1e1cba60 100644
--- a/src/test/java/io/github/jopenlibs/vault/RetryTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/RetryTests.java
@@ -1,8 +1,7 @@
package io.github.jopenlibs.vault;
import io.github.jopenlibs.vault.response.LogicalResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.RetriesMockVault;
+import io.github.jopenlibs.vault.mock.RetriesMockVault;
import java.util.HashMap;
import org.eclipse.jetty.server.Server;
import org.junit.Test;
diff --git a/src/test/java/io/github/jopenlibs/vault/SSLTests.java b/src/test/java/io/github/jopenlibs/vault/SSLTests.java
index e87fba52..8da02b50 100644
--- a/src/test/java/io/github/jopenlibs/vault/SSLTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/SSLTests.java
@@ -1,8 +1,7 @@
package io.github.jopenlibs.vault;
import io.github.jopenlibs.vault.response.LogicalResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.mock.MockVault;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
diff --git a/src/test/java/io/github/jopenlibs/vault/TimeoutTests.java b/src/test/java/io/github/jopenlibs/vault/TimeoutTests.java
index e001ea24..b6cea368 100644
--- a/src/test/java/io/github/jopenlibs/vault/TimeoutTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/TimeoutTests.java
@@ -1,9 +1,8 @@
package io.github.jopenlibs.vault;
import io.github.jopenlibs.vault.response.LogicalResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.OpenTimeoutsMockVault;
-import io.github.jopenlibs.vault.vault.mock.ReadTimeoutsMockVault;
+import io.github.jopenlibs.vault.mock.OpenTimeoutsMockVault;
+import io.github.jopenlibs.vault.mock.ReadTimeoutsMockVault;
import org.eclipse.jetty.server.Server;
import org.junit.Test;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/VaultTestUtils.java b/src/test/java/io/github/jopenlibs/vault/VaultTestUtils.java
similarity index 97%
rename from src/test/java/io/github/jopenlibs/vault/vault/VaultTestUtils.java
rename to src/test/java/io/github/jopenlibs/vault/VaultTestUtils.java
index d18faec0..5462f473 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/VaultTestUtils.java
+++ b/src/test/java/io/github/jopenlibs/vault/VaultTestUtils.java
@@ -1,8 +1,8 @@
-package io.github.jopenlibs.vault.vault;
+package io.github.jopenlibs.vault;
import io.github.jopenlibs.vault.json.Json;
import io.github.jopenlibs.vault.json.JsonObject;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.mock.MockVault;
import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Collections;
diff --git a/src/test/java/io/github/jopenlibs/vault/VaultTests.java b/src/test/java/io/github/jopenlibs/vault/VaultTests.java
index 65163da6..8ce1e8e7 100644
--- a/src/test/java/io/github/jopenlibs/vault/VaultTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/VaultTests.java
@@ -1,8 +1,7 @@
package io.github.jopenlibs.vault;
import io.github.jopenlibs.vault.response.LogicalResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.mock.MockVault;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jetty.server.Server;
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendAppIdTests.java b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendAppIdIT.java
similarity index 97%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendAppIdTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/AuthBackendAppIdIT.java
index 088284e1..059a5152 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendAppIdTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendAppIdIT.java
@@ -18,7 +18,7 @@
* is deprecated. Also, from Vault 1.11.7 it fails the usage. For this reason, we skip this test if
* Vault version is greater than 1.11.6
*/
-public class AuthBackendAppIdTests {
+public class AuthBackendAppIdIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendAppRoleTests.java b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendAppRoleIT.java
similarity index 98%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendAppRoleTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/AuthBackendAppRoleIT.java
index 6f3e6437..863a7242 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendAppRoleTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendAppRoleIT.java
@@ -16,7 +16,7 @@
/**
* Integration tests for the AppRole auth backend.
*/
-public class AuthBackendAppRoleTests {
+public class AuthBackendAppRoleIT {
private static String appRoleId;
private static String secretId;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/api/AuthBackendAwsTests.java b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendAwsTests.java
similarity index 96%
rename from src/test/java/io/github/jopenlibs/vault/vault/api/AuthBackendAwsTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/AuthBackendAwsTests.java
index 80796a67..257b2c93 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/api/AuthBackendAwsTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendAwsTests.java
@@ -1,12 +1,12 @@
-package io.github.jopenlibs.vault.vault.api;
+package io.github.jopenlibs.vault.api;
import io.github.jopenlibs.vault.Vault;
import io.github.jopenlibs.vault.VaultConfig;
import io.github.jopenlibs.vault.VaultException;
import io.github.jopenlibs.vault.json.JsonObject;
import io.github.jopenlibs.vault.response.AuthResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.AuthRequestValidatingMockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.AuthRequestValidatingMockVault;
import jakarta.servlet.http.HttpServletRequest;
import java.util.function.Predicate;
import org.eclipse.jetty.server.Server;
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendCertTests.java b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendCertIT.java
similarity index 99%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendCertTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/AuthBackendCertIT.java
index c8fadc62..00cd9580 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendCertTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendCertIT.java
@@ -26,7 +26,7 @@
* client auth, test methods here must manually construct Vault instances
* themselves.
*/
-public class AuthBackendCertTests {
+public class AuthBackendCertIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendDatabaseTests.java b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendDatabaseIT.java
similarity index 99%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendDatabaseTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/AuthBackendDatabaseIT.java
index cd4914e2..4f560e21 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendDatabaseTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendDatabaseIT.java
@@ -17,7 +17,7 @@
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertTrue;
-public class AuthBackendDatabaseTests {
+public class AuthBackendDatabaseIT {
@ClassRule
public static final DbContainer dbContainer = new DbContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendPkiTests.java b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendPkiIT.java
similarity index 99%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendPkiTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/AuthBackendPkiIT.java
index 347c20a4..4966b0ff 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendPkiTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendPkiIT.java
@@ -32,7 +32,7 @@
/**
* Integration tests for for operations on Vault's /v1/pki/* REST endpoints.
*/
-public class AuthBackendPkiTests {
+public class AuthBackendPkiIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendTokenTests.java b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendTokenIT.java
similarity index 99%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendTokenTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/AuthBackendTokenIT.java
index 73bdd805..437b75f9 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendTokenTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendTokenIT.java
@@ -23,7 +23,7 @@
/**
* Integration tests for the token auth backend.
*/
-public class AuthBackendTokenTests {
+public class AuthBackendTokenIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendUserPassTests.java b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendUserPassIT.java
similarity index 96%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendUserPassTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/AuthBackendUserPassIT.java
index 0ebd8fab..ff3232ba 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/AuthBackendUserPassTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/AuthBackendUserPassIT.java
@@ -15,7 +15,7 @@
/**
* Integration tests for the Username/Password auth backend.
*/
-public class AuthBackendUserPassTests {
+public class AuthBackendUserPassIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/api/AuthLookupTest.java b/src/test/java/io/github/jopenlibs/vault/api/AuthLookupTest.java
similarity index 94%
rename from src/test/java/io/github/jopenlibs/vault/vault/api/AuthLookupTest.java
rename to src/test/java/io/github/jopenlibs/vault/api/AuthLookupTest.java
index 1f415c55..8d77c33e 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/api/AuthLookupTest.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/AuthLookupTest.java
@@ -1,12 +1,12 @@
-package io.github.jopenlibs.vault.vault.api;
+package io.github.jopenlibs.vault.api;
import io.github.jopenlibs.vault.Vault;
import io.github.jopenlibs.vault.VaultConfig;
import io.github.jopenlibs.vault.json.JsonArray;
import io.github.jopenlibs.vault.json.JsonObject;
import io.github.jopenlibs.vault.response.LookupResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.MockVault;
import java.util.Optional;
import org.eclipse.jetty.server.Server;
import org.junit.After;
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/DebugTests.java b/src/test/java/io/github/jopenlibs/vault/api/DebugIT.java
similarity index 99%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/DebugTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/DebugIT.java
index 859016aa..a63c0559 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/DebugTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/DebugIT.java
@@ -19,7 +19,7 @@
/**
* Integration tests for the debug-related operations on the Vault HTTP API's.
*/
-public class DebugTests {
+public class DebugIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/LeasesTests.java b/src/test/java/io/github/jopenlibs/vault/api/LeasesIT.java
similarity index 99%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/LeasesTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/LeasesIT.java
index efd5f5ea..7ae5cff3 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/LeasesTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/LeasesIT.java
@@ -25,7 +25,7 @@
* According to the Vault documentation, it is possible to use a dynamic secret like database to
* test these methods
*/
-public class LeasesTests {
+public class LeasesIT {
@ClassRule
public static final DbContainer dbContainer = new DbContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/LogicalTests.java b/src/test/java/io/github/jopenlibs/vault/api/LogicalIT.java
similarity index 99%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/LogicalTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/LogicalIT.java
index 8aae1464..718c4014 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/LogicalTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/LogicalIT.java
@@ -30,7 +30,7 @@
/**
* Integration tests for the basic (i.e. "logical") Vault API operations.
*/
-public class LogicalTests {
+public class LogicalIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/MountsTests.java b/src/test/java/io/github/jopenlibs/vault/api/MountsIT.java
similarity index 99%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/MountsTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/MountsIT.java
index 62518ac0..2bd36fae 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/MountsTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/MountsIT.java
@@ -25,7 +25,7 @@
/**
* Integration tests for for operations on Vault's /v1/sys/mounts/* REST endpoints.
*/
-public class MountsTests {
+public class MountsIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/SealTests.java b/src/test/java/io/github/jopenlibs/vault/api/SealIT.java
similarity index 98%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/SealTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/SealIT.java
index d1e4e5c0..250b246e 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/SealTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/SealIT.java
@@ -15,7 +15,7 @@
/**
* Integration tests for the seal-related (i.e. "seal") Vault API operations.
*/
-public class SealTests {
+public class SealIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/api/TransitApiTest.java b/src/test/java/io/github/jopenlibs/vault/api/TransitApiTest.java
similarity index 97%
rename from src/test/java/io/github/jopenlibs/vault/vault/api/TransitApiTest.java
rename to src/test/java/io/github/jopenlibs/vault/api/TransitApiTest.java
index 79d67770..92556167 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/api/TransitApiTest.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/TransitApiTest.java
@@ -1,12 +1,12 @@
-package io.github.jopenlibs.vault.vault.api;
+package io.github.jopenlibs.vault.api;
import io.github.jopenlibs.vault.Vault;
import io.github.jopenlibs.vault.VaultConfig;
import io.github.jopenlibs.vault.json.JsonArray;
import io.github.jopenlibs.vault.json.JsonObject;
import io.github.jopenlibs.vault.response.LogicalResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.MockVault;
import java.util.Collections;
import java.util.Optional;
import org.eclipse.jetty.server.Server;
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/VaultAgentTests.java b/src/test/java/io/github/jopenlibs/vault/api/VaultAgentIT.java
similarity index 98%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/VaultAgentTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/VaultAgentIT.java
index 5565ae36..bc528efe 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/VaultAgentTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/VaultAgentIT.java
@@ -19,7 +19,7 @@
import static org.apache.commons.io.FileUtils.writeStringToFile;
import static org.junit.Assert.assertNotNull;
-public class VaultAgentTests {
+public class VaultAgentIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/api/sys/WrappingTests.java b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingIT.java
similarity index 99%
rename from src/test-integration/java/io/github/jopenlibs/vault/api/sys/WrappingTests.java
rename to src/test/java/io/github/jopenlibs/vault/api/sys/WrappingIT.java
index 2e20605b..4c1e729c 100644
--- a/src/test-integration/java/io/github/jopenlibs/vault/api/sys/WrappingTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingIT.java
@@ -21,7 +21,7 @@
/**
* Integration tests for the functions work with {@code /sys/wrapping/*} endpoints.
*/
-public class WrappingTests {
+public class WrappingIT {
@ClassRule
public static final VaultContainer container = new VaultContainer();
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingLookupWrapTest.java b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingLookupWrapTest.java
similarity index 92%
rename from src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingLookupWrapTest.java
rename to src/test/java/io/github/jopenlibs/vault/api/sys/WrappingLookupWrapTest.java
index 6f2f9ac3..4af45c3b 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingLookupWrapTest.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingLookupWrapTest.java
@@ -1,11 +1,11 @@
-package io.github.jopenlibs.vault.vault.api.sys;
+package io.github.jopenlibs.vault.api.sys;
import io.github.jopenlibs.vault.Vault;
import io.github.jopenlibs.vault.VaultConfig;
import io.github.jopenlibs.vault.json.JsonObject;
import io.github.jopenlibs.vault.response.LogicalResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.MockVault;
import java.util.Optional;
import org.eclipse.jetty.server.Server;
import org.junit.After;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingUnwrapTest.java b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingUnwrapTest.java
similarity index 94%
rename from src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingUnwrapTest.java
rename to src/test/java/io/github/jopenlibs/vault/api/sys/WrappingUnwrapTest.java
index 8d85b82c..13773c0f 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingUnwrapTest.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingUnwrapTest.java
@@ -1,12 +1,12 @@
-package io.github.jopenlibs.vault.vault.api.sys;
+package io.github.jopenlibs.vault.api.sys;
import io.github.jopenlibs.vault.Vault;
import io.github.jopenlibs.vault.VaultConfig;
import io.github.jopenlibs.vault.json.JsonArray;
import io.github.jopenlibs.vault.json.JsonObject;
import io.github.jopenlibs.vault.response.AuthResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.MockVault;
import org.eclipse.jetty.server.Server;
import org.junit.After;
import org.junit.Before;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingUnwrapWithoutAuthResponseTest.java b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingUnwrapWithoutAuthResponseTest.java
similarity index 94%
rename from src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingUnwrapWithoutAuthResponseTest.java
rename to src/test/java/io/github/jopenlibs/vault/api/sys/WrappingUnwrapWithoutAuthResponseTest.java
index 4b590da4..9b08dd21 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingUnwrapWithoutAuthResponseTest.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingUnwrapWithoutAuthResponseTest.java
@@ -1,12 +1,12 @@
-package io.github.jopenlibs.vault.vault.api.sys;
+package io.github.jopenlibs.vault.api.sys;
import io.github.jopenlibs.vault.Vault;
import io.github.jopenlibs.vault.VaultConfig;
import io.github.jopenlibs.vault.json.Json;
import io.github.jopenlibs.vault.json.JsonObject;
import io.github.jopenlibs.vault.response.UnwrapResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.MockVault;
import org.eclipse.jetty.server.Server;
import org.junit.After;
import org.junit.Test;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingWrapTest.java b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingWrapTest.java
similarity index 94%
rename from src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingWrapTest.java
rename to src/test/java/io/github/jopenlibs/vault/api/sys/WrappingWrapTest.java
index 5c8d1b8e..d6c4c3b0 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/api/sys/WrappingWrapTest.java
+++ b/src/test/java/io/github/jopenlibs/vault/api/sys/WrappingWrapTest.java
@@ -1,11 +1,11 @@
-package io.github.jopenlibs.vault.vault.api.sys;
+package io.github.jopenlibs.vault.api.sys;
import io.github.jopenlibs.vault.Vault;
import io.github.jopenlibs.vault.VaultConfig;
import io.github.jopenlibs.vault.json.JsonObject;
import io.github.jopenlibs.vault.response.WrapResponse;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.MockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.MockVault;
import org.eclipse.jetty.server.Server;
import org.junit.After;
import org.junit.Before;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/mock/AuthRequestValidatingMockVault.java b/src/test/java/io/github/jopenlibs/vault/mock/AuthRequestValidatingMockVault.java
similarity index 97%
rename from src/test/java/io/github/jopenlibs/vault/vault/mock/AuthRequestValidatingMockVault.java
rename to src/test/java/io/github/jopenlibs/vault/mock/AuthRequestValidatingMockVault.java
index 786b64a1..7a7ebf82 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/mock/AuthRequestValidatingMockVault.java
+++ b/src/test/java/io/github/jopenlibs/vault/mock/AuthRequestValidatingMockVault.java
@@ -1,4 +1,4 @@
-package io.github.jopenlibs.vault.vault.mock;
+package io.github.jopenlibs.vault.mock;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/mock/EchoInputMockVault.java b/src/test/java/io/github/jopenlibs/vault/mock/EchoInputMockVault.java
similarity index 98%
rename from src/test/java/io/github/jopenlibs/vault/vault/mock/EchoInputMockVault.java
rename to src/test/java/io/github/jopenlibs/vault/mock/EchoInputMockVault.java
index 90312464..bb45ec34 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/mock/EchoInputMockVault.java
+++ b/src/test/java/io/github/jopenlibs/vault/mock/EchoInputMockVault.java
@@ -1,4 +1,4 @@
-package io.github.jopenlibs.vault.vault.mock;
+package io.github.jopenlibs.vault.mock;
import io.github.jopenlibs.vault.json.Json;
import io.github.jopenlibs.vault.json.JsonObject;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/mock/MockVault.java b/src/test/java/io/github/jopenlibs/vault/mock/MockVault.java
similarity index 93%
rename from src/test/java/io/github/jopenlibs/vault/vault/mock/MockVault.java
rename to src/test/java/io/github/jopenlibs/vault/mock/MockVault.java
index f7766cd7..7cdd2c04 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/mock/MockVault.java
+++ b/src/test/java/io/github/jopenlibs/vault/mock/MockVault.java
@@ -1,4 +1,4 @@
-package io.github.jopenlibs.vault.vault.mock;
+package io.github.jopenlibs.vault.mock;
import io.github.jopenlibs.vault.json.JsonObject;
import jakarta.servlet.ServletException;
@@ -10,8 +10,8 @@
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
-import static io.github.jopenlibs.vault.vault.VaultTestUtils.readRequestBody;
-import static io.github.jopenlibs.vault.vault.VaultTestUtils.readRequestHeaders;
+import static io.github.jopenlibs.vault.VaultTestUtils.readRequestBody;
+import static io.github.jopenlibs.vault.VaultTestUtils.readRequestHeaders;
/**
* This class is used to mock out a Vault server in unit tests involving retry logic. As it
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/mock/OpenTimeoutsMockVault.java b/src/test/java/io/github/jopenlibs/vault/mock/OpenTimeoutsMockVault.java
similarity index 98%
rename from src/test/java/io/github/jopenlibs/vault/vault/mock/OpenTimeoutsMockVault.java
rename to src/test/java/io/github/jopenlibs/vault/mock/OpenTimeoutsMockVault.java
index 7bcca6f3..84da45f7 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/mock/OpenTimeoutsMockVault.java
+++ b/src/test/java/io/github/jopenlibs/vault/mock/OpenTimeoutsMockVault.java
@@ -1,4 +1,4 @@
-package io.github.jopenlibs.vault.vault.mock;
+package io.github.jopenlibs.vault.mock;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/mock/ReadTimeoutsMockVault.java b/src/test/java/io/github/jopenlibs/vault/mock/ReadTimeoutsMockVault.java
similarity index 98%
rename from src/test/java/io/github/jopenlibs/vault/vault/mock/ReadTimeoutsMockVault.java
rename to src/test/java/io/github/jopenlibs/vault/mock/ReadTimeoutsMockVault.java
index f15a9031..017d4910 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/mock/ReadTimeoutsMockVault.java
+++ b/src/test/java/io/github/jopenlibs/vault/mock/ReadTimeoutsMockVault.java
@@ -1,4 +1,4 @@
-package io.github.jopenlibs.vault.vault.mock;
+package io.github.jopenlibs.vault.mock;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
diff --git a/src/test/java/io/github/jopenlibs/vault/vault/mock/RetriesMockVault.java b/src/test/java/io/github/jopenlibs/vault/mock/RetriesMockVault.java
similarity index 98%
rename from src/test/java/io/github/jopenlibs/vault/vault/mock/RetriesMockVault.java
rename to src/test/java/io/github/jopenlibs/vault/mock/RetriesMockVault.java
index 52596681..a548d5c7 100644
--- a/src/test/java/io/github/jopenlibs/vault/vault/mock/RetriesMockVault.java
+++ b/src/test/java/io/github/jopenlibs/vault/mock/RetriesMockVault.java
@@ -1,4 +1,4 @@
-package io.github.jopenlibs.vault.vault.mock;
+package io.github.jopenlibs.vault.mock;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
diff --git a/src/test/java/io/github/jopenlibs/vault/rest/DeleteTests.java b/src/test/java/io/github/jopenlibs/vault/rest/DeleteTests.java
index ae7afabb..589b2946 100644
--- a/src/test/java/io/github/jopenlibs/vault/rest/DeleteTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/rest/DeleteTests.java
@@ -2,8 +2,8 @@
import io.github.jopenlibs.vault.json.Json;
import io.github.jopenlibs.vault.json.JsonObject;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.EchoInputMockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.EchoInputMockVault;
import java.io.UnsupportedEncodingException;
import org.eclipse.jetty.server.Server;
import org.junit.Test;
diff --git a/src/test/java/io/github/jopenlibs/vault/rest/GetTests.java b/src/test/java/io/github/jopenlibs/vault/rest/GetTests.java
index 8605e857..8cb97c09 100644
--- a/src/test/java/io/github/jopenlibs/vault/rest/GetTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/rest/GetTests.java
@@ -2,8 +2,8 @@
import io.github.jopenlibs.vault.json.Json;
import io.github.jopenlibs.vault.json.JsonObject;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.EchoInputMockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.EchoInputMockVault;
import java.nio.charset.StandardCharsets;
import org.eclipse.jetty.server.Server;
import org.junit.After;
diff --git a/src/test/java/io/github/jopenlibs/vault/rest/PostTests.java b/src/test/java/io/github/jopenlibs/vault/rest/PostTests.java
index 57135804..47d9b494 100644
--- a/src/test/java/io/github/jopenlibs/vault/rest/PostTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/rest/PostTests.java
@@ -2,8 +2,8 @@
import io.github.jopenlibs.vault.json.Json;
import io.github.jopenlibs.vault.json.JsonObject;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.EchoInputMockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.EchoInputMockVault;
import java.nio.charset.StandardCharsets;
import org.eclipse.jetty.server.Server;
import org.junit.After;
diff --git a/src/test/java/io/github/jopenlibs/vault/rest/PutTests.java b/src/test/java/io/github/jopenlibs/vault/rest/PutTests.java
index 06ce5643..b3822774 100644
--- a/src/test/java/io/github/jopenlibs/vault/rest/PutTests.java
+++ b/src/test/java/io/github/jopenlibs/vault/rest/PutTests.java
@@ -2,8 +2,8 @@
import io.github.jopenlibs.vault.json.Json;
import io.github.jopenlibs.vault.json.JsonObject;
-import io.github.jopenlibs.vault.vault.VaultTestUtils;
-import io.github.jopenlibs.vault.vault.mock.EchoInputMockVault;
+import io.github.jopenlibs.vault.VaultTestUtils;
+import io.github.jopenlibs.vault.mock.EchoInputMockVault;
import java.nio.charset.StandardCharsets;
import org.eclipse.jetty.server.Server;
import org.junit.After;
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/util/DbContainer.java b/src/test/java/io/github/jopenlibs/vault/util/DbContainer.java
similarity index 100%
rename from src/test-integration/java/io/github/jopenlibs/vault/util/DbContainer.java
rename to src/test/java/io/github/jopenlibs/vault/util/DbContainer.java
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/util/SSLUtils.java b/src/test/java/io/github/jopenlibs/vault/util/SSLUtils.java
similarity index 100%
rename from src/test-integration/java/io/github/jopenlibs/vault/util/SSLUtils.java
rename to src/test/java/io/github/jopenlibs/vault/util/SSLUtils.java
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/util/TestConstants.java b/src/test/java/io/github/jopenlibs/vault/util/TestConstants.java
similarity index 100%
rename from src/test-integration/java/io/github/jopenlibs/vault/util/TestConstants.java
rename to src/test/java/io/github/jopenlibs/vault/util/TestConstants.java
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/util/VaultAgentContainer.java b/src/test/java/io/github/jopenlibs/vault/util/VaultAgentContainer.java
similarity index 100%
rename from src/test-integration/java/io/github/jopenlibs/vault/util/VaultAgentContainer.java
rename to src/test/java/io/github/jopenlibs/vault/util/VaultAgentContainer.java
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/util/VaultContainer.java b/src/test/java/io/github/jopenlibs/vault/util/VaultContainer.java
similarity index 100%
rename from src/test-integration/java/io/github/jopenlibs/vault/util/VaultContainer.java
rename to src/test/java/io/github/jopenlibs/vault/util/VaultContainer.java
diff --git a/src/test-integration/java/io/github/jopenlibs/vault/util/VaultVersion.java b/src/test/java/io/github/jopenlibs/vault/util/VaultVersion.java
similarity index 100%
rename from src/test-integration/java/io/github/jopenlibs/vault/util/VaultVersion.java
rename to src/test/java/io/github/jopenlibs/vault/util/VaultVersion.java
diff --git a/src/test-integration/resources/agent.hcl b/src/test/resources/agent.hcl
similarity index 100%
rename from src/test-integration/resources/agent.hcl
rename to src/test/resources/agent.hcl
diff --git a/src/test-integration/resources/allowRewrapPolicy.hcl b/src/test/resources/allowRewrapPolicy.hcl
similarity index 100%
rename from src/test-integration/resources/allowRewrapPolicy.hcl
rename to src/test/resources/allowRewrapPolicy.hcl
diff --git a/src/test-integration/resources/approlePolicy.hcl b/src/test/resources/approlePolicy.hcl
similarity index 100%
rename from src/test-integration/resources/approlePolicy.hcl
rename to src/test/resources/approlePolicy.hcl
diff --git a/src/test-integration/resources/config.json b/src/test/resources/config.json
similarity index 100%
rename from src/test-integration/resources/config.json
rename to src/test/resources/config.json
diff --git a/src/test-integration/resources/libressl.conf b/src/test/resources/libressl.conf
similarity index 100%
rename from src/test-integration/resources/libressl.conf
rename to src/test/resources/libressl.conf
diff --git a/src/test-integration/resources/startup.sh b/src/test/resources/startup.sh
similarity index 100%
rename from src/test-integration/resources/startup.sh
rename to src/test/resources/startup.sh