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;
+    }
 }

Reply via email to