Repository: tika Updated Branches: refs/heads/2.x cebf72382 -> dc841e6ba
TIKA-2060 - Added toggle to ClassLoaderUtils for OSGi Project: http://git-wip-us.apache.org/repos/asf/tika/repo Commit: http://git-wip-us.apache.org/repos/asf/tika/commit/dc841e6b Tree: http://git-wip-us.apache.org/repos/asf/tika/tree/dc841e6b Diff: http://git-wip-us.apache.org/repos/asf/tika/diff/dc841e6b Branch: refs/heads/2.x Commit: dc841e6ba3b802986387c21b1499fb0ef58ff56c Parents: cebf723 Author: Bob Paulin <[email protected]> Authored: Sun Aug 28 18:14:38 2016 -0500 Committer: Bob Paulin <[email protected]> Committed: Sun Aug 28 18:14:38 2016 -0500 ---------------------------------------------------------------------- .../tika/batch/builders/BatchProcessBuilder.java | 11 ++++++++++- .../org/apache/tika/util/ClassLoaderUtil.java | 18 +++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tika/blob/dc841e6b/tika-batch/src/main/java/org/apache/tika/batch/builders/BatchProcessBuilder.java ---------------------------------------------------------------------- diff --git a/tika-batch/src/main/java/org/apache/tika/batch/builders/BatchProcessBuilder.java b/tika-batch/src/main/java/org/apache/tika/batch/builders/BatchProcessBuilder.java index 21db4c7..f937577 100644 --- a/tika-batch/src/main/java/org/apache/tika/batch/builders/BatchProcessBuilder.java +++ b/tika-batch/src/main/java/org/apache/tika/batch/builders/BatchProcessBuilder.java @@ -97,12 +97,21 @@ public class BatchProcessBuilder { incomingRuntimeAttributes, docElement); int maxAliveTimeSeconds = XMLDOMUtil.getInt("maxAliveTimeSeconds", incomingRuntimeAttributes, docElement); + FileResourceCrawler crawler = null; ConsumersManager consumersManager = null; StatusReporter reporter = null; Interrupter interrupter = null; - + + Node useBundleClassLoaderAttribute = + docElement.getAttributes().getNamedItem("useBundleClassLoader"); + if(useBundleClassLoaderAttribute != null) + { + ClassLoaderUtil.setUseBundleClassLoader( + Boolean.parseBoolean(useBundleClassLoaderAttribute.getNodeValue())); + } + /* * TODO: This is a bit smelly. NumConsumers needs to be used by the crawler * and the consumers. This copies the incomingRuntimeAttributes and then http://git-wip-us.apache.org/repos/asf/tika/blob/dc841e6b/tika-batch/src/main/java/org/apache/tika/util/ClassLoaderUtil.java ---------------------------------------------------------------------- diff --git a/tika-batch/src/main/java/org/apache/tika/util/ClassLoaderUtil.java b/tika-batch/src/main/java/org/apache/tika/util/ClassLoaderUtil.java index 80f618c..b65d6d2 100644 --- a/tika-batch/src/main/java/org/apache/tika/util/ClassLoaderUtil.java +++ b/tika-batch/src/main/java/org/apache/tika/util/ClassLoaderUtil.java @@ -17,11 +17,23 @@ package org.apache.tika.util; * limitations under the License. */ public class ClassLoaderUtil { + + private static boolean useBundleClassLoader = false; @SuppressWarnings("unchecked") public static <T> T buildClass(Class<T> iface, String className) { - ClassLoader loader = ClassLoader.getSystemClassLoader(); + + ClassLoader loader = null; + if(useBundleClassLoader) + { + loader = ClassLoaderUtil.class.getClassLoader(); + } + else + { + loader = ClassLoader.getSystemClassLoader(); + } + Class<?> clazz; try { clazz = loader.loadClass(className); @@ -38,4 +50,8 @@ public class ClassLoaderUtil { } } + + public static void setUseBundleClassLoader(boolean useBundleClassLoader) { + ClassLoaderUtil.useBundleClassLoader = useBundleClassLoader; + } }
