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.
}
}
}