Skip to content

Presentation Jackson 2.0

cowtowncoder edited this page Aug 8, 2012 · 9 revisions

Jackson 2.0 Feature Overview

Jackson 2.0 is the first Major release after official 1.x versions. As the major version bump indicates, 2.0 is the first official release that is NOT fully backwards compatible.

This presentation gives an overview of changes that occured between versions 1.9 and 2.0.

Background: why bump major version?

Although progression from 1.9 to 2.0 seems natural from "increasing numbers" perspective, we did actually seriously consider going to 1.10 and possibly more versions, with the usual rules of backwards compatibility.

But after so many minor releases, Jackson had accumulated some technical debt, in form of deprecated methods, as well as many non-intuitive naming choices and non-optimal packaging decisions. Further, external developments like awesomeness of GitHub and steady improvement of Maven build system were suggesting that we might want to improve building and release management aspects as well; changes that would cause some backwards-compatibility issues of their own.

None of the issues alone would have been sufficient to justify break from expected compatibility (in our opinion); but taken as whole, it seemed like time would be ripe to make a clean break, to pay down most of the technical debt.

The Cleanup ("project Spring cleaning")

The rough summary of clean-up changes that started Jackson 2.0 development is:

  1. Moving code, projects to GitHub
  1. Change build from Ant to Maven
  2. Remove ALL methods, types, annotations that were deprecated in 1.9!
  3. Rename/move
  • Rename Java packages, mostly to allow 1.x and 2.0 to co-exist; sometimes to make more intuitive
  • Rename a small number of misnamed classes (for example DeserializationConfig.Feature as DeserializationFeature)
  • Move couple of classes to clean up package structure (split "too big" packages)
Clone this wiki locally