Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove usages of deprecated Jackson APIs #123

Merged
merged 9 commits into from
Jun 26, 2019

Conversation

braveulysses
Copy link
Collaborator

What does this implement/fix? Explain your changes.

This set of changes removes the SCIM 2 SDK's usages of deprecated Jackson APIs, particularly dateTime data type handling that relies on Jackson's ISO8601-related classes. The SCIM 2 dateTime type follows the xsd:dateType format specified by the W3C XML Schema standard, so all SCIM 2 dateTime handling is now delegated to javax.xml.bind.DatatypeConverter via a new DateTimeUtils
class. Because javax.xml is not bundled with recent versions of the JDK, javax.xml.bind:jaxb-api was added to scim2-sdk-common as a dependency.

The ScimDateFormat class was updated with alternatives to using it now that it is deprecated. This class will be removed in the future — probably when a future Jackson upgrade removes its superclass.

This also includes changes to ensure that the project builds without errors on Java 11.

Does this close any currently open issues?

No, but this is related to issue #120.

Jackson's ISO8601Utils and ISO8601DateFormat classes were deprecated in
version Jackson 2.9. To ensure that future Jackson upgrades go smoothly,
all usages of these classes were removed from the SCIM 2 SDK (with the
exception of the ScimDateFormat class, which will be removed in a separate
commit). The SCIM 2 dateTime type follows the xsd:dateType format specified
by the W3C XML Schema standard, so all SCIM 2 dateTime handling is now
delegated to javax.xml.bind.DatatypeConverter via the new DateTimeUtils
class.
…AP_VALUES

The existing use of setSerializationInclusion(Include.NON_NULL) appears
to accomplish the same goal of not serializing null map values. Added
a unit test to confirm this.
* Provide explicit jaxb-api dependency, as this is no longer provided
  with the JRE/JDK.
* Update the Jersey version to 2.28. (Note that Jersey components are
  only used by the unit tests.)
* Update the maven-javadoc-plugin version to 3.1.0. This rectifies an
  error reported by the plugin: "Error fetching link: .../package-list"
@braveulysses braveulysses changed the title Topic/issue120 deprecated jackson apis Remove usages of deprecated Jackson APIs Jun 25, 2019
Xenial's Maven was unable to download dependencies, so trying Trusty.
This is an attempt to handle a failure in ETagTestCase that only occurs
in the Travis CI environment.
@braveulysses braveulysses merged commit 10181a3 into master Jun 26, 2019
@braveulysses braveulysses deleted the topic/issue120_deprecated-jackson-apis branch June 26, 2019 23:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant