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
jackson-user...@googlegroups.com
> <mailto:
jackson-user...@googlegroups.com>.
> 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>.