You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Ken Krugler (JIRA)" <ji...@apache.org> on 2015/04/15 20:58:58 UTC

[jira] [Created] (TIKA-1606) Tika has a dependency on a very old version of Guava

Ken Krugler created TIKA-1606:
---------------------------------

             Summary: Tika has a dependency on a very old version of Guava
                 Key: TIKA-1606
                 URL: https://issues.apache.org/jira/browse/TIKA-1606
             Project: Tika
          Issue Type: Improvement
          Components: parser
    Affects Versions: 1.7
            Reporter: Ken Krugler


I've run into one problem while testing Tika 1.8-rc2 with Bixo

It involves a dependency issue involving (of course) Guava, since that project loves to break their API :(

The bixo-core jar has these transitive dependencies on various versions of Guava:

Hadoop - 11.0.2
Cascading - 14.0.1
Tika-parsers - 10.0.1
	cdm - 17.0

Everyone winds up using version 10.0.1 (note that Tika has a dependency on cdm, which wants to use 17.0)

The problem is that Hadoop (for any recent version) uses an API from Guava's cache implementation that no longer exists:

com.google.common.cache.CacheBuilder.build(Lcom/google/common/cache/CacheLoader;)Lcom/google/common/cache/LoadingCache;
java.lang.NoSuchMethodError: com.google.common.cache.CacheBuilder.build(Lcom/google/common/cache/CacheLoader;)Lcom/google/common/cache/LoadingCache;
	at org.apache.hadoop.io.compress.CodecPool.createCache(CodecPool.java:62)
	at org.apache.hadoop.io.compress.CodecPool.<clinit>(CodecPool.java:74)
	at org.apache.hadoop.io.SequenceFile$Writer.close(SequenceFile.java:1272)
	at org.apache.hadoop.mapred.SequenceFileOutputFormat$1.close(SequenceFileOutputFormat.java:79)

So what this means is that anyone trying to use Tika with Hadoop will need to play games with the class loader to get the older version of Guava - though that can cause other issues if Hadoop (or Cascading, etc) rely on anything that's only in the newer Guava API.

Guava 1.0.01 was released about 3.5 years ago; 11.0.2 was from about 3 years ago. So it seems like we should upgrade to at least 11.0.2




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)