Java 8 requirement for Jackson 2.13?

798 views
Skip to first unread message

Tatu Saloranta

unread,
Dec 5, 2020, 4:06:49 PM12/5/20
to jacks...@googlegroups.com
Ok so something to consider for eventual Jackson 2.13 (as per my
earlier note, I don't plan on starting that until January and after
2.12.1 is done): should we finally increase JDK requirement for
`jackson-databind`?
I will start this thread to give everyone a chance to chime in over
next month or so: no decision will be made until January 2021.

I propose that Jackson 2.13 would require Java 8 for components other
than annotations and streaming API (which do not really benefit much).
This would have main benefits of:

1. Allow bundling of Java 8 datatypes (Optional), parameter name
access (for auto-detecting Creators) -- similar to Jackson 3.x
2. Allow API improvements in 2.x to get yet closer to 3.0
compatibility (could backport couple of missing closure-based
configuration methods)
3. Overall API improvements for configuration: passing handlers as
closures is useful

In addition, version 2.12 would become Long-Term Support version so
there should be updates beyond security patches for at least 2021,
maybe longer if there is demand (and conversely 2.10 and 2.11 would
have more limited timespan).

I assume that most users are already on Java 8 but I think I would
like to hear from those who are not; and whether there are specific
concerns for, say, Android users.

-+ Tatu +-

drewgs...@gmail.com

unread,
Jan 2, 2021, 2:07:00 PM1/2/21
to jackson-dev
My vote is to absolutely move up to Java 8 as the minimum.

Caveat: I don't do Android or anything that is shackled to old Java versions.

-Drew

Michael

unread,
Jan 2, 2021, 7:44:50 PM1/2/21
to jacks...@googlegroups.com
+1 on Java 8 as minimum. Also limited knowledge of Android but seems to me that Google itself quickly drops support for older Android versions. As another example, Chrome stops working on older Macs, etc.

Further, I would expect most shops have long switched over to Java 8 already and are working to Java 11+ and so on. Or they should be - Java 7 is no longer supported so no security patches etc. Amazon (Corretto) will support Java 8 to 2025. (Talk about LTS.)

Certainly, there apps that haven't made the switch, but (1) it is open-source (2) another marketing point for a Tidelift subscription?




Written on a glass keyboard

--
You received this message because you are subscribed to the Google Groups "jackson-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jackson-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jackson-dev/afba2eea-6dad-42fb-acfc-83c9cfd55e4fn%40googlegroups.com.


--
Written on a glass keyboard.

Tatu Saloranta

unread,
Jan 8, 2021, 7:48:17 PM1/8/21
to jacks...@googlegroups.com
On Sat, Jan 2, 2021 at 4:44 PM Michael <mich...@gmail.com> wrote:
+1 on Java 8 as minimum. Also limited knowledge of Android but seems to me that Google itself quickly drops support for older Android versions. As another example, Chrome stops working on older Macs, etc.

Further, I would expect most shops have long switched over to Java 8 already and are working to Java 11+ and so on. Or they should be - Java 7 is no longer supported so no security patches etc. Amazon (Corretto) will support Java 8 to 2025. (Talk about LTS.)

Certainly, there apps that haven't made the switch, but (1) it is open-source (2) another marketing point for a Tidelift subscription

Yes, Java 8 has been the baseline for any new development for quite a while. And since I keep separate branches for all minor versions anyway, it is possible to keep 2.12 branch itself open for quite a while if necessary.
Mostly I just wanted to see if anyone actively involved with the project could think of actual cases where pre-Java8 support would still make sense for `jackson-databind`.

But based on feedback (and to some degree, lack thereof), I concur that Jackson 2.13 JDK baseline can now be increased to Java 8 (*)

-+ Tatu +-

(*) save for `jackson-annotations` and `jackson-core` (streaming parser/generator API, json impl), for which there is not much upside -- although `jackson-core` might still follow for another 2.x version.

 
Reply all
Reply to author
Forward
0 new messages