Flyway Engine < 10.0.0 with Java 11 required / Unclear release notes

jkojko Posts: 3 New member
edited January 12, 2024 7:35PM in Flyway (General Discussion)
Hi all, 
we are using Quarkus 3.5.3 in our project, which relates to Flyway 9.22.2. Quarkus states, that they run with Java 11. However, Flyway 9.22.2 only seems to run with Java 17+. Is that correct?

If I understand the Flyway release notes correctly, Flyway 10.0.0 should be the first version that requires Java 17 to run. Additionally, Flyway 9.14.1 introduces "multi-release builds" for Java 8 and Java 17. However, it is not explained what this means exactly and how to get the Java 8 version of the 9.14.1+ releases

Can you help me on this? 
Thanks in advance

Answers

  • Hello, 

    Can you tell me if this is for Flyway Desktop or Flyway CLI? 


  • jkojko Posts: 3 New member
    Hi JoshH,

    thanks for your answer.

    I would go with Flyway Engine. I updated the title of my question to reflect this.
    As I mentioned in my post, we use it in our Quarkus project. 
  • jkojko Posts: 3 New member
    Any ideas?
  • BarryABarryA Posts: 1 New member
    edited January 31, 2024 1:42PM
    multi-release is a function in Java packaging which allows a project code to be compatible with multiple different Java Runtime Environments. Prior to  9.14.1, Flyway as was using Java 8 for development, this is separate from the version of the Java Runtime ship with the command line bundles. As we knew we wanted to move to Java 17 by Flyway 10.0.0, we moved to a multi-release of Java 8 and Java 17 so that our developers and users could become familiar with Java 17 before support for Java 8 was switched off. 

    For a command line user, as we started shipping version 17 of the Java Runtime Environment, they would not see a difference if they used the packaged environment as they would just be lifted to Java 17.

    Users who use Flyway in their products, via the API, or use Flyway Maven or Gradle plugins or used the command line using their own Java Runtime Environment would not necessarily see any differences but wouldn't be getting the Java 17 improvements. 

    All of this should be automatically managed by the Java Runtime Environment and the user should not have to input anything to get this functionality to activate. 

    Any user using a Java Runtime Environment of versions 8,9,10,11,12,13,14,15 or 16 would be running the Java 8 Flyway code, while anyone running version 17 or above would be running the Java 17 version. 

    The most visual example of this is the debug message for which version of Java you are currently running in the command line, this is the standard message you would see in Java 17:

    Below is the modified message that would print if you were using a version below Java 17. This was because this message was only in the Java 8 code:



Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file