Revision: 4613
http://sourceforge.net/p/jump-pilot/code/4613
Author: edso
Date: 2015-12-13 19:01:45 +0000 (Sun, 13 Dec 2015)
Log Message:
-----------
resolve sqlite dependencies through reflection
Modified Paths:
--------------
core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDataStoreDriver.java
core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDataStoreExtension.java
Modified:
core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDataStoreDriver.java
===================================================================
---
core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDataStoreDriver.java
2015-12-13 18:24:53 UTC (rev 4612)
+++
core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDataStoreDriver.java
2015-12-13 19:01:45 UTC (rev 4613)
@@ -1,15 +1,19 @@
package com.vividsolutions.jump.datastore.spatialite;
-import com.vividsolutions.jump.datastore.DataStoreConnection;
-import com.vividsolutions.jump.parameter.ParameterList;
+import java.io.File;
+import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
+import java.util.Properties;
+
+import com.vividsolutions.jump.datastore.DataStoreConnection;
import
com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDataStoreDriver;
+import com.vividsolutions.jump.parameter.ParameterList;
import com.vividsolutions.jump.parameter.ParameterListSchema;
-import java.io.File;
-import org.sqlite.SQLiteConfig;
+//import org.sqlite.SQLiteConfig;
+
/**
* A driver for supplying {@link SpatialDatabaseDSConnection}s
*/
@@ -54,10 +58,18 @@
throw new Exception("Spatialite file: " + database + " does not exist.
cannot create connection");
}
+ // mandatory to load spatialite extension
+ Class configClazz = Class.forName("org.sqlite.SQLiteConfig");
+ Method enableMethod = configClazz.getMethod("enableLoadExtension",
+ new Class[]{Boolean.class});
- SQLiteConfig config = new SQLiteConfig();
+ Object config = configClazz.newInstance();
+ enableMethod.invoke(config, new Boolean(true));
+
+ // this is the code above w/o reflection, KEEP FOR REFERENCE!!!
// mandatory to load spatialite extension
- config.enableLoadExtension(true);
+ //SQLiteConfig config = new SQLiteConfig();
+ //config.enableLoadExtension(true);
String url
= String.valueOf(new StringBuffer(urlPrefix).append(database));
@@ -65,8 +77,10 @@
Driver driver = (Driver) Class.forName(this.getJdbcClass()).newInstance();
DriverManager.registerDriver(driver);
- Connection conn = DriverManager.getConnection(url, config.toProperties());
-
+ Method getPropsMethod = configClazz.getMethod("toProperties");
+ Properties props = (Properties)getPropsMethod.invoke(config);
+ Connection conn = DriverManager.getConnection(url, props);
+
return new SpatialiteDSConnection(conn);
}
}
Modified:
core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDataStoreExtension.java
===================================================================
---
core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDataStoreExtension.java
2015-12-13 18:24:53 UTC (rev 4612)
+++
core/trunk/src/com/vividsolutions/jump/datastore/spatialite/SpatialiteDataStoreExtension.java
2015-12-13 19:01:45 UTC (rev 4613)
@@ -36,7 +36,7 @@
try {
ClassLoader pluginLoader = wbc.getWorkbench().getPlugInManager()
.getClassLoader();
- // check for ojdbc6.jar
+ // check for sqlite jar
DriverManager.registerDriver(
(Driver)Class.forName(JDBC_CLASS, true, pluginLoader).newInstance());
------------------------------------------------------------------------------
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel