ccavanaugh / jgnash

jGnash Personal Finance
http://ccavanaugh.github.io/jgnash/
Other
139 stars 80 forks source link

Migrate to Java Module System #85

Open msgilligan opened 4 years ago

msgilligan commented 4 years ago

Have you considered doing this? Will you consider it? I might be willing to help.

msgilligan commented 4 years ago

PR #87 and PR #88 are ready to merge and a start on this work. PR #89 is Work-in-progress towards a minimally modular app.

ccavanaugh commented 4 years ago

The biggest hurdle is simply building for macOS and not having a machine, and virtual machine emulation with JavaFX don't mix either.

When jlink is mainstream, I think it's viable and best. I've seen too many users that struggle to handle a basic Java installation and this would solve it.

msgilligan commented 4 years ago

The biggest hurdle is simply building for macOS and not having a machine,

I'm hoping we can get a macOS build using CI. I've never done this before (all my CI builds have been Linux, Android or cross-platform JAR files)

and virtual machine emulation with JavaFX don't mix either.

I had good luck running JavaFX apps on Ubuntu in VirtualBox on macOS. I even was able to do QR code reading using the MacBook Pro webcam.

When jlink is mainstream, I think it's viable and best.

I agree. And I think that time is just about here. @siordache, the author of the Badass JLink/Runtime plugins has been very responsive and I've had good luck with his JLink plugin. It looks like I"m going to have to open a few issues with the Runtime plugin, but they are issues that he has already fixed for the JLink one.

I've seen too many users that struggle to handle a basic Java installation and this would solve it.

I agree. This has been true of Java desktop apps for 20 years. It looks like it is finally being solved!

msgilligan commented 4 years ago

So, to be clear this issue is about migrating to JPMS modules and is (mostly) a separate decision from using jlink or jpackage. The Badass Runtime plugin (in theory, at least) allows you to use jlink and jpackage on non-modular apps. I made a quick stab (see #89 ) at making jGNash modular, but decided to put it on ice for now and try using the Badass Runtime plugin to build native apps without a JPMS migration.

If you are willing to work on a JPMS migration in the near future, we should use the Badass JLink plugin instead.