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