You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by tp...@apache.org on 2014/07/17 18:37:52 UTC

svn commit: r1611402 - in /tika/trunk: CHANGES.txt tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java

Author: tpalsulich
Date: Thu Jul 17 16:37:52 2014
New Revision: 1611402

URL: http://svn.apache.org/r1611402
Log:
Fix for JRIA issue TIKA-411, generate list list of supported types automatically.

Modified:
    tika/trunk/CHANGES.txt
    tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java

Modified: tika/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/tika/trunk/CHANGES.txt?rev=1611402&r1=1611401&r2=1611402&view=diff
==============================================================================
--- tika/trunk/CHANGES.txt (original)
+++ tika/trunk/CHANGES.txt Thu Jul 17 16:37:52 2014
@@ -103,6 +103,9 @@ Release 1.5 - 02/04/2014
   * CLI: TikaCLI now escapes invalid filename characters as hex
     characters (TIKA-1078).
 
+  * CLI: TikaCLI now has another option: --list-parser-details-apt, which outputs the list of 
+    supported parsers in APT format. This is used to generate the list on the formats page.
+
 Release 1.4 - 06/15/2013
 
   * Removed a test HTML file with a poorly chosen GPL text in it (TIKA-1129).

Modified: tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java?rev=1611402&r1=1611401&r2=1611402&view=diff
==============================================================================
--- tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java (original)
+++ tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java Thu Jul 17 16:37:52 2014
@@ -327,13 +327,16 @@ public class TikaCLI {
             TikaGUI.main(new String[0]);
         } else if (arg.equals("--list-parser") || arg.equals("--list-parsers")) {
             pipeMode = false;
-            displayParsers(false);
+            displayParsers(false, false);
         } else if (arg.equals("--list-detector") || arg.equals("--list-detectors")) {
            pipeMode = false;
            displayDetectors();
         } else if (arg.equals("--list-parser-detail") || arg.equals("--list-parser-details")) {
             pipeMode = false;
-            displayParsers(true);
+            displayParsers(true, false);
+        } else if (arg.equals("--list-parser-detail-apt") || arg.equals("--list-parser-details-apt")) {
+            pipeMode = false;
+            displayParsers(true, true);
         } else if(arg.equals("--list-met-models")){
             pipeMode = false;
             displayMetModels();
@@ -457,7 +460,9 @@ public class TikaCLI {
         out.println("    --list-parsers");
         out.println("         List the available document parsers");
         out.println("    --list-parser-details");
-        out.println("         List the available document parsers, and their supported mime types");
+        out.println("         List the available document parsers and their supported mime types");
+        out.println("    --list-parser-details-apt");
+        out.println("         List the available document parsers and their supported mime types in apt format.");
         out.println("    --list-detectors");
         out.println("         List the available document detectors");
         out.println("    --list-met-models");
@@ -528,26 +533,33 @@ public class TikaCLI {
      * If a parser is a composite parser, it will list the
      * sub parsers and their mime-types.
      */
-    private void displayParsers(boolean includeMimeTypes) {
-        displayParser(parser, includeMimeTypes, 0);
+    private void displayParsers(boolean includeMimeTypes, boolean aptListFormat) {
+        displayParser(parser, includeMimeTypes, aptListFormat, 3);
     }
      
-    private void displayParser(Parser p, boolean includeMimeTypes, int i) {
+    private void displayParser(Parser p, boolean includeMimeTypes, boolean apt, int i) {
         boolean isComposite = (p instanceof CompositeParser);
         String name = (p instanceof ParserDecorator) ?
                       ((ParserDecorator) p).getWrappedParser().getClass().getName() :
                       p.getClass().getName();
-        System.out.println(indent(i) + name + (isComposite ? " (Composite Parser):" : ""));
-        if (includeMimeTypes && !isComposite) {
-            for (MediaType mt : p.getSupportedTypes(context)) {
-                System.out.println(indent(i+2) + mt);
+        if (apt){
+            name = name.substring(0, name.lastIndexOf(".") + 1) + "{{{./api/" + name.replace(".", "/") + "}" + name.substring(name.lastIndexOf(".") + 1) + "}}";
+        }
+        if ((apt && !isComposite) || !apt) {    // Don't display Composite parsers in the apt output.
+            System.out.println(indent(i) + ((apt) ? "* " : "") + name + (isComposite ? " (Composite Parser):" : ""));
+            if (apt) System.out.println();
+            if (includeMimeTypes && !isComposite) {
+                for (MediaType mt : p.getSupportedTypes(context)) {
+                    System.out.println(indent(i + 3) + ((apt) ? "* " : "") + mt);
+                    if (apt) System.out.println();
+                }
             }
         }
         
         if (isComposite) {
             Parser[] subParsers = sortParsers(invertMediaTypeMap(((CompositeParser) p).getParsers()));
             for(Parser sp : subParsers) {
-                displayParser(sp, includeMimeTypes, i+2);
+                displayParser(sp, includeMimeTypes, apt, i + ((apt) ? 0 : 3));  // Don't indent for Composites in apt.
             }
         }
     }