You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ni...@apache.org on 2015/04/29 21:05:21 UTC

svn commit: r1676819 - /tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java

Author: nick
Date: Wed Apr 29 19:05:20 2015
New Revision: 1676819

URL: http://svn.apache.org/r1676819
Log:
Add a parsers equivalent OSGi test to mirror the detectors one, spotted while working on TIKA-1617

Modified:
    tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java

Modified: tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java?rev=1676819&r1=1676818&r2=1676819&view=diff
==============================================================================
--- tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java (original)
+++ tika/trunk/tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java Wed Apr 29 19:05:20 2015
@@ -23,6 +23,7 @@ import static org.ops4j.pax.exam.CoreOpt
 import static org.ops4j.pax.exam.CoreOptions.options;
 
 import javax.inject.Inject;
+
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -35,12 +36,13 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.tika.Tika;
-import org.apache.tika.config.TikaConfig;
 import org.apache.tika.detect.DefaultDetector;
 import org.apache.tika.detect.Detector;
 import org.apache.tika.fork.ForkParser;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.mime.MediaType;
+import org.apache.tika.parser.CompositeParser;
+import org.apache.tika.parser.DefaultParser;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.parser.internal.Activator;
@@ -181,9 +183,32 @@ public class BundleIT {
 
     @Test
     public void testBundleParsers() throws Exception {
-        TikaConfig tika = new TikaConfig();
+        // Get the classes found within OSGi
+        ServiceReference<Parser> parserRef = bc.getServiceReference(Parser.class);
+        DefaultParser parserService = (DefaultParser)bc.getService(parserRef);
+        
+        Set<String> osgiParsers = new HashSet<String>();
+        for (Parser p : parserService.getAllComponentParsers()) {
+            osgiParsers.add(p.getClass().getName());
+        }
+
+        // Check we did get a few, just in case...
+        assertTrue("Should have lots Parser names, found " + osgiParsers.size(),
+                osgiParsers.size() > 15);
 
-        // TODO Implement as with Detectors
+        // Get the raw parsers list from the traditional service loading mechanism
+        CompositeParser parser = (CompositeParser)defaultParser;
+        Set<String> rawParsers = new HashSet<String>();
+        for (Parser p : parser.getAllComponentParsers()) {
+            if (p instanceof DefaultParser) {
+                for (Parser pChild : ((DefaultParser)p).getAllComponentParsers()) {
+                    rawParsers.add(pChild.getClass().getName());
+                }
+            } else {
+                rawParsers.add(p.getClass().getName());
+            }
+        }
+        assertEquals(rawParsers, osgiParsers);
     }