Hi Chris, I'm not a Jackson developer, just a list subscriber.
I think the issue here might be Android - specifically Android 6 and older, which only support the Java 6 API. Any code that calls API methods that are missing in Java 6 will crash at runtime on older Android devices. Setting "-source 6 -target 6 -bootclasspath <path to java 6 standard library>" makes it possible to detect these potential crashes at compile time.
Starting with Java 9 I believe it's possible to use "--release 6" instead, without needing a copy of the older standard library. But maybe the minimum version for --release has been raised in Java 17, along with the minimum for -source and -target?
Another potential issue with --release is that some people may still want to compile with Java 8, which doesn't have that option.
If --release isn't feasible, another possibility would be to use Animal Sniffer, which checks code for compatibility with a specific Java API version at compile time. The project page says it's in maintenance mode because --release now does the same job, but if we need to be able to compile on everything from Java 8 (without --release) to Java 17 (which may have a minimum --release 7) then maybe Animal Sniffer would still have a niche?
http://openjdk.java.net/jeps/247 https://www.mojohaus.org/animal-sniffer/ Cheers, Michael On 02/12/2021 12:24, Chris Kelley wrote:
Hello all! *TL;DR: Will updating the source/target to e.g. Java 1.8 cause problems?*I help package some of the jackson modules in Fedora. In F36 `java-17-openjdk` will be the default system JDK, so I need to make sure that all the packages I maintain will work with Java 17. Currently Fedora uses Java 11 as default and I have not seen any problems with jackson, so I am not expecting any problems with Java 17 either.However, I see in the source <https://github.com/FasterXML/jackson-annotations/blob/2.14/pom.xml#L44> that the source target of `jackson-core` and `jackson-annotations` is set to Java 1.6, for backwards compatibility reasons - this directive causes compilation failure with Java 17 as there is a requirement of Java 1.7+.If I recompile with Java 1.8, 11 or 17 will the sky fall down? What is the reason for holding the source/target at 1.6?Thanks in advance for any help/historical context/advice! * * --You received this message because you are subscribed to the Google Groups "jackson-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/jackson-user/d89f7760-7bde-471b-acb0-b8f24d4619c4n%40googlegroups.com <https://groups.google.com/d/msgid/jackson-user/d89f7760-7bde-471b-acb0-b8f24d4619c4n%40googlegroups.com?utm_medium=email&utm_source=footer>.
-- You received this message because you are subscribed to the Google Groups "jackson-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jackson-user/31335422-877c-99da-a7f0-e0adfd9a0373%40briarproject.org.
OpenPGP_0x11044FD19FC527CC.asc
Description: OpenPGP public key
OpenPGP_signature
Description: OpenPGP digital signature
