Releases: bazaarvoice/jolt
Bunch o Fixes
- ArrayOrderObliviousDiffy works better now
- "@" Transpose / Lookup logic now works from inside an Array reference
- Shiftr Array logic handles negative numbers better
- Shfrt can now pass input "null"s thru to the output
Two new features and one backwards incompatible name change (typo fix)
The "remove" transform can now fully handle arrays.
- As top level inputs
- Recursing thru Arrays
- Removing specific array indices
Shift specs can now have "." in the output path if escaped
So that you can have output paths like "ref.local" that do not have that be nested maps.
Example: RHS Shiftr values and how they would manifest in the ouput tree
- "data.ref.local" --> { "data" : { "ref" : { "local" : X } } }
- "data.ref.local" --> { "data" : { "ref.local" : X } }
Additional Fixes
- Performance fix to ArrayOrderObliviousDiffy
- Updated dependency versions
- Fixed issue with Travis CI
Backwards incompatible Change
The class ChainrFactory was in the wrong package; "bazarvoice" instead of "bazaarvoice".
If you were referencing that class, you will need to fix you imports.
Bug fixed in Shiftr
You should be able to reuse Chainr instances to perform multiple transforms. There was a bug in the "shift" operation where "per run" information was leaking into the reusable spec.
Updates : Java 1.7 and Dependencies
Compiles with Java 1.7
Updated Dependencies
- Jackson 2.2.3 -> 2.5.0
- commons-lang 2.6 -> commons-lang3 3.3.2
- Guava 16.0.1 -> 18.0
- TestNG 6.8.7 -> 6.8.21
- ArgParse 0.4.2 -> 0.4.4
Code Cleanup based on Intellij inspections
Major new features in Shiftr
Ability to transpose data / do rudimentary filtering -> new '@' logic
- long standing issue with Shiftr.
Ability to "hardcode" a value in the spec file to get placed in the output -> new '#' logic
- created to handle a use-case of processing a Boolean value.
More Utilities and Bug Fix
- Fixed Bug in Removr/StarDoublePathElement
- StarDoublePathElement was throwing StringOutOfBoundExceptions when the spec is of format abc-$ and the key to match was abc-1.
- Added more boundary condition test cases.
- Added more utility functions in StringUtils and JsonUtils
- Bumped the Guava version to 16.0.1
- Fixed minor typos.
JsonUtils refactoring, bug fix, and Fancy Jackson Annotations
New JsonUtil interface "extracted" from existing JsonUtils class static methods
- Interface and Impl will allow clients to specify their own pre-configured ObjectMapper
- JsonUtils static methods refactored to use a "stock" JsonUtil instance.
- Two JsonUtils methods deprecated
Fixed bug in JsonUtils
- The problem was that JsonUtils static methods were using Object.class.getResourceAsStream() which can behave oddly.
- Now that the static methods in JsonUtils are backed by a real instance of JsonUtil, that JsonUtil can use itself to load resources.
Fancy Jackson Annotations
- Unit test of new JsonUtilImpl ability to take in a preconfigured Jackson Module
- Unit test demonstrates recursive polymorphic JSON deserialization in Jackson 2.2
Bumped Dependency Versions
- Jackson, Guava, TestNg, ArgParse versions.
Wildcard logic in Removr
The * wildcard can now be used in Removr specs.
The reason for this is, we needed to remove extraneous keys before a Shiftr operation. The extraneous keys were being matched and pass thru to the output by Shiftr wildcards.
Additionally, there was a bug fix in Sortr, when sorting input arrays that are "unmodifiable".
Command Line Tools!
Command Line
- Diff Json
- Sort Json
- Transform Json
New Maven "convenience" artifact
- New "jolt-complete" artifact combines "jolt-core" and "json-utils" artifacts and provides a ChainrFactory that can create Chainr instances from the classpath, file paths, and Java File objects.
Dead Version - Ignore
Pom build issues...