(I got this, as said before, but I don't know if it was the best way)
I think, now it's time to learn a little more, because now I want to build libraries for both Freeplane versions: I just copy/pasted from other sources, modified it a little and it worked. Until now, I used Gradle to build the add-ons libraries without really understanding how it works. I tried to build an addon library using Gradle with FP 1.10 but it didn't work.
I installed version 1.10 with Java in my laptop as a normal application and v1.9.15 as a portable app.
And I will update the scripts/add-ons I really use to move on into the 1.10 version.īut I, like everyone, am short of time and I want to know how "painful" will be to do this transition, just to make a plan how I will face it. I also support that Java 17 is the way to go. regardless of the Java version used to run Freeplane. Let's also keep in mind that since Freeplane 1.10.x upgraded Groovy (from 3.0.8 to 4.0.1), some of the add-ons need work anyway, i.e. Making Java 17 the target for Freeplane will give a clear signal to the authors of the add-ons/scripts about the Java version to be supported going forward, and that they should consider making their add-ons/scripts compatible.
Therefore they could install Freeplane 1.10.x without the bundled Java and continue running Freeplane on their lower Java version. Old-time users who rely on add-ons/scripts that fail on Java 17 but run OK on a lower version, in most cases already have that lower Java version installed. If someone is new to Freeplane, they most probably don't use add-ons/scripts, and a bundled Java 17 is the best approach for them. Therefore it makes sense to me to bundle Java 17 with Freeplane 1.10.x.
Java 11 is the previous Long-Term-Support version, with security fixes till Sep 2026. On I can see that Java 15 is end-of-life. ¹What I've noticed was that when I use Java 11, my Groovy libs aren't compiled by Freeplane (printing errors in the log), though they still work. I support the idea to make it generally available. I've been using v1.10.1-preview on Java 17 for the last 2 weeks without issue¹. Further, I think that currently, Freeplane 1.10.x has reached a state where it could be released as stable to the general public. I could also generally block running Freeplane with Java 17 as was the case with Freeplane 1.9 but it does not seem to be a long-term solution.
I could package Freeplane for Windows with Java 11 or Java 15, it would help to avoid this problem, but if someone would run Freeplane under Java 17 it would appear for this user again. There is nothing I could do if we want to allow running Freeplane under Java 17. Particularly, I think that in the case shared by use of the field children instead of the method children() is less safe because the field value might be null. You can get some background information from Therefore you can not access such protected fields from groovy scripts and formulas any longer. In Java 17 access to protected fields of internal java modules by reflection has been restricted. So let us discuss how to handle this problem.īeta Was this translation helpful? Give feedback. If the called private methods were annotated with or their visibility could be changed to package private it would fix the issue, but I am not sure if and how fast we could get Groovy devs to accept this change. I do not have any ideas how to work around it on our side. The bug was reported in 2007 and it does not look like they are going to fix it. Therefore the new Console class can not be used as a base class for any other classes. Unfortunately, I have seen that popular add-on WikdShell and related add-on Freeplane_WikdShell_Extension by are heavily incompatible with Groovy 4.0.1 because package groovy.ui and class groovy.ui.Console has been removed and the Console contained in replacement package can not be used as a base class for WikdShell and WikdExtension because of Groovy bug entitled "Closure in base class unable to call private methods when invoked from derived class". It contains the latest versions of all used libraries including the latest Groovy 4.0.1. I have released the first preview version of Freeplane 1.10.x which has the same functionality as Freeplane 1.9.14 but works with Java 15, 16, and 17.