On Tue, Jun 17, 2025 at 2:20 PM viktor_krumm <viktor_kr...@proton.me.invalid>
wrote:

> I think I understand better now, thank you.  The pom sets the "floor" not
> the "ceiling" version.  I can still compile my code at any version between
> 8 and 21, depending on features required.  Thank you for the help.
>
>
Well, it actually kind of sets both the floor and the ceiling, depending on
how you're looking at it. So, it sets the minimum version of Java required
to build and run the project (the floor), but it also limits the features
that you can use within the code in order to maintain compatibility with
that version (the ceiling). As I mentioned, you can still use Java versions
later than that to compile and run the code, but you will be limited in
some of the features of Java that you'll be able to use that may have been
introduced after that. As an example, Java 9 introduced the "asIterator()"
method to the "Enumerator" class/interface, and we had to back out a change
that had begun using that because it wasn't compatible with Java 8 (
https://github.com/apache/guacamole-client/pull/1084).

So, it's the "floor" when talking about the version of Java that you can
use to compile and run, and it's "ceiling" when talking about the feature
set you can use within the code.

-Nick

Reply via email to