incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Curtiss Howard (JIRA)" <>
Subject [jira] [Commented] (CB-1530) Alleviate PluginManager.exec() performance concerns
Date Mon, 24 Sep 2012 22:18:08 GMT


Curtiss Howard commented on CB-1530:

Hi Andrew, thanks for the quick response.

As far as using another JSON library is concerned, we're essentially forced to do so because
one particular plugin method can take an enormous argument payload and org.json just isn't
cut out for that.  We're using Jackson so we can stream everything in.  But I think for 99%
of cases something like org.json is fine since argument arrays tend to be small and simple,
hence why the patch is structured the way it is (I don't want to burden users with having
to parse the JSON themselves unless they have to).
> Alleviate PluginManager.exec() performance concerns
> ---------------------------------------------------
>                 Key: CB-1530
>                 URL:
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: Android
>    Affects Versions: Master
>         Environment: Android
>            Reporter: Curtiss Howard
>            Assignee: Andrew Grieve
>             Fix For: Master
> IPlugin and PluginManager use org.json.JSONArray for passing in plugin arguments. When
a large JSON object is provided as an argument, performance is very poor as org.json is an
eager, in-memory parser. Users should have the ability to bypass PluginManager's automatic
JSONArray parsing and instead receive the raw JSON argument string so that a faster JSON library
can be leveraged.
> The proposed patch includes an IRawPlugin interface containing an exec() method that
takes the raw argument string instead of the pre-parsed one. Any plugin that wants to take
advantage of this behavior needs to implement IRawPlugin, so current plugins aren't affected.
> There is a pull request with the proposed change at

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message