You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2019/04/08 10:17:35 UTC
[camel] branch camel-2.23.x updated: CAMEL-13396: Enable
camel-leveldb to work with non-native leveldb libraries again
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch camel-2.23.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.23.x by this push:
new a8a3c41 CAMEL-13396: Enable camel-leveldb to work with non-native leveldb libraries again
a8a3c41 is described below
commit a8a3c41a9c0060c9bc889fce4a1fc223aaf40f4a
Author: James Netherton <ja...@gmail.com>
AuthorDate: Mon Apr 8 10:09:09 2019 +0100
CAMEL-13396: Enable camel-leveldb to work with non-native leveldb libraries again
---
.../java/org/apache/camel/component/leveldb/LevelDBFile.java | 9 +++------
parent/pom.xml | 1 +
platforms/karaf/features/src/main/resources/features.xml | 1 +
3 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/components/camel-leveldb/src/main/java/org/apache/camel/component/leveldb/LevelDBFile.java b/components/camel-leveldb/src/main/java/org/apache/camel/component/leveldb/LevelDBFile.java
index 26428f8..96eefdf 100644
--- a/components/camel-leveldb/src/main/java/org/apache/camel/component/leveldb/LevelDBFile.java
+++ b/components/camel-leveldb/src/main/java/org/apache/camel/component/leveldb/LevelDBFile.java
@@ -23,6 +23,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import org.apache.camel.Service;
import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.ObjectHelper;
import org.iq80.leveldb.CompressionType;
import org.iq80.leveldb.DB;
import org.iq80.leveldb.DBFactory;
@@ -31,11 +32,6 @@ import org.iq80.leveldb.WriteOptions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-
-import static org.fusesource.leveldbjni.JniDBFactory.factory;
-
-
/**
* Manages access to a shared <a href="https://github.com/fusesource/leveldbjni/">LevelDB</a> file.
* <p/>
@@ -179,6 +175,7 @@ public class LevelDBFile implements Service {
try {
final Path dbFile = Paths.get(this.getFileName());
Files.createDirectories(dbFile.getParent());
+ DBFactory factory = getFactory();
db = factory.open(getFile(), options);
} catch (IOException ioe) {
throw new RuntimeException("Error opening LevelDB with file " + getFile(), ioe);
@@ -192,7 +189,7 @@ public class LevelDBFile implements Service {
};
for (String cn : classNames) {
try {
- Class<?> clz = getClass().getClassLoader().loadClass(cn);
+ Class<?> clz = ObjectHelper.loadClass(cn, getClass().getClassLoader());
DBFactory factory = (DBFactory) clz.newInstance();
if (LOG.isDebugEnabled()) {
LOG.debug("Using {} implementation of org.iq80.leveldb.DBFactory", factory.getClass().getName());
diff --git a/parent/pom.xml b/parent/pom.xml
index 719ecc3..cdb11ef 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -451,6 +451,7 @@
<leveldbjni-version>1.8</leveldbjni-version>
<leveldb-api-version>0.10</leveldb-api-version>
<leveldb-version>0.10</leveldb-version>
+ <leveldb-guava-version>21.0</leveldb-guava-version>
<libphonenumber-version>8.9.16</libphonenumber-version>
<libphonenumber-bundle-version>8.9.16_1</libphonenumber-bundle-version>
<!-- virtual dependency only used by Eclipse m2e -->
diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml
index 0d13a10..d4a7be0 100644
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -1470,6 +1470,7 @@
</feature>
<feature name='camel-leveldb-java' version='${project.version}' resolver='(obr)' start-level='50'>
<feature version='${project.version}'>camel-core</feature>
+ <bundle dependency='true'>mvn:com.google.guava/guava/${leveldb-guava-version}</bundle>
<bundle dependency='true'>wrap:mvn:org.iq80.leveldb/leveldb-api/${leveldb-api-version}$Bundle-Version=${leveldb-api-version}&Export-Package=*;-noimport:=true;version="${leveldb-api-version}"</bundle>
<bundle dependency='true'>wrap:mvn:org.iq80.leveldb/leveldb/${leveldb-version}$Bundle-Version=${leveldb-version}&Export-Package=*;-noimport:=true;version="${leveldb-version}"</bundle>
<bundle dependency='true'>mvn:org.fusesource.hawtbuf/hawtbuf/${hawtbuf-version}</bundle>