Hello Jesse.

Dne úterý 13. října 2020 23:23:49 CEST, Jesse Glick napsal(a):
> On Mon, Oct 12, 2020 at 12:50 PM Jaroslav Tulach
> 
> <[email protected]> wrote:
> > Why don't you try to disable these modules?
> 
> Got that to work, though it was painful since some other modules
> including `java.kit` gratuitously depended on them. (I regret the
> introduction of the “kit” system, 

At least you know who to blame ;-) This is a regular conflict between ease of 
use (out of box user experience) and ease of re-use (building up own app and 
selecting pieces like lego).

> especially that some regular modules
> depend on kit modules; 

Feel free to fix that. The "kit" system was always meant as another layer on 
top of actual modules, right? Non-kit module depending on a kit would be an 
error in such setup.

> as well as the older autoload/eager system. The
> GUI to enable/disable features at a larger granularity than module
> should have used some higher-level classification system, leaving
> module-to-module dependencies to express hard code requirements.)

ergonomics/ide.ergonomics module provides `FoDUpdateUnitProvider` which does 
something like that: present a higher level content for Tools/Plugins not 
based on modules. However that was created later - you and Trung being already 
long time gone.

> > then your application needs to run on JDK11+...
> 
> In fact switching the whole build to JDK 11 simplified things
> considerably. Since there is no particular reason to run NetBeans
> itself on Java 8 I may as well publish modules requiring 11. (But how
> do I indicate that dependency at runtime? 

Setting the `javac.target=11` is enough for Ant based system. I hope Maven 
behaves the same. Anyway let me point you to (your) documentation:
https://bits.netbeans.org/12.0/javadoc/org-openide-modules/org/openide/
modules/doc-files/api.html
search for "OpenIDE-Module-Java-Dependencies".

> The generated manifest does
> not seem to indicate a minimum Java level.)

Ideally following things shall happen when one specifies javac.target=11,12,13:
* right compiler is selected that can handle such compilation
* right Java API (using `-release` ) is selected; so one compiles only against 
available methods
* module manifest is enhanced with `OpenIDE-Module-Java-Dependencies > 11` to 
tell the runtime to disable the module when running on older JDKs

The more automatic this can become, the better.
-jt




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists



Reply via email to