On Fri, Mar 9, 2012 at 5:21 PM, Denis Gervalle <[email protected]> wrote: > On Fri, Mar 9, 2012 at 17:17, Jerome Velociter <[email protected]>wrote: > >> On Fri, Mar 9, 2012 at 4:51 PM, Denis Gervalle <[email protected]> wrote: >> > On Fri, Mar 9, 2012 at 16:08, Marius Dumitru Florea < >> > [email protected]> wrote: >> > >> >> On Fri, Mar 9, 2012 at 4:47 PM, Jerome Velociter <[email protected] >> > >> >> wrote: >> >> > On Fri, Mar 9, 2012 at 3:26 PM, Marius Dumitru Florea >> >> > <[email protected]> wrote: >> >> >> On Fri, Mar 9, 2012 at 4:10 PM, Vincent Massol <[email protected]> >> >> wrote: >> >> >>> >> >> >>> On Mar 9, 2012, at 3:02 PM, Denis Gervalle wrote: >> >> >>> >> >> >>>> On Fri, Mar 9, 2012 at 14:54, Marius Dumitru Florea < >> >> >>>> [email protected]> 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-in-java >> >> > - 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.
Personnally I don't have too strong feelings, however, I think that : * Good performance of the livetable is important. JSON serialization time might not be that much a big deal compared to SQL time - but in the end once you got rid of big bottlenecks, the performance of every link in the chain matters. * There is support for jackson in Restlet via an extension. This could help us improve performance of our REST API for JSON payloads/responses. * Jackson seems more active So in the end I tend to be in favor of jackson over json-lib. There is also GSON that could be investigated. Personnally I've never worked with it/don't know much about it. Jerome > > >> >> > >> > >> >> >> >> I'm +1 for this. >> >> >> >> Thanks, >> >> Marius >> >> >> >> > >> >> > my 2 cents >> >> > >> >> > Jerome >> >> > >> >> > >> >> >> >> >> >> Thanks, >> >> >> Marius >> >> >> >> >> >>> >> >> >>> Thanks >> >> >>> -Vincent >> >> >>>> >> >> >>>> >> >> >>>>> 2. Add only the toJSON method for now because we can use >> >> >>>>> $escapetool.javascript to accomplish the same result as >> toValueString >> >> >>>>> >> >> >>>>> Reply quickly if you are against it. >> >> >>>>> >> >> >>>>> Thanks, >> >> >>>>> Marius >> >> >>>>> >> >> >>>>> [1] http://www.mail-archive.com/[email protected]/msg11395.html >> >> >>>>> [2] http://jackson.codehaus.org/ >> >> >>>>> [3] http://json-lib.sourceforge.net/ >> >> >>> _______________________________________________ >> >> >>> devs mailing list >> >> >>> [email protected] >> >> >>> http://lists.xwiki.org/mailman/listinfo/devs >> >> >> _______________________________________________ >> >> >> devs mailing list >> >> >> [email protected] >> >> >> http://lists.xwiki.org/mailman/listinfo/devs >> >> > >> >> > >> >> > -- >> >> > Jérôme Velociter >> >> > Winesquare >> >> > http://www.winesquare.net/ >> >> > _______________________________________________ >> >> > devs mailing list >> >> > [email protected] >> >> > http://lists.xwiki.org/mailman/listinfo/devs >> >> _______________________________________________ >> >> devs mailing list >> >> [email protected] >> >> http://lists.xwiki.org/mailman/listinfo/devs >> >> >> > >> > >> > >> > -- >> > Denis Gervalle >> > SOFTEC sa - CEO >> > eGuilde sarl - CTO >> > _______________________________________________ >> > devs mailing list >> > [email protected] >> > http://lists.xwiki.org/mailman/listinfo/devs >> >> >> >> -- >> Jérôme Velociter >> Winesquare >> http://www.winesquare.net/ >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs >> > > > > -- > Denis Gervalle > SOFTEC sa - CEO > eGuilde sarl - CTO > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs -- Jérôme Velociter Winesquare http://www.winesquare.net/ _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

