* Formatting follow-up
- Adds formatting commits to .git-blame-ignore-revs so that they don't
distract during Git blame
- Restores hard line breaks in Troubleshooting.md using `\` instead of
trailing spaces
- Changes formatting of some string literals and comments
- Fixes accidental Javadoc and comment issues introduced by manual changes
of formatting commit
- Fixes license header in $Gson$Types.java erroneously being a Javadoc
comment and being reformatted
- Slightly changes `JsonReader` `getPath` and `getPreviousPath` documentation
to help Javadoc detect first sentence as summary
* Remove `spotless:off` markers
* Add empty line before comment
* Check format for .github YAML files
* Add integration test for GraalVM Native Image
* Enable 'quickBuild' mode
Seems to improve build speed, and at least for the previous issue with
`RecordComponent` still causes test failures (as expected) if the fix
is reverted.
* Add code shrinking tools integration test
* Keep no-args constructor of classes usable with JsonAdapter
* Add library ProGuard rules for Gson
They are automatically applied for all users of Gson, see
https://developer.android.com/build/shrink-code#configuration-files
* Skip japicmp-maven-plugin for shrinker-test
* Add more tests for JsonAdapter, add tests for generic classes
* Extend default constructor test
* Add Troubleshooting Guide entry for TypeToken
* Adds `@SuppressWarnings("NarrowingCompoundAssignment")`
* Adds `@SuppressWarnings("TypeParameterUnusedInFormals")`
* Adds `@SuppressWarnings("JavaUtilDate")`
* Adds a limit to `String.split()`
* Add `error_prone_annotations` to the `pom.xml`
* Adds `@InlineMe(...)` to deprecated methods
* Adds `@SuppressWarnings("ImmutableEnumChecker")`
* Adds `@SuppressWarnings("ModifiedButNotUsed")`
* Adds `@SuppressWarnings("MixedMutabilityReturnType")`
* Removes an unused import
* Adds `requires` to `module-info.java`
* Adds ErrorProne `link` into `pom.xml`
* Remove unused imports
Removed from:
- ParseBenchmark
* Adds `@SuppressWarnings("EqualsGetClass")`
* Excludes from `proto` just the generated code.
Replaces `.*proto.*` with `.*/generated-test-sources/protobuf/.*` in such way will be excluded just the generated code and not the whole `proto` directory
* Removes an unused variable
Removes the `descriptor` variable because is unused.
* Fixes the `BadImport` warn into `ProtosWithAnnotationsTest`
* Fixes the `BadImport` warns into `ProtosWithAnnotationsTest`
* Enables ErrorProne in `gson/src/test.*`
Removes the `gson/src/test.*` path from the `-XepExcludedPaths` parameter of the ErrorProne plugin
* Fixes `UnusedVariable` warns
This commit fix all `UnusedVariable` warns given by ErrorProne in the `gson/src/test.*` path.
Some field is annotated with `@Keep` that means is used by reflection.
In some other case the record is annotated with `@SuppressWarnings("unused")`
* Fixes `JavaUtilDate` warns
This commit fix all `JavaUtilDate` warns given by ErrorProne in the `gson/src/test.*` path.
Classes/Methods are annotated with `@SuppressWarnings("JavaUtilDate")` because it's not possible use differente Date API.
* Fixes `EqualsGetClass` warns
This commit fix all `EqualsGetClass` warns given by ErrorProne in the `gson/src/test.*` path.
I have rewrite the `equals()` methods to use `instanceof`
* Replaces pattern matching for instanceof with casts
* Fixes `JdkObsolete` warns
This commit fix all `JdkObsolete` warns given by ErrorProne in the `gson/src/test.*` path.
In some cases I have replaced the obsolete JDK classes with the newest alternatives. In other cases, I have added the `@SuppressWarnings("JdkObsolete")`
* Fixes `ClassCanBeStatic` warns
This commit fix all `ClassCanBeStatic` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `static` keyword, or I have added `@SuppressWarnings("ClassCanBeStatic")`
* Fixes `UndefinedEquals` warns
This commit fix all `UndefinedEquals` warns given by ErrorProne in the `gson/src/test.*` path.
I have added `@SuppressWarnings("UndefinedEquals")` or fixed the asserts
Note: In this commit I have also renamed a test from `testRawCollectionDeserializationNotAlllowed` to `testRawCollectionDeserializationNotAllowed`
* Fixes `GetClassOnEnum` warns
This commit fix all `GetClassOnEnum` warns given by ErrorProne in the `gson/src/test.*` path.
I have replaced the `.getClass()` with `.getDeclaringClass()`
* Fixes `ImmutableEnumChecker` warns
This commit fix all `ImmutableEnumChecker` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `final` keyword, or I have added the `@SuppressWarnings("ImmutableEnumChecker")` annotation
* Fixes `StaticAssignmentOfThrowable` warns
This commit fix all `StaticAssignmentOfThrowable` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `AssertionFailureIgnored` warns
This commit fix all `AssertionFailureIgnored` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `@SuppressWarnings("AssertionFailureIgnored")` annotation
* Fixes `ModifiedButNotUsed` warns
This commit fix all `ModifiedButNotUsed` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `@SuppressWarnings("ModifiedButNotUsed")` annotation
* Fixes `MissingSummary` warns
This commit fix all `MissingSummary` warns given by ErrorProne in the `gson/src/test.*` path.
I have remove the Javadoc `@author`
* Fixes `FloatingPointLiteralPrecision` warns
This commit fix all `FloatingPointLiteralPrecision` warns given by ErrorProne in the `gson/src/test.*` path.
I have added the `@SuppressWarnings("FloatingPointLiteralPrecision")` annotation
* Fixes `StringSplitter` warns
This commit fix all `StringSplitter` warns given by ErrorProne in the `gson/src/test.*` path.
I have replaced the `String.split(...)` with `Splitter`
* Fixes `EmptyCatch` warns
This commit fix all `EmptyCatch` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `UnicodeEscape` warns
This commit fix all `UnicodeEscape` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `EmptyBlockTag` warns
This commit fix all `EmptyBlockTag` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `LongFloatConversion` warns
This commit fix all `LongFloatConversion` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `LongDoubleConversion` warns
This commit fix all `LongDoubleConversion` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `TruthAssertExpected` warns
This commit fix all `TruthAssertExpected` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `UnusedMethod` warns
This commit fix all `UnusedMethod` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `UnusedTypeParameter` warns
This commit fix all `UnusedTypeParameter` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `CatchFail` warns
This commit fix all `CatchFail` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `MathAbsoluteNegative` warns
This commit fix all `MathAbsoluteNegative` warns given by ErrorProne in the `gson/src/test.*` path.
* Fixes `LoopOverCharArray` warns
This commit fix all `LoopOverCharArray` warns given by ErrorProne in the `gson/src/test.*` path.
`toCharArray` allocates a new array, using `charAt` is more efficient
* Fixes `HidingField` warns
This commit fix all `HidingField` warns given by ErrorProne in the `gson/src/test.*` path.
* Implements code review feedback
* Implements code review feedback
This commit implements some other code review feedback
* Enable ErrorProne in `extra`
Thi commit removes the `.*extras/src/test.*` path from the `-XepExcludedPaths` parameter of ErrorProne.
* Fix the `JavaUtilDate` warns
This commit fix all `JavaUtilDate` warns given by ErrorProne in the `extras/src/test.*` path.
* Implements code review feedback
* Removes redundant new-line
* Implements code review feedback
* Adds `JDK11` to run test with `--release 11`
* Revert "Adds `JDK11` to run test with `--release 11`"
This reverts commit a7cca386098ae847a10a31c09c3ab9b11eee5920.
* Fix `OperatorPrecedence` warn in `JsonWriter#close`
* Fix `ReferenceEquality` warn in `LinkedTreeMap#replaceInParent`
* Fix `UnnecessaryParentheses` warn in `LinkedTreeMap#replaceInParent`
* Fix `ReferenceEquality` warn in `LinkedTreeMap#hasNext`
* Fix `ReferenceEquality` warn in `LinkedTreeMap#nextNode`
* Adds `error_prone_annotations` to the `pom.xml` of `gson`
* Fix `InlineMeSuggester` warns in `JsonParser`
* Fix `UnnecessaryParentheses` warns in `ConstructorConstructor#newDefaultImplementationConstructor`
* Fix `ThreadLocalUsage` warn in `Gson`
* Fix `JdkObsolete` warn in `GsonBuilder`
* Fix `ReferenceEquality` warn in `LazilyParsedNumber#equals`
* Fix `OperatorPrecedence` warn in `TreeTypeAdapter#create`
* Fix `OperatorPrecedence` warn in `ArrayTypeAdapter`
* Fix `UnnecessaryParentheses` warn in `TypeAdapters`
* Adds `-XepExcludedPaths` flag to ErrorProne plugin to exclude tests and proto path
* Fix `ClassNewInstance` warn in `InterceptorAdapter`
* Fix `ThreadLocalUsage` warn in `GraphAdapterBuilder`
* Fix `JdkObsolete` warn in `GraphAdapterBuilder`
* Revert "Adds `error_prone_annotations` to the `pom.xml` of `gson`"
This reverts commit 14af14dfa23b46a54f4855a70ccf2b0a2cdc3e3f.
* Revert "Fix `InlineMeSuggester` warns in `JsonParser`"
This reverts commit 095bfd517e06510e4cc9cc6b1aac58ad9bf3038a.
* Adds `@SuppressWarnings("ThreadLocalUsage")`
* Fix `OperatorPrecedence` in `JsonWriter`
* Revert "Fix `ReferenceEquality` warn in `LinkedTreeMap#nextNode`"
This reverts commit 387746c7f7e3d0943c8f80501f5d9c3710f4862e.
* Adds `@SuppressWarnings("ReferenceEquality")`
* Adds `guava-testlib` to the gson `pom.xml`
* `@SuppressWarnings("TruthSelfEquals")` removed to use `EqualsTester()`
* Add the Truth dependency
* Port Junit test to Truth in the package `com.google.gson` of the module `gson`
* Replace the `assertThat(e.getMessage()).isEqualTo(...)"` with `assertThat(e).hasMessageThat().isEqualTo(...)`
* Minor fixes
* Adjust version numbers and a test to conform to the SemVer spec.
Gson releases since 2.8.0 have been following this spec. We mistakenly released 2.10
without the .0 patch version, and adjusted `GsonVersionDiagnosticsTest` so it would
accept that, as well as the two-digit `10`. Here we make the test no longer accept
versions without a patch number, while still accepting two-digit minor versions of course.
We also change the snapshot version to 2.11.0-SNAPSHOT instead of 2.11-SNAPSHOT.
* Add a currently-failing test for Java records and `@Ignore` it.
Also do the Maven gymastics required to ensure that this test only runs on Java
versions ≥17. (It would also work on Java 16, but 17 is all we have in the CI.)
Fix some compilation problems I saw when running locally, which for some reason
don't show up in the CI.
* Suppress some new lint options that trigger `-Werror`.
We may fix these later. (Every test will need an explicit constructor!)
* Select Java version with maven.compiler.release and maven.compiler.testRelease.
Use `assumeNotNull` rather than an if-statement.
* Specify <release>11</release> for javadoc.
* Restore the @see for AccessibleObject.
The oss-parent configuration has been applied manually to the root pom.xml,
except that now newer plugin versions are used for source and javadoc JAR
creation, and for GPG signing.
This required some reordering of the plugins for the gson module to make
sure they are executed in the correct order. Otherwise this would cause
failures for javadoc:jar.