Releases: google/gson
Gson 2.10.1
This is technically a minor release rather than a patch release because there is one small API change: a new JsonObject.isEmpty()
method.
What's Changed: User-Visible Changes
- Added JsonObject method isEmpty() by @dhoard in #2233
- Fix non-threadsafe creation of adapter for type with cyclic dependency by @Marcono1234 in #1832
- Remove EOFException special casing of JsonStreamParser.next() by @Marcono1234 in #2281
- Improve exception message for duplicate field names by @Marcono1234 in #2251
- Fix the javadoc of JsonDeserializer.deserialize() by @MaicolAntali in #2243
- Bump os-maven-plugin from 1.7.0 to 1.7.1 by @dependabot in #2235
- Bump jackson-databind from 2.13.4.2 to 2.14.0 by @dependabot in #2234
- Bump maven-release-plugin from 3.0.0-M6 to 3.0.0-M7 by @dependabot in #2232
- Bump japicmp-maven-plugin from 0.16.0 to 0.17.1 by @dependabot in #2238
- Bump jackson-databind from 2.14.0 to 2.14.1 by @dependabot in #2241
- Bump bnd-maven-plugin from 6.3.1 to 6.4.0 by @dependabot in #2245
Site Documentation and Maintenance Changes (these were already visible)
- Add troubleshooting guide by @Marcono1234 in #2285
- Replace custom user guide header anchors by @Marcono1234 in #2289
- Improve variable names in user guide by @Marcono1234 in #2290
- Add 2.10 changes to CHANGELOG; minor release follow-ups by @Marcono1234 in #2229
- Mention in CHANGELOG that GitHub Releases are used in the future by @Marcono1234 in #2230
- GitHub Workflows security hardening by @sashashura in #2274
Other Changes
- Making consistent prefixs in PerformanceTest by @CirQ in #1760
- Adjust version numbers and a test to conform to the SemVer spec. by @eamonnmcmanus in #2237
- Remove covered condition in JsonNull.equals() by @MaicolAntali in #2271
- Remove the
final
keyword fromprivate
method by @MaicolAntali in #2276 - Code cleanup by @MaicolAntali in #2282
- Unnecessary unboxing at JsonPrimitive.getAsBoolean() by @MaicolAntali in #2277
- Rewrite the
testParsingDatesFormattedWithSystemLocale()
, Fix #2199 by @MaicolAntali in #2287 - Port tests from JUnit 3 to JUnit 4 by @MaicolAntali in #2294
New Contributors (thanks!)
- @CirQ made their first contribution in #1760
- @dhoard made their first contribution in #2233
- @MaicolAntali made their first contribution in #2243
- @sashashura made their first contribution in #2274
Full Changelog: gson-parent-2.10...gson-parent-2.10.1
Gson 2.10
Most important changes
-
Support for serializing and deserializing Java records, on Java ≥ 16. (#2201)
-
Add
JsonArray.asList
andJsonObject.asMap
view methods (#2225) -
Fix
TypeAdapterRuntimeTypeWrapper
not detecting reflectiveTreeTypeAdapter
andFutureTypeAdapter
(#1787) -
Improve
JsonReader.skipValue()
(#2062) -
Perform numeric conversion for primitive numeric type adapters (#2158)
-
Add
Gson.fromJson(..., TypeToken)
overloads (#1700) -
Fix changes to
GsonBuilder
affecting existingGson
instances (#1815) -
Make
JsonElement
conversion methods more consistent and fix javadoc (#2178) -
Throw
UnsupportedOperationException
whenJsonWriter.jsonValue
is not supported (#1651) -
Disallow
JsonObject
Entry.setValue(null)
(#2167) -
Fix
TypeAdapter.toJson
throwing AssertionError for custom IOException (#2172) -
Convert null to JsonNull for
JsonArray.set
(#2170) -
Fixed nullSafe usage. (#1555)
-
Validate
TypeToken.getParameterized
arguments (#2166) -
Fix #1702: Gson.toJson creates CharSequence which does not implement toString (#1703)
-
Prefer existing adapter for concurrent
Gson.getAdapter
calls (#2153) -
Improve
ArrayTypeAdapter
forObject[]
(#1716) -
Improve
AppendableWriter
performance (#1706)
List of all changes
- Improve AppendableWriter performance by @Marcono1234 in #1706
- Improve ArrayTypeAdapter for Object[] by @Marcono1234 in #1716
- Prefer existing adapter for concurrent
Gson.getAdapter
calls by @Marcono1234 in #2153 - Fix #1702: Gson.toJson creates CharSequence which does not implement toString by @Marcono1234 in #1703
- Deprecate JsonElement constructor by @Marcono1234 in #1761
- Validate
TypeToken.getParameterized
arguments by @Marcono1234 in #2166 - Fixed nullSafe usage. by @bufistov in #1555
- Convert null to JsonNull for
JsonArray.set
by @Marcono1234 in #2170 - Clarify that
GsonBuilder.setExclusionStrategies
does not replace existing ones by @Marcono1234 in #2168 - Fix typo by @JamesZBL in #1246
- Remove not needed .gitattributes file by @Marcono1234 in #1862
- Improve InternationalizationTest by @Marcono1234 in #1705
- Fix JsonWriter documentation regarding top-level value by @Marcono1234 in #1766
- Fix JsonTreeReader throwing wrong exception type for non-finite doubles by @Marcono1234 in #1782
- Clarify doc about non-finite numbers for non-lenient JsonReader by @Marcono1234 in #1723
- Fix
TypeAdapter.toJson
throwing AssertionError for custom IOException by @Marcono1234 in #2172 - Add test for JsonArray.isEmpty() by @LorenzNickel in #2173
- Disallow
JsonObject
Entry.setValue(null)
by @Marcono1234 in #2167 - Improve GsonTest.testGetAdapter_Concurrency by @Marcono1234 in #2177
- Add null checks for GsonBuilder methods by @Marcono1234 in #2179
- Throw UnsupportedOperationException when JsonWriter.jsonValue is not supported by @Marcono1234 in #1651
- Make JsonElement conversion methods more consistent and fix javadoc by @Marcono1234 in #2178
- Bump maven-javadoc-plugin from 3.4.0 to 3.4.1 by @dependabot in #2175
- Add tests checking GsonBuilder not affecting existing Gson instances by @Marcono1234 in #1815
- Fix #1697: Mention that GsonBuilder.registerTypeAdapter makes (de-)serializers null-safe by @Marcono1234 in #1704
- Replace
$Gson$Preconditions.checkNotNull
withObjects.requireNonNull
by @Marcono1234 in #2180 - Verify that JsonTreeReader and JsonTreeWriter override all methods by @Marcono1234 in #2181
- Fail Maven build on compiler warnings; remove some warning suppressions by @Marcono1234 in #2183
- Add GitHub workflow for checking API compatibility by @Marcono1234 in #2182
- Bump japicmp-maven-plugin from 0.15.7 to 0.16.0 by @dependabot in #2187
- Bump jackson-databind from 2.13.3 to 2.13.4 by @dependabot in #2191
- Remove usage of oss-parent Maven parent and update
ReleaseProcess.md
by @Marcono1234 in #2159 - Improve documentation by @Marcono1234 in #2193
- updated JsonDeserializer example by @deeptimarrivada1 in #2192
- Add Gson.fromJson(..., TypeToken) overloads by @Marcono1234 in #1700
- Bump maven-jar-plugin from 3.2.2 to 3.3.0 by @dependabot in #2195
- Build on JDK 17 as well as 11. by @eamonnmcmanus in #2198
- Fix incorrect HTML headings in Javadoc by @Marcono1234 in #2200
- Add a currently-failing test for Java records and
@Ignore
it. by @eamonnmcmanus in #2203 - Follow-up for record test build changes by @Marcono1234 in #2207
- Disable Maven transfer progress for GitHub workflows by @Marcono1234 in #2206
- Only create one UnsafeAllocator instance by @kb-1000 in #2196
- Mention in User Guide alternative for Gson versions without fromJson(..., TypeToken) by @Marcono1234 in #2209
- Fix typo in GsonBuilder Javadoc by @BillyGalbreath in #2213
- Add Javadoc
@since
tags for previously added elements by @Marcono1234 in #2211 - Improve versioning support documentation and validate version by @Marcono1234 in #2214
- Perform numeric conversion for primitive numeric type adapters by @Marcono1234 in #2158
- Clarify in documentation that Gson might cache strategy results by @Marcono1234 in #2215
- Improve
JsonReader.skipValue()
by @Marcono1234 in #2062 - Fix TypeAdapterRuntimeTypeWrapper not detecting reflective TreeTypeAdapter and FutureTypeAdapter by @Marcono1234 in #1787
- Support Java Records when present in JVM. by @staale in #2201
- Small adjustments to the new record code. by @eamonnmcmanus in #2219
- Bump jackson-databind from 2.13.4 to 2.13.4.1 by @dependabot in #2222
- Bump jackson-databind from 2.13.4.1 to 2.13.4.2 by @dependabot in #2223
- Add
JsonArray.asList
andJsonObject.asMap
view methods by @Marcono1234 in #2225 - Adjust Record adapter and extend test coverage by @Marcono1234 in #2224
- Small tweaks to fix Error Prone warnings. by @eamonnmcmanus in #2227
- Automatically replace version references on
release:prepare
by @Marcono1234 in #2212 - Revise the version regex in
GsonVersionDiagnosticsTest
. by @eamonnmcmanus in #2228
New Contributors
- @bufistov made their first contribution in #1555
- @JamesZBL made their first contribution in #1246
- @xtay2 made their first contribution in #2169
- @deeptimarrivada1 made their first contribution in #2192
- @kb-1000 made their first contribution in #2196
- @BillyGalbreath made their first contribution in #2213
- @staale made their first contribution in #2201
Full Changelog: gson-parent-2.9.1...gson-parent-2.10
Gson 2.9.1
- Make
Object
andJsonElement
deserialization iterative rather than recursive (#1912) - Added parsing support for enum that has overridden toString() method (#1950)
- Removed support for building Gson with Gradle (#2081)
- Removed obsolete
codegen
hierarchy (#2099) - Add support for reflection access filter (#1905)
- Improve
TypeToken
creation validation (#2072) - Add explicit support for
float
inJsonWriter
(#2130, #2132) - Fail when parsing invalid local date (#2134)
Also many small improvements to javadoc.
Gson 2.9.0
The minimum supported Java version changes from 6 to 7.
- Change target Java version to 7 (#2043)
- Put
module-info.class
into Multi-Release JAR folder (#2013) - Improve error message when abstract class cannot be constructed (#1814)
- Support EnumMap deserialization (#2071)
- Add LazilyParsedNumber default adapter (#2060)
- Fix JsonReader.hasNext() returning true at end of document (#2061)
- Remove Gradle build support. Build script was outdated and not actively maintained anymore (#2063)
- Add
GsonBuilder.disableJdkUnsafe()
(#1904) - Add
UPPER_CASE_WITH_UNDERSCORES
in FieldNamingPolicy (#2024) - Fix failing to serialize Collection or Map with inaccessible constructor (#1902)
- Improve TreeTypeAdapter thread-safety (#1976)
- Fix
Gson.newJsonWriter
ignoring lenient and HTML-safe setting (#1989) - Delete unused LinkedHashTreeMap (#1992)
- Make default adapters stricter; improve exception messages (#2000)
- Fix
FieldNamingPolicy.upperCaseFirstLetter
uppercasing non-letter (#2004)
Thanks to our contributors, especially @Marcono1234!
Gson 2.8.9
- Make OSGi bundle's dependency on
sun.misc
optional (#1993). - Deprecate
Gson.excluder()
exposing internalExcluder
class (#1986). - Prevent Java deserialization of internal classes (#1991).
- Improve number strategy implementation (#1987).
- Fix LongSerializationPolicy null handling being inconsistent with Gson (#1990).
- Support arbitrary Number implementation for Object and Number deserialization (#1290).
- Bump proguard-maven-plugin from 2.4.0 to 2.5.1 (#1980).
- Don't exclude static local classes (#1969).
- Fix
RuntimeTypeAdapterFactory
depending on internalStreams
class (#1959). - Improve Maven build (#1964).
- Make dependency on
java.sql
optional (#1707).