Java 11+ Polarbar builds

20 views
Skip to first unread message

Carl Miller

unread,
Jun 15, 2019, 12:52:43 AM6/15/19
to Polarbar mailer
I've done some experiments and here's where I think things stand for deploying PBM using Java 11 and beyond.

- Using the new gradle build, the distribution "zip" for PBM gets unzip'd and you simply run a pre-supplied script for *nix/Windows (supports Mac of course, my system of choice)

- All the dependencies required for PBM are included in this zip, including the JavaFX dependencies (it's all open source, right? :))

- The only requirement on the users machine is a running version of Java 11 (or whatever the latest may be)

Note that there will be no need to download JavaFX separately for these builds. That is for PBM itself. If you have other needs for JavaFX, well, that's a separate issue altogether.

With the latest changes happening in PBM, it'll be near impossible to run PBM on anything but Java 10 and beyond (and I say "10" only because I have that installed, I don't seem to be able to find it anywhere now). 

Also, Oracle allows anyone to run their version of Java on a personal basis. Unless you're using PBM in your business, you're free to use Oracle's Java distribution to run PBM.

What I'd like to understand is what happens if PBM *only* runs on Java 11 and above? Do folks see that as a problem? It'll be easier to establish that as a minimum requirement and that would allow packaging PBM in the manner described above. 

Carl

p.s., I just tested all this on Java 11 and also Java 12 and my one-minute test looked fine, no issues seen. Obviously a lot more testing is required. I will say, Java 12 was really fast for the newer stuff I've worked on.

WildWilly

unread,
Jun 15, 2019, 7:31:30 AM6/15/19
to Polarbar mailer
What's a gradle?

I'd still like to know if the update that's available for Java 11 is a proper update, meaning I don't need to uninstall the J11 I already have & it is only the bits & pieces that are different from the already released iteration.  Or do I need to uninstall the Java 11 I already have before I install the J11 update?  This is about the 3rd or 4th time I've asked this question.  I'd really like an answer.

I like the sound of "With the latest changes happening in PBM."  What are you changing?

I'm a bit hazy on what you are proposing as the installation procedure for PBM.  Are you saying you're going to package JFX in the same zip archive with PBM?  Are we now going to unzip the PBM jar, something we've never done before?  What if I've already got JFX installed?  I do have JFX installed because that is what you told me to do.

You also told me to stick with J11.  Should I install J12?  It's all the same to me.  I don't care which I install as long as it makes PBM work.

Carl Miller

unread,
Jun 15, 2019, 9:46:54 AM6/15/19
to Polarbar mailer
Gradle is just another build tool for Java. It's used to compile and package PBM and its dependencies.

Changing a lot :) Biggest change visibly is a new "HTML" viewer which is based on WebKit (full HTML rendering, handles pretty much any website). Java started packaging WebKit since 8 or 9 or 10 (can't remember which version actually, but for some time now). Same browsing engine as Firefox, Chrome, Safari, etc. And don't worry, it's PBM, would we allow external connections without explicit user action??? (NO!!!) So it's totally safe to view "html" emails and not worry about being "tracked" with external links.

In prior releases, the individual class files of PBM were all packaged up into a zip and other Jar files were distributed (like spell checker and logging, etc.) separately. In the newer distribution, all Jars (including PBM, no longer a zip file) are packaged up into a single zip for downloading. You unzip this single downloaded file (like any other app) into a directory and simply run it. No other components needed (other than a supported Java), no other installs, etc. 

If you already have JavaFX installed, it won't matter as PBM will not look for it, it'll only use what's packaged with PBM itself. And yes, JFX is a dependency for PBM and it will be packaged up just like the other Jar's PBM is dependent on (spell checker, logging, Java mail API, etc.).

Personally I wouldn't jump on J12 just yet as it's quite new. From my perspective, it shouldn't matter but I've been mainly working on PBM using J10 (hard to find) and will eventually only build/test using J11. 

And it's a changing world so what was true before J11 with JFX is no longer true since JavaFX is no longer distributed as part of the core Java. This started in J11.

For your own personal setup, I don't know whether some particular update is needed or how it gets installed, etc. I install Java's as I need them and use a "Java switching" tool to manage which one is actively in use. For example, here's all my Java's:

jenv versions

  system

  1.7

  1.7.0.71

  1.8

  1.8.0.191

  1.8.0.77

  10.0

  10.0.2

  11.0

  11.0.2

  11.0.3

  12.0

  12.0.1

  openjdk64-11.0.2

  oracle64-1.7.0.71

  oracle64-1.8.0.191

  oracle64-1.8.0.77

  oracle64-10.0.2

  oracle64-11.0.3

* oracle64-12.0.1 (set by /Users/carlpmiller/src/Polarbar127Dev/.java-version)


It's like socks in a drawer - I use whatever I'm in the mood for that day - LOL

Carl

Bill Wild Willy Kredentser

unread,
Jun 15, 2019, 6:49:30 PM6/15/19
to PolarBar Mailer Google Group
> ** Reply to message from Carl Miller <carlp...@gmail.com> on Sat, 15 Jun 2019 06:46:54 -0700 (PDT)

That's interesting. I'm looking forward to that.

I do not have so many socks in my drawer. I have a single Java installed & it happens to be J11.
When I recently (a year ago?) upgraded from whatever Java I had (8?) on advice you gave here, I had
to uninstall my existing Java to install my new Java. You led me to believe they (OpenJDK folks)
didn't have smooth installers like normal software developers. It's all documented in a thread on
here somewhere. But I believe at the time, their attitude was that they would not be putting any
effort into being user-friendly with their installation packages. When they came out with an
update, it would not be an incremental package like most software houses. It would be a complete
replacement. If modules were removed or renamed in the update, the only safe way to get the update
with the bug fixes & what not was to wipe the old version off your system so there would be no
accidental residual bits of the previous version. Have they changed their attitude? Do I still
need to wipe the J11 I have off my system? Or are they giving us real updates that don't require a
wipe of what you already have?

WW
GO HABS GO!
Configuration: Windows 7 Professional, Open JDK build 11.0.1+13 (2018/10/16), pbm1.26dev/2324

Frederik L. Schodt

unread,
Jun 15, 2019, 7:41:48 PM6/15/19
to polarba...@googlegroups.com
This is all very exciting news. I haven't upgraded either PBM or java for years, and would love to take advantage of the latest improvements. I'm not a technical person, so when it's all ready to go, if someone could list a simple set of steps on how to install the latest, that would be fabulous. Many thanks to those who have been working on it for such a long time.

Best,

Fred

--
You received this message because you are subscribed to the Google Groups "Polarbar mailer" group.
To unsubscribe from this group and stop receiving emails from it, send an email to polarbar-mail...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/polarbar-mailer/9C.18.18162.9F5750D5%40smtp01.cbt.cmh.synacor.com.


--
Frederik L. Schodt
www.jai2.com

Carl Miller

unread,
Jun 24, 2019, 11:40:42 AM6/24/19
to Polarbar mailer
Update on this:

- The statement that JavaFX dependencies will be included in the PBM distribution is no longer accurate. 

At the time I wrote that, what I didn't realize was the dependencies being included locally for testing were platform dependent (e.g., they were specific to the Mac). I was only looking at the Jar files and didn't realize there were shared libraries also being distributed in another directory.

What this means:

- To run the newer PBM when it's released, there will be three requirements:

   1) Java runtime environment of 11+ (Oracle, OpenJDK, etc.)
   2) Installed version of JavaFX for your particular platform
   3) Environment variable (JAVAFX_HOME) specifying the home directory of JavaFX 

Carl
Reply all
Reply to author
Forward
0 new messages