File tree Expand file tree Collapse file tree
src/main/java/io/ebean/test/containers Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11package io .ebean .test .containers ;
22
3+ import static java .lang .System .Logger .Level .DEBUG ;
4+ import static java .lang .System .Logger .Level .ERROR ;
5+
36/**
47 * Commands for controlling a postgis docker container.
58 */
@@ -70,11 +73,39 @@ protected String buildExtraJdbcUrl(String dbName) {
7073 * Set to use HexWKB and DriverWrapperLW. The JDBC URL will prefix with
7174 * <code>jdbc:postgresql_lwgis://</code> instead of <code>jdbc:postgresql://</code>.
7275 */
73- Builder useLW (boolean useLW ) {
76+ public Builder useLW (boolean useLW ) {
7477 this .useLW = useLW ;
78+ if (useLW ) {
79+ // make sure the LW driver is registered
80+ String driver = checkDriver ();
81+ if (driver != null ) {
82+ log .log (DEBUG , "DriverWrapperLW exists {0}" , driver );
83+ } else {
84+ log .log (ERROR , "Missing dependency net.postgis:postgis-jdbc for DriverWrapperLW?" );
85+ }
86+ }
7587 return this ;
7688 }
7789
90+ private static String checkDriver () {
91+ if (classExists ("net.postgis.jdbc.DriverWrapperLW" )) {
92+ return "net.postgis.jdbc.DriverWrapperLW" ;
93+ }
94+ if (classExists ("org.postgis.DriverWrapperLW" )) {
95+ return "org.postgis.DriverWrapperLW" ;
96+ }
97+ return null ;
98+ }
99+
100+ private static boolean classExists (String cn ) {
101+ try {
102+ Class .forName (cn );
103+ return true ;
104+ } catch (ClassNotFoundException e ) {
105+ return false ;
106+ }
107+ }
108+
78109 @ Override
79110 public PostgisContainer build () {
80111 return new PostgisContainer (this );
You can’t perform that action at this time.
0 commit comments