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
sure?* 


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
(v7.6.3#76005)

Mime
View raw message