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 Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel