Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions docker_db.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1370,6 +1370,38 @@ informix_12_10() {
fi
}

spanner() {
spanner_emulator
}

spanner_emulator() {

$CONTAINER_CLI rm -f spanner || true
# Run emulator (gRPC on 9010, REST on 9020)
$CONTAINER_CLI run --name spanner -d \
-p 9010:9010 \
-p 9020:9020 \
${SPANNER_EMULATOR:-gcr.io/cloud-spanner-emulator/emulator:1.5.45}

# Wait for emulator to be ready (check logs for known messages)
n=0
until [ "$n" -ge 20 ]; do
OUTPUT="$($CONTAINER_CLI logs spanner 2>&1 || true)"
if [[ "$OUTPUT" == *"gRPC server listening"* ]] || [[ "$OUTPUT" == *"Cloud Spanner emulator running"* ]]; then
echo "Cloud Spanner emulator started."
break
fi
echo "Waiting for Cloud Spanner emulator to start..."
n=$((n+1))
sleep 3
done

if [ "$n" -ge 20 ]; then
echo "Cloud Spanner emulator failed to start after 1 minute"
exit 1
fi
}

if [ -z ${1} ]; then
echo "No db name provided"
echo "Provide one of:"
Expand Down Expand Up @@ -1417,6 +1449,8 @@ if [ -z ${1} ]; then
echo -e "\informix"
echo -e "\informix_14_10"
echo -e "\informix_12_10"
echo -e "\tspanner"
echo -e "\tspanner_emulator"
else
${1}
fi
10 changes: 10 additions & 0 deletions local-build-plugins/src/main/groovy/local.databases.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -406,5 +406,15 @@ ext {
'jdbc.url' : 'jdbc:Altibase://' + dbHost + ':20300/mydb?force_clob_bind=true',
'jdbc.datasource' : 'Altibase.jdbc.driver.AltibaseDriver'
],
spanner : [
'db.dialect' : 'org.hibernate.dialect.SpannerDialect',
'jdbc.driver' : 'com.google.cloud.spanner.jdbc.JdbcDriver',
'jdbc.user' : '', // Not used by Spanner
'jdbc.pass' : '', // Not used by Spanner
'connection.init_sql' : '',
// autoConfigEmulator=true creates the necessary instances and DBs if they don't exist already
'jdbc.url' : 'jdbc:cloudspanner:/projects/orm-test-project/instances/orm-test-instance/databases/orm-test-db?autoConfigEmulator=true;lenient=true',
'jdbc.datasource' : 'com.google.cloud.spanner.jdbc.JdbcDriver'
],
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ dependencies {
testRuntimeOnly jdbcLibs.gaussdb
testRuntimeOnly jdbcLibs.sybase
testRuntimeOnly jdbcLibs.teradata
testRuntimeOnly jdbcLibs.spanner
testRuntimeOnly rootProject.fileTree(dir: 'drivers', include: '*.jar')

// Since both the DB2 driver and HANA have a package "net.jpountz" we have to add dependencies conditionally
Expand Down
2 changes: 2 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,7 @@ dependencyResolutionManagement {
def teradataVersion = version "teradata", "20.00.00.51"
def tidbVersion = version "tidb", mysqlVersion
def altibaseVersion = version "altibase", "7.3.0.1.1"
def spannerVersion = version "spanner", "2.34.0"

library( "h2", "com.h2database", "h2" ).versionRef( h2Version )
library( "h2gis", "org.orbisgis", "h2gis" ).versionRef( h2gisVersion )
Expand All @@ -264,6 +265,7 @@ dependencyResolutionManagement {
library( "informix", "com.ibm.informix", "jdbc" ).versionRef( informixVersion )
library( "firebird", "org.firebirdsql.jdbc", "jaybird" ).versionRef( firebirdVersion )
library( "altibase", "com.altibase", "altibase-jdbc" ).versionRef( altibaseVersion )
library( "spanner", "com.google.cloud", "google-cloud-spanner-jdbc" ).versionRef( spannerVersion )
}
mavenLibs {
def mavenCoreVersion = version "mavenCore", "3.9.9"
Expand Down
Loading