tika-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrei Rebegea (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TIKA-2556) org.json package clash
Date Fri, 26 Jan 2018 16:02:00 GMT

    [ https://issues.apache.org/jira/browse/TIKA-2556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16341193#comment-16341193

Andrei Rebegea commented on TIKA-2556:

Hello [~gagravarr], Thanks for the reply.
I did not get the impression that these libraries are so compatible that they are a drop in
replacement - no problems. It is not like they respect any well predefined interface.
For example the method put(String, Map) (https://github.com/stleary/JSON-java/blob/master/JSONObject.java#L1586)
that some of the legacy code in my project uses, does not have an equivalent in the Ted Dunning
version ( https://github.com/tdunning/open-json/blob/master/src/main/java/org/json/JSONObject.java

I have also seen this [comment | https://issues.apache.org/jira/browse/TIKA-1804?focusedCommentId=15776304&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15776304
] , that suggests other incompatibilities. 
Also this [comment| https://github.com/tdunning/open-json/issues/11#issuecomment-284617650
] , suggesting that it is not supposed to be a 100% compatible implementation. 

I am wandering if all the methods in the Ted Dunning implementation have 100% compatible methods
in the old org.json lib. I still need to do some research about this. *Does anyone know for

FYI, We are working on moving away from the original org.json dodgy license lib, but it will
take some time and we try to update tika now, without patching it too much.

> org.json package clash
> ----------------------
>                 Key: TIKA-2556
>                 URL: https://issues.apache.org/jira/browse/TIKA-2556
>             Project: Tika
>          Issue Type: Improvement
>          Components: parser
>    Affects Versions: 1.17
>            Reporter: Andrei Rebegea
>            Priority: Major
> Hello dear tika contributors.
> In version 1.16, the dependency of org.json:json (https://mvnrepository.com/artifact/org.json/json/20140107)
> was replaced with com.tdunning:json (https://mvnrepository.com/artifact/com.tdunning/json/1.8)
> as part of TIKA-1804.
> I read and understand the reasons. 
> The problem I see is that the package org.json is reused in the replacement lib (com.tdunning)
therefore creating really ugly runtime problems for any application that might use the old
org.json lib ( Douglas Crockford ) either directly or indirectly (And please note that there
are still a lot of libraries that use that lib: https://mvnrepository.com/artifact/org.json/json/usages)
> *What is tika's recommendation for these kind of projects that have to(for various reasons)
use directly or indirectly(brought in by another lib) that old org.json:json lib?*
> This topic has been discussed here also :  https://github.com/tdunning/open-json/issues/11
> As you can see other people have this problem.
> They forked and released an alternative version, that is identical in functionality,
but uses a different package name : https://github.com/openjson/openjson -> https://mvnrepository.com/artifact/com.github.openjson/openjson
> *Is there any plan to switch to the cleaner ("jar hell" free) implementation of json?*
> Thank you!
> I raised this as an improvement, as I think that is what needs to happen: move to the
forked lib version to avoid package name collisions.

This message was sent by Atlassian JIRA

View raw message