Apache Tika xmp
Copyright 2015 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

Tika-server compoment uses CDDL-licensed dependencies: jersey (http://jersey.java.net/) and 
Grizzly (http://grizzly.java.net/)

OpenCSV: Copyright 2005 Bytecode Pty Ltd. Licensed under the Apache License, Version 2.0

IPTC Photo Metadata descriptions Copyright 2010 International Press Telecommunications Council.
