[ https://issues.apache.org/jira/browse/TAP5-2575?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15899471#comment-15899471 ]
Bob Harner commented on TAP5-2575: ---------------------------------- Slightly concerned that we're adding another major dependency, replacing what was some internal classes that couldn't conflict with user code. > Replace json.org-licensed classes with Apache-compatible versions > ----------------------------------------------------------------- > > Key: TAP5-2575 > URL: https://issues.apache.org/jira/browse/TAP5-2575 > Project: Tapestry 5 > Issue Type: Task > Components: tapestry-json > Affects Versions: 5.3.8, 5.4.1 > Reporter: Bob Harner > Attachments: 0001-TAP5-2575-base-tapestry-json-on-Jackson.patch > > > Because of [license issues|https://www.apache.org/legal/resolved#json], we > need to replace all json.org-licensed classes with alternative classes having > an Apache-approved license. Apache legal has imposed a deadline of April 30, > 2017. > Tapestry apparently includes 3 classes that are, starting in version 5.2, > "repackaged, improved (and tested) version of code originally from json.org." > These 3 all include D. Crockford's "The Software shall be used for Good, not > Evil" statement in the JSON license at the top. > The 3 classes are: > * JSONArray.java > * JSONTokener.java > * JSONObject.java > Other Apache projects (including Wicket) have successfully switched to > https://github.com/tdunning/open-json, which contains versions of the above 3 > classes that are purported to be mostly compatible with the current versions > from json.org. However, there have been changes to Tapestry's own version > since the original copy was made (May 2008 or possibly earlier), and those > changes would need to be re-applied. Some examples: > * TAP5-1153: When in development mode, Tapestry should pretty-print JSON > content > * TAP5-2209 Make JSONObject and JSONArray implement Serializable > * Make JSONArray.from() not care about what values are stored in Iterable > * Add a new constructor to JSONObject to make it easier to initalize a > JSONObjects key/value pairs (if all strings) > * Change generics signature for JSONArray.putAll() and JSONObject.putAll() > * TAP5-2098: Maintain JSONObject keys & values in the order they were added > * Add a copy() method to JSONObject > * Add JSONArray.toList() > * Add JSONArray.putAll() > * Added remove(int index) to JSONArray > * TAP5-1970: Make it easier to create JSONObject and JSONArray instances > * Add JSONObject.toMap() > * Add JSONObject.in(String) to create (if needed) and return a nested > JSONObject > There are 116 unit tests for the JSON module. A starting point would be to > overlay the open-json classes and see what tests fail. -- This message was sent by Atlassian JIRA (v6.3.15#6346)