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

Reply via email to