[ 
https://issues.apache.org/jira/browse/CB-1530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13462197#comment-13462197
 ] 

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: https://issues.apache.org/jira/browse/CB-1530
>             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 
> https://github.com/apache/incubator-cordova-android/pull/49

--
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: http://www.atlassian.com/software/jira

Reply via email to