diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 35a7940..18563ff 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -15,11 +15,11 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Set up JDK 21 + - name: Set up JDK 22 uses: actions/setup-java@v3 with: - distribution: 'zulu' # See 'Supported distributions' for available options - java-version: '21' + distribution: 'temurin' # See 'Supported distributions' for available options + java-version: '22' architecture: 'x64' # defaults to 'x64' cache: 'maven' - name: Cache Maven packages diff --git a/README.md b/README.md index 406a0dc..8f7d615 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ All raw formats can be loaded with the Image class and manipulated by Pixelwrite **JDK 18 is required for v1.8.0** because of the foreign linker API usage and the big changes for threading happenend in Panama in JDK18 -**JDK 21 and JavaFX 21 is required for v1.8.5** because of the foreign linker API usage, changes in JavaFX 21 and the big changes for threading happenend in Panama in JDK21. +**JDK 22 and JavaFX 22 is required for v1.8.6** because of the foreign linker API usage, changes in JavaFX 21 and the big changes for threading happenend in Panama in JDK22. Major rewrite without separate Win/Linux code anymore. ## Status Now the lib is in production ready status. That means it is tested on all operating systems (OSX, Linux, Win10) and under different threading scenarious. @@ -16,7 +16,7 @@ Supported OS: - OSX up to 12.5 including Apple M1 - Windows 10/11 -I have integrated LibRaw SNAPSHOT version 202110 (https://www.libraw.org/news/libraw-202110-snapshot) +I have integrated LibRaw SNAPSHOT version 0.21.2 (https://www.libraw.org/news/libraw-202110-snapshot) Actually only the following raw formats are enabled (see class `RAWDescriptor.java`): - Adobe DNG @@ -43,12 +43,12 @@ Point to the maven coordinates: 1.8.0 ``` -**JDK21** +**JDK22** ``` org.librawfx LibRawFX - 1.8.5 + 1.8.6 ``` @@ -70,7 +70,7 @@ Point to the maven coordinates: - and add the following lines to your java config on JDK 20: ``` ---enable-preview --enable-native-access=org.librawfx +--enable-native-access=org.librawfx --add-exports=javafx.graphics/com.sun.javafx.iio=org.librawfx --add-exports=javafx.graphics/com.sun.javafx.iio.common=org.librawfx ``` @@ -107,8 +107,8 @@ You can have a look into the class TestAPP.java to see how to use it, but genera You can also use the lib without adding the file handler. What I mean is that you can also forget the "...install" line and just load a file URL with the lib (see the `TestApp.java` to see how it works). ## Steps to create your own build: -- OpenJDK/Adoptium 19 or newer -- JavaFX 11 or newer (21 is recommended) +- OpenJDK/Adoptium 22 or newer +- JavaFX 20 or newer (22 is recommended) - SET JAVA_HOME variable - Execute `mvn clean compile package -f LibRawFX/pom.xml` - To run the example execute `mvn javafx:run@cli-default` @@ -116,8 +116,8 @@ You can also use the lib without adding the file handler. What I mean is that yo # Notes: - The lib is using unoffical JavaFX interfaces -- The lib is using heavily the foreign memory API from Java 18 including functions from the project Panama and therefore the tool `JExtract` (Must be build separately) -- All classes inside of package `org.libraw.win` / `org.libraw.linuxosx` are generated by jextract but tuned for operating system specifica +- The lib is using heavily the foreign memory API from Java 22 including functions from the project Panama and therefore the tool `JExtract` (Must be build separately) +- All classes inside of package `org.librawnativ` are generated by jextract but tuned for operating system specifica - Inside of these packages above I exposed also the raw interface to libraw - The main class to interact with the native lib is the class `LibrawImage.java` in package `org.librawfx`