File tree Expand file tree Collapse file tree 4 files changed +47
-0
lines changed
local-build-plugins/src/main/groovy Expand file tree Collapse file tree 4 files changed +47
-0
lines changed Original file line number Diff line number Diff line change @@ -1370,6 +1370,38 @@ informix_12_10() {
13701370 fi
13711371}
13721372
1373+ spanner () {
1374+ spanner_emulator
1375+ }
1376+
1377+ spanner_emulator () {
1378+
1379+ $CONTAINER_CLI rm -f spanner || true
1380+ # Run emulator (gRPC on 9010, REST on 9020)
1381+ $CONTAINER_CLI run --name spanner -d \
1382+ -p 9010:9010 \
1383+ -p 9020:9020 \
1384+ ${SPANNER_EMULATOR:- gcr.io/ cloud-spanner-emulator/ emulator: 1.5.45}
1385+
1386+ # Wait for emulator to be ready (check logs for known messages)
1387+ n=0
1388+ until [ " $n " -ge 20 ]; do
1389+ OUTPUT=" $( $CONTAINER_CLI logs spanner 2>&1 || true) "
1390+ if [[ " $OUTPUT " == * " gRPC server listening" * ]] || [[ " $OUTPUT " == * " Cloud Spanner emulator running" * ]]; then
1391+ echo " Cloud Spanner emulator started."
1392+ break
1393+ fi
1394+ echo " Waiting for Cloud Spanner emulator to start..."
1395+ n=$(( n+ 1 ))
1396+ sleep 3
1397+ done
1398+
1399+ if [ " $n " -ge 20 ]; then
1400+ echo " Cloud Spanner emulator failed to start after 1 minute"
1401+ exit 1
1402+ fi
1403+ }
1404+
13731405if [ -z ${1} ]; then
13741406 echo " No db name provided"
13751407 echo " Provide one of:"
@@ -1417,6 +1449,8 @@ if [ -z ${1} ]; then
14171449 echo -e " \informix"
14181450 echo -e " \informix_14_10"
14191451 echo -e " \informix_12_10"
1452+ echo -e " \tspanner"
1453+ echo -e " \tspanner_emulator"
14201454else
14211455 ${1}
14221456fi
Original file line number Diff line number Diff line change @@ -406,5 +406,15 @@ ext {
406406 ' jdbc.url' : ' jdbc:Altibase://' + dbHost + ' :20300/mydb?force_clob_bind=true' ,
407407 ' jdbc.datasource' : ' Altibase.jdbc.driver.AltibaseDriver'
408408 ],
409+ spanner : [
410+ ' db.dialect' : ' org.hibernate.dialect.SpannerDialect' ,
411+ ' jdbc.driver' : ' com.google.cloud.spanner.jdbc.JdbcDriver' ,
412+ ' jdbc.user' : ' ' , // Not used by Spanner
413+ ' jdbc.pass' : ' ' , // Not used by Spanner
414+ ' connection.init_sql' : ' ' ,
415+ // autoConfigEmulator=true creates the necessary instances and DBs if they don't exist already
416+ ' jdbc.url' : ' jdbc:cloudspanner:/projects/orm-test-project/instances/orm-test-instance/databases/orm-test-db?autoConfigEmulator=true;lenient=true' ,
417+ ' jdbc.datasource' : ' com.google.cloud.spanner.jdbc.JdbcDriver'
418+ ],
409419 ]
410420}
Original file line number Diff line number Diff line change @@ -77,6 +77,7 @@ dependencies {
7777 testRuntimeOnly jdbcLibs. gaussdb
7878 testRuntimeOnly jdbcLibs. sybase
7979 testRuntimeOnly jdbcLibs. teradata
80+ testRuntimeOnly jdbcLibs. spanner
8081 testRuntimeOnly rootProject. fileTree(dir : ' drivers' , include : ' *.jar' )
8182
8283 // Since both the DB2 driver and HANA have a package "net.jpountz" we have to add dependencies conditionally
Original file line number Diff line number Diff line change @@ -239,6 +239,7 @@ dependencyResolutionManagement {
239239 def teradataVersion = version " teradata" , " 20.00.00.51"
240240 def tidbVersion = version " tidb" , mysqlVersion
241241 def altibaseVersion = version " altibase" , " 7.3.0.1.1"
242+ def spannerVersion = version " spanner" , " 2.34.0"
242243
243244 library( " h2" , " com.h2database" , " h2" ). versionRef( h2Version )
244245 library( " h2gis" , " org.orbisgis" , " h2gis" ). versionRef( h2gisVersion )
@@ -264,6 +265,7 @@ dependencyResolutionManagement {
264265 library( " informix" , " com.ibm.informix" , " jdbc" ). versionRef( informixVersion )
265266 library( " firebird" , " org.firebirdsql.jdbc" , " jaybird" ). versionRef( firebirdVersion )
266267 library( " altibase" , " com.altibase" , " altibase-jdbc" ). versionRef( altibaseVersion )
268+ library( " spanner" , " com.google.cloud" , " google-cloud-spanner-jdbc" ). versionRef( spannerVersion )
267269 }
268270 mavenLibs {
269271 def mavenCoreVersion = version " mavenCore" , " 3.9.9"
You can’t perform that action at this time.
0 commit comments