Author: jukka
Date: Thu Feb 18 15:35:48 2010
New Revision: 911446

URL: http://svn.apache.org/viewvc?rev=911446&view=rev
Log:
TIKA-378: TikaConfig should notify users if it cannot initialize some parser

Make the class parser loadable even when the asm library is not present

Modified:
    
lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java
    
lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java

Modified: 
lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java
URL: 
http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java?rev=911446&r1=911445&r2=911446&view=diff
==============================================================================
--- 
lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java
 (original)
+++ 
lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java
 Thu Feb 18 15:35:48 2010
@@ -26,8 +26,6 @@
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
@@ -47,17 +45,7 @@
             InputStream stream, ContentHandler handler,
             Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
-        try {
-            ClassVisitor visitor = new XHTMLClassVisitor(handler, metadata);
-            ClassReader reader = new ClassReader(stream);
-            reader.accept(visitor, ClassReader.SKIP_FRAMES | 
ClassReader.SKIP_CODE);
-        } catch (RuntimeException e) {
-            if (e.getCause() instanceof SAXException) {
-                throw (SAXException) e.getCause();
-            } else {
-                throw new TikaException("Failed to parse a Java class", e);
-            }
-        }
+        new XHTMLClassVisitor(handler, metadata).parse(stream);
     }
 
     /**

Modified: 
lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
URL: 
http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java?rev=911446&r1=911445&r2=911446&view=diff
==============================================================================
--- 
lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
 (original)
+++ 
lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
 Thu Feb 18 15:35:48 2010
@@ -16,10 +16,15 @@
  */
 package org.apache.tika.parser.asm;
 
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.Attribute;
+import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.FieldVisitor;
 import org.objectweb.asm.MethodVisitor;
@@ -47,6 +52,20 @@
         this.metadata = metadata;
     }
 
+    public void parse(InputStream stream)
+            throws TikaException, SAXException, IOException {
+        try {
+            ClassReader reader = new ClassReader(stream);
+            reader.accept(this, ClassReader.SKIP_FRAMES | 
ClassReader.SKIP_CODE);
+        } catch (RuntimeException e) {
+            if (e.getCause() instanceof SAXException) {
+                throw (SAXException) e.getCause();
+            } else {
+                throw new TikaException("Failed to parse a Java class", e);
+            }
+        }
+    }
+
     public void visit(
             int version, int access, String name, String signature,
             String superName, String[] interfaces) {


Reply via email to