On Fri, Mar 9, 2012 at 17:17, Jerome Velociter
<jerome(a)winesquare.net>wrote;wrote:
On Fri, Mar 9, 2012 at 4:51 PM, Denis Gervalle
<dgl(a)softec.lu> wrote:
On Fri, Mar 9, 2012 at 16:08, Marius Dumitru
Florea <
mariusdumitru.florea(a)xwiki.com> wrote:
On Fri, Mar 9, 2012 at 4:47 PM, Jerome Velociter
<jerome(a)winesquare.net
> wrote:
> > On Fri, Mar 9, 2012 at 3:26 PM, Marius Dumitru Florea
> > <mariusdumitru.florea(a)xwiki.com> wrote:
> >> On Fri, Mar 9, 2012 at 4:10 PM, Vincent Massol <vincent(a)massol.net>
> wrote:
> >>>
> >>> On Mar 9, 2012, at 3:02 PM, Denis Gervalle wrote:
> >>>
> >>>> On Fri, Mar 9, 2012 at 14:54, Marius Dumitru Florea <
> >>>> mariusdumitru.florea(a)xwiki.com> wrote:
> >>>>
> >>>>> Hi devs,
> >>>>>
> >>>>> Some time ago Jerome Velociter raised a vote [1] for adding a
JSON
> >>>>> Velocity Tool. The vote passed but the tool wasn't
committed. I'd
> like
> >>>>> to do it know (for 4.0M1) with two changes:
> >>>>>
> >>>>> 1. Use Jackson [2] instead of json-lib [3] because it has a
more
> recent
> >>>>> release
> >>>>>
> >>>>
> >>>> Isn't json-lib already a dependency available, should we use
another
> one ?
> >>>
> >>> +1 to use only one json lib in xwiki! :)
> >>
> >> Fine.. since json-lib is already used in public API
> >> (com.xpn.xwiki.plugin.packaging.PackageAPI) I'll stick with it.
> >
> > Jackson is considered faster, by several orders. Some articles/threads
> > that talks about it :
> > -
>
http://www.lshift.net/blog/2011/12/28/benchmarking-simple-json-generation-i…
> -
http://www.sencha.com/forum/archive/index.php/t-94883.html
>
> It can be a case for Jackson : if we are to use that tool for
> generating livetable values, performance is a big deal.
That's my use case. I want to refactor the macros from
XWiki.LiveTableResultsMacros to generate the "JSON" in memory (using
actually plain Java data types like maps and lists/arrays) so that I
can adjust it before the response is send to the client. This way I
can avoid duplicating the code from XWiki.LiveTableResultsMacros just
to add a new property to the generated JSON or to modify the value of
an existing property.
Since json-lib is used only in xwiki-platform-oldcore by the package
plugin I think it's fine to:
* use Jackson in JSONTool
* when we refactor the package plugin into a component (if we still
needed it at that point) we can also change the code to use Jackson. I
can add a comment in the pom for this so that we don't forget about
it.
WDYT?
What about groovy ? the JSONBuilder provided by json-lib is nice to have,
and is one of the motivation of the initial thread.
I am not asking for annoying you, we use all that already in many sites.
I
am not against improving, but we should also be
careful to not break
existing stuffs.
I'm not sure what's the problem/how groovy changes the picture here.
Right now json-lib is bundled with XWiki and used internally, but not
exposed. I don't think bundled jars should be assumed stable over
time. Do we have a rule for this ?
In any case that's not good enough a reason to ditch jackson in favor
of json-lib, IMHO. Worse case, it's an argument in favor of keeping
json-lib in the classpath in addition to whatever other lib we decide
to use - should we decide to use something else than json-lib.
That was my concern, you expressed yourself better than I have.
The question is simply, is Jackson so much better that we want to have
both, or drop some compatibility.