You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by Robert Munteanu <rm...@adobe.com> on 2016/11/28 21:35:08 UTC

New JSON library

Hi,

The JSON license has been moved to 'Category X' [1] which means that we
can no longer use the org.json library. This has been announced on the
legal@ mailing list, please see [2] for the complete picture.

We have until 30 Apr 2017 to remove all dependencies and inclusions of
the org.json library. We may decide to do this earlier, of course.

I think it's a good time to drive down the TEF [3] of Sling and move to
 using a more mainstream JSON library. I don't have a strong opinion on
the replacement, but I added a couple of ideas at [4].

Anyone with an opinion, do chime in :-)

Thanks,

Robert


[1]: https://www.apache.org/legal/resolved#category-x
[2]: https://lists.apache.org/thread.html/bb18f942ce7eb83c11438303c818b
885810fb76385979490366720d5@%3Clegal-discuss.apache.org%3E
[3]: Technical Exoticity Factory - I made it up on the spot
[4]: https://cwiki.apache.org/confluence/display/SLING/New+JSON+library

Re: New JSON library

Posted by Felix Meschberger <fm...@adobe.com>.
Hi

I like this approach.

As to replacement options: I'd go for Apache Johnzon. First it's Apache hence eating our own dogfood. But more importantly, it is an implementation of the standard javax.json API. I much prefer standard APIs over the fragmented JSON API scene.

Regards
Felix

Von meinem iPad gesendet

> Am 01.12.2016 um 23:14 schrieb Justin Edelson <ju...@justinedelson.com>:
> 
> While I think that it is a good idea in theory to remove our custom JSON
> library, I don't think that is practical in the near term. So I think our
> best course of action is a multistep process:
> 
> 1) Rewrite org.apache.commons.json using
> https://github.com/tdunning/open-json.
> 2) Select a new standard library
> 3) Modify internal-usages of org.apache.commons.json to use library from #2.
> 4) Handle API usage of org.apache.commons.json on a case-by-case basis.
> 
> Agree with Stefan that Semantic Versioning is critical for library
> selection. I'm not sure that Jackson actually does this. As far as I can
> tell, they only use SemVer at the bundle level, not the package level.
> 
> 
> On Thu, Dec 1, 2016 at 4:32 PM Stefan Seifert <ss...@pro-vision.de>
> wrote:
> 
>> following [4] it looks that the best options are currently either GSON or
>> Jackson.
>> i think GSON has smaller footprint and is more compact, but both are good
>> options.
>> 
>> another criteria for choosing is: do they publish their APIs following
>> semantic versioning? otherwise we have the same dilemma as with guava.
>> for jackson this is the case, see
>> https://github.com/FasterXML/jackson/wiki/Jackson-Releases
>> for gson i've not found a documentation, but it seems they follow it as
>> well, have not checked in detail.
>> 
>> stefan
>> 
>> 
>>> -----Original Message-----
>>> From: Robert Munteanu [mailto:rmuntean@adobe.com]
>>> Sent: Monday, November 28, 2016 10:35 PM
>>> To: dev@sling.apache.org
>>> Subject: New JSON library
>>> 
>>> Hi,
>>> 
>>> The JSON license has been moved to 'Category X' [1] which means that we
>>> can no longer use the org.json library. This has been announced on the
>>> legal@ mailing list, please see [2] for the complete picture.
>>> 
>>> We have until 30 Apr 2017 to remove all dependencies and inclusions of
>>> the org.json library. We may decide to do this earlier, of course.
>>> 
>>> I think it's a good time to drive down the TEF [3] of Sling and move to
>>> using a more mainstream JSON library. I don't have a strong opinion on
>>> the replacement, but I added a couple of ideas at [4].
>>> 
>>> Anyone with an opinion, do chime in :-)
>>> 
>>> Thanks,
>>> 
>>> Robert
>>> 
>>> 
>>> [1]: https://www.apache.org/legal/resolved#category-x
>>> [2]: https://lists.apache.org/thread.html/bb18f942ce7eb83c11438303c818b
>>> 885810fb76385979490366720d5@%3Clegal-discuss.apache.org%3E
>>> [3]: Technical Exoticity Factory - I made it up on the spot
>>> [4]: https://cwiki.apache.org/confluence/display/SLING/New+JSON+library
>> 

Re: New JSON library

Posted by Justin Edelson <ju...@justinedelson.com>.
While I think that it is a good idea in theory to remove our custom JSON
library, I don't think that is practical in the near term. So I think our
best course of action is a multistep process:

1) Rewrite org.apache.commons.json using
https://github.com/tdunning/open-json.
2) Select a new standard library
3) Modify internal-usages of org.apache.commons.json to use library from #2.
4) Handle API usage of org.apache.commons.json on a case-by-case basis.

Agree with Stefan that Semantic Versioning is critical for library
selection. I'm not sure that Jackson actually does this. As far as I can
tell, they only use SemVer at the bundle level, not the package level.


On Thu, Dec 1, 2016 at 4:32 PM Stefan Seifert <ss...@pro-vision.de>
wrote:

> following [4] it looks that the best options are currently either GSON or
> Jackson.
> i think GSON has smaller footprint and is more compact, but both are good
> options.
>
> another criteria for choosing is: do they publish their APIs following
> semantic versioning? otherwise we have the same dilemma as with guava.
> for jackson this is the case, see
> https://github.com/FasterXML/jackson/wiki/Jackson-Releases
> for gson i've not found a documentation, but it seems they follow it as
> well, have not checked in detail.
>
> stefan
>
>
> >-----Original Message-----
> >From: Robert Munteanu [mailto:rmuntean@adobe.com]
> >Sent: Monday, November 28, 2016 10:35 PM
> >To: dev@sling.apache.org
> >Subject: New JSON library
> >
> >Hi,
> >
> >The JSON license has been moved to 'Category X' [1] which means that we
> >can no longer use the org.json library. This has been announced on the
> >legal@ mailing list, please see [2] for the complete picture.
> >
> >We have until 30 Apr 2017 to remove all dependencies and inclusions of
> >the org.json library. We may decide to do this earlier, of course.
> >
> >I think it's a good time to drive down the TEF [3] of Sling and move to
> > using a more mainstream JSON library. I don't have a strong opinion on
> >the replacement, but I added a couple of ideas at [4].
> >
> >Anyone with an opinion, do chime in :-)
> >
> >Thanks,
> >
> >Robert
> >
> >
> >[1]: https://www.apache.org/legal/resolved#category-x
> >[2]: https://lists.apache.org/thread.html/bb18f942ce7eb83c11438303c818b
> >885810fb76385979490366720d5@%3Clegal-discuss.apache.org%3E
> >[3]: Technical Exoticity Factory - I made it up on the spot
> >[4]: https://cwiki.apache.org/confluence/display/SLING/New+JSON+library
>

RE: New JSON library

Posted by Stefan Seifert <ss...@pro-vision.de>.
following [4] it looks that the best options are currently either GSON or Jackson.
i think GSON has smaller footprint and is more compact, but both are good options.

another criteria for choosing is: do they publish their APIs following semantic versioning? otherwise we have the same dilemma as with guava.
for jackson this is the case, see https://github.com/FasterXML/jackson/wiki/Jackson-Releases
for gson i've not found a documentation, but it seems they follow it as well, have not checked in detail.

stefan


>-----Original Message-----
>From: Robert Munteanu [mailto:rmuntean@adobe.com]
>Sent: Monday, November 28, 2016 10:35 PM
>To: dev@sling.apache.org
>Subject: New JSON library
>
>Hi,
>
>The JSON license has been moved to 'Category X' [1] which means that we
>can no longer use the org.json library. This has been announced on the
>legal@ mailing list, please see [2] for the complete picture.
>
>We have until 30 Apr 2017 to remove all dependencies and inclusions of
>the org.json library. We may decide to do this earlier, of course.
>
>I think it's a good time to drive down the TEF [3] of Sling and move to
> using a more mainstream JSON library. I don't have a strong opinion on
>the replacement, but I added a couple of ideas at [4].
>
>Anyone with an opinion, do chime in :-)
>
>Thanks,
>
>Robert
>
>
>[1]: https://www.apache.org/legal/resolved#category-x
>[2]: https://lists.apache.org/thread.html/bb18f942ce7eb83c11438303c818b
>885810fb76385979490366720d5@%3Clegal-discuss.apache.org%3E
>[3]: Technical Exoticity Factory - I made it up on the spot
>[4]: https://cwiki.apache.org/confluence/display/SLING/New+JSON+library