StringsParser extends AbstractParser { @Override public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context) throws IOException, SAXException, TikaException { StringsConfig stringsConfig = context.get(StringsConfig.class, DEFAULT_STRINGS_CONFIG); FileConfig fileConfig = context.get(FileConfig.class, DEFAULT_FILE_CONFIG); if (!hasStrings(stringsConfig)) { return; } TikaInputStream tis = TikaInputStream.get(stream); File input = tis.getFile(); metadata.set("strings:min-len", "" + stringsConfig.getMinLength()); metadata.set("strings:encoding", stringsConfig.toString()); metadata.set("strings:file_output", doFile(input, fileConfig)); int totalBytes = 0; XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata); xhtml.startDocument(); totalBytes = doStrings(input, stringsConfig, xhtml); xhtml.endDocument(); metadata.set("strings:length", "" + totalBytes); }  @Override Set<MediaType> getSupportedTypes(ParseContext context); @Override void parse(InputStream stream, ContentHandler handler,
			Metadata metadata, ParseContext context); static String getStringsProg(); static String getFileProg();  }
@Test public void testParse() throws Exception { assumeTrue(canRun()); String resource = "/test-documents/testOCTET_header.dbase3"; String[] content = { "CLASSNO", "TITLE", "ITEMNO", "LISTNO", "LISTDATE" }; String[] met_attributes = {"min-len", "encoding", "strings:file_output"}; StringsConfig stringsConfig = new StringsConfig(); FileConfig fileConfig = new FileConfig(); Parser parser = new StringsParser(); ContentHandler handler = new BodyContentHandler(); Metadata metadata = new Metadata(); ParseContext context = new ParseContext(); context.set(StringsConfig.class, stringsConfig); context.set(FileConfig.class, fileConfig); try (InputStream stream = StringsParserTest.class.getResourceAsStream(resource)) { parser.parse(stream, handler, metadata, context); } catch (Exception e) { e.printStackTrace(); } for (String word : content) { assertTrue(handler.toString().contains(word)); } Arrays.equals(met_attributes, metadata.names()); }