Apache Tika 2.0.0

BREAKING CHANGES in 2.0.0

  • General * OCR is now triggered automatically for PDFs if tesseract is on the user's path see (https://cwiki.apache.org/confluence/display/TIKA/TikaOCR#TikaOCR-disable-ocr) for how to disable OCR. * We upgraded from log4j to log4j2 in tika-app, tika-server and anywhere else we used to use log4j. * By default, when rendering a page for OCR, the PDFParser does not render glyphs/text. * Removed deprecated Metadata keys/properties (TIKA-1974). * Removed deprecated PDFPreflightParser (TIKA-3437). * Removed dangerous calls to read an inputstream or convert to bytes without specifying a charset * Parsers can be configured via tika-config.xml on instantiation. We have moved away from configuration via .properties files because of confusion among users. This affects the PDFParser, TesseractOCRParser and the StringsParser. * Changed namespaces of translator implementations (o.a.t.language.translate.impl) to avoid split-package with tika-core
  • tika-parsers * The parser modules have been broken into three main modules: tika-parsers-standard, tika-parsers-extended and tika-parsers-ml. Users may now need to add tika-parsers-extended's tika-parser-scientific-module or tika-parser-sqlite3-module to tika-app and tika-server to include parsers that used to be included by default (for example: envi, gdal, grib, isatab, netcdf, sqlite3). * PDFParser -- a) see above on OCR. b) This parser no longer warns if the jpeg2000 dependency is not included. Tika now relies on PDFBox to log an error if a jpeg2000 image should be processed but can't because the required external dependency is not available. See https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io for the non-ASF-2.0-compatible jpeg2000 library. * CompressorParser -- users must add the com.github.luben:zstd-jni dependency to the classpath to process zstd files. This is an optional library that is no longer bundled in tika-parsers-standard-package because it contains native libs. * ChmParser was moved to org.apache.tika.parser.microsoft.chm * RTFParser was moved to org.apache.tika.parser.microsoft.rtf * We are now using non-shaded versions of xmpcore with namespaces com.adobe.internal.* vs com.adobe.*.
  • tika-app * See above on default inclusion of only tika-parsers-standard.
  • tika-server * tika-server now by default forks a process to isolate the parsing in the forked process (this was called the -spawnChild option in tika-1.x). Clients must now expect that tika-server will restart on OOM, timeouts, crashes or after parsing a large number of files. When this happens tika-server will restand and not receive connections for brief periods. The less robust, legacy behavior of not forking a process is available with "-noFork"= * Most of tika-server's legacy configuration via the commandline has been moved into configuration via a tika-config.xml file. * tika-server's "enableFileUrl" has been removed in favor of a FileSystemFetcher. * tika-server's /metadata endpoint requires tika-server-standard to write XMP/rdf output. This output is not available in tika-server-core. * In tika-server, for those parsers that can be configured per parse via a config object passed in through the ParseContext, the config object will only update those fields that the user has modified. The config object will no longer fully reset all settings to the default settings per parse. This has a more intuitive "update the base/configured settings" with what has been changed in the config object.
  • tika-eval * tika-eval's default profile and comparison reports no longer include tag reports. Users can get the report configs that include tags (*-tags.xml): https://github.com/apache/tika/tree/main/tika-eval/tika-eval-app/src/main/resources

    The most notable changes in Tika 2.0.0 over the previous BETA release are:

    • Clean up the fetcher integration with tika-app
    • Upgrade dependencies (TIKA-3475).

    The following people have contributed to Tika 2.0.0 by submitting or commenting on the issues resolved in this release:

    • Aashish Chaudhary
    • Abhijit Rajwade
    • Adam Carroll
    • Adam Rauch
    • Aeham Abushwashi
    • Alan Hunter
    • Albert L.
    • Alessandro De Angelis
    • Alexander Kazakov
    • Andreas Meier
    • Andrei Rebegea
    • Ann Burgess
    • Annie Didier
    • Anssi Törmä
    • Anto
    • Arky
    • Asela
    • Bin Hawking
    • Bipul Kumar
    • Bob Paulin
    • Boris Petrov
    • Brian McColgan
    • Celpan Valeria
    • César Soto Valero
    • Chris A. Mattmann
    • Chris Bryant
    • Chris Knott
    • Chris Mattmann
    • Claudia Mickiewicz
    • Colm O hEigeartaigh
    • Cristian Zamfir
    • Daniel Bonniot de Ruisselet
    • daniel schmidt
    • Dave Meikle
    • David Pilato
    • Dmitry Goldenberg
    • Egbert
    • Ewan Mellor
    • Fabio
    • Filip
    • Franco Catto
    • frank
    • Frederic Ronny
    • Furkan Kamaci
    • Gerard Bouchar
    • Giovanni De Stefano
    • Graham Charters
    • Grigoriy Alekseev
    • Guillaume Smet
    • Hans Brende
    • Ichbiah
    • Jan Van Raemdonck
    • Jasper Hafkenscheid
    • jefferyyuan
    • Jeff Swindle
    • Jeroen
    • John Dougrez-Lewis
    • John Haynes
    • Jorge Spinsanti
    • Joseph Naegele
    • Josh Cummings
    • Joshua Hight
    • Jukka Zitting
    • Julian
    • Julian Reschke
    • Julien Massiera
    • Julien Nioche
    • Karl Wright
    • Kenneth William Krugler
    • Kevin Oberlag
    • Konstantin Gribov
    • Kristen Cheung
    • Kukushkin Alexander
    • Kyle Dent
    • Lewis John McGibbney
    • Luís Filipe Nassif
    • Łukasz Ozimek
    • Madhav Sharan
    • Manolo Caracuel
    • Marc Prud'hommeaux
    • Mario Bisonti
    • Markus Jelsma
    • Matthew Caruana Galizia
    • Matt Sheppard
    • Michael McCandless
    • Nicholas DiPiazza
    • Nick Burch
    • Nick C
    • Nick Sincaglia
    • Nik Everett
    • Nino Skopac
    • Ohad R
    • Panagiotis Mpailis
    • Parth
    • Pascal Essiembre
    • Paul Hallett
    • Paul Ramirez
    • pdwalker
    • Peter Davies
    • Peter Kronenberg
    • Peter Lee
    • Peter Weiss
    • Philipp Steinkrueger
    • RameshKalidindi
    • Ramit Wadhwa
    • Ravi
    • Ray Gauss II
    • Reinhard Pötz
    • Richard A
    • Richard Jones
    • Robert Munteanu
    • Roberto Benedetti
    • Rupert Westenthaler
    • Sam H
    • Sasha Goodman
    • Sean Story
    • Sebastian Iturra
    • Sebastian Nagel
    • Selim Dincer
    • senthil
    • Serban Alexe
    • Sergey Beryozkin
    • Seva Alekseyev
    • Shadow Liao
    • Shawn Johnson
    • Simon Lucy
    • Slava G
    • Stefano Fornari
    • Stefan Sveen
    • Thamme Gowda
    • Thejan Wijesinghe
    • Thomas Galla
    • Thomas Mortagne
    • Thorsten Schäfer
    • Tilman Hausherr
    • Tim Allison
    • Tim Barrett
    • Tim Kingsbury
    • Trevor Bentley
    • Tyler Bui-Palsulich
    • Uwe Schindler
    • Yahav Amsalem
    • Yaniv Kunda
    • Yuriy Koval
    • Yury Kats

    See https://s.apache.org/gm874 for more details on these contributions.