From e1f520911ffe02719d138c11300df5bbde581af7 Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Sat, 24 Jan 2015 19:11:10 +0100 Subject: [PATCH] Fixed SQLite driver loading --- .../META-INF/MANIFEST.MF | 6 ++++-- com.minres.scviewer.database.sqlite/pom.xml | 20 +++++++------------ .../database/sqlite/db/SQLiteDatabase.java | 17 ++++++++++++++++ com.minres.scviewer.parent/pom.xml | 1 + 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/com.minres.scviewer.database.sqlite/META-INF/MANIFEST.MF b/com.minres.scviewer.database.sqlite/META-INF/MANIFEST.MF index 904a248..4e48cb5 100644 --- a/com.minres.scviewer.database.sqlite/META-INF/MANIFEST.MF +++ b/com.minres.scviewer.database.sqlite/META-INF/MANIFEST.MF @@ -9,8 +9,10 @@ Require-Bundle: com.minres.scviewer.database;bundle-version="1.0.0", org.eclipse.equinox.util;bundle-version="1.0.500", org.eclipse.equinox.ds;bundle-version="1.4.200", org.eclipse.osgi.services;bundle-version="3.4.0" -Bundle-ClassPath: ., - sqlite-jdbc-3.8.7.jar +Bundle-ClassPath: .,sqlite-jdbc-3.8.7.jar Service-Component: OSGI-INF/component.xml Export-Package: com.minres.scviewer.database.sqlite Bundle-ActivationPolicy: lazy +Embed-Dependency: sqlite-jdbc +Embedded-Artifacts: sqlite-jdbc-3.8.7.jar;g="org.xerial"; + a="sqlite-jdbc";v="3.8.7" diff --git a/com.minres.scviewer.database.sqlite/pom.xml b/com.minres.scviewer.database.sqlite/pom.xml index 95e686f..9c97cb2 100644 --- a/com.minres.scviewer.database.sqlite/pom.xml +++ b/com.minres.scviewer.database.sqlite/pom.xml @@ -1,19 +1,6 @@ 4.0.0 com.minres.scviewer.database.sqlite - - src - - - maven-compiler-plugin - 3.1 - - 1.7 - 1.7 - - - - com.minres.scviewer com.minres.scviewer.parent @@ -21,4 +8,11 @@ ../com.minres.scviewer.parent eclipse-plugin + + + org.xerial + sqlite-jdbc + 3.8.7 + + \ No newline at end of file diff --git a/com.minres.scviewer.database.sqlite/src/com/minres/scviewer/database/sqlite/db/SQLiteDatabase.java b/com.minres.scviewer.database.sqlite/src/com/minres/scviewer/database/sqlite/db/SQLiteDatabase.java index 7d598c4..c0307df 100644 --- a/com.minres.scviewer.database.sqlite/src/com/minres/scviewer/database/sqlite/db/SQLiteDatabase.java +++ b/com.minres.scviewer.database.sqlite/src/com/minres/scviewer/database/sqlite/db/SQLiteDatabase.java @@ -10,6 +10,8 @@ *******************************************************************************/ package com.minres.scviewer.database.sqlite.db; +import java.net.URL; +import java.net.URLClassLoader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; @@ -18,12 +20,27 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.HashMap; +import org.sqlite.JDBC; + public class SQLiteDatabase implements IDatabase { protected String dbFileName; protected HashMap props; + static { + try { + URL dbUrl = SQLiteDatabase.class.getResource("/sqlite-jdbc-3.8.7.jar"); + ClassLoader loader = URLClassLoader.newInstance( + new URL[] { dbUrl }, + SQLiteDatabase.class.getClassLoader() + ); + Class.forName("org.sqlite.JDBC", true, loader); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + public SQLiteDatabase(String dbFileName) { super(); this.dbFileName = dbFileName; diff --git a/com.minres.scviewer.parent/pom.xml b/com.minres.scviewer.parent/pom.xml index d802dca..e4d49e3 100644 --- a/com.minres.scviewer.parent/pom.xml +++ b/com.minres.scviewer.parent/pom.xml @@ -12,6 +12,7 @@ ../com.minres.scviewer.database.vcd ../com.minres.scviewer.feature ../com.minres.scviewer.ui + ../com.minres.scviewer.updateSite ../com.minres.scviewer.database.test