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) {