Skip to content

Commit b7cf3a8

Browse files
committed
For PostgisContainer add useLW(true) support
1 parent d73e082 commit b7cf3a8

1 file changed

Lines changed: 32 additions & 1 deletion

File tree

src/main/java/io/ebean/test/containers/PostgisContainer.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package 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);

0 commit comments

Comments
 (0)