Need to add Mac OS X java to Spark build plan in Bamboo

It’s hard to coordinate everything via private messages and live chat, so doing a forum post. We want to provide a Mac OS X installer bundled with Java for Spark. [SPARK-1674] Add Mac OS X installer with bundled JRE - Jive Software Open Source speedy has made a PR by adding java binary into source and updating build.xml. It works, but that’s a bad way of doing this and there were already some issues, so i have reverted it. It has to be done on Bamboo. But me and speedy are not operating it, so we need help (Daryl?). Speedy or me will do any changes in build.xml which are needed, but someone should put Java for Mac OS X on Bamboo and update it when new version comes out. And then tell us how to hook into that Java on Bamboo for building the installer.

Another topic is about whether we should even provide bundled installer, only bundled installer, or bundled with not-bundled. There is a poll currently where i’m asking about this. There are points against providing only bundled installers (security issues in Java, ease of updating just one system Java for all apps using it). There are also pros as admin not having to worry about system Java even being installed when pushing Spark to users machines. As i understand on Mac it is a bit harder to stay up to date with Java. Apple is not maintaining their own Java and abandoned it. So maybe for Mac we should only provide bundled installer to save users a hassle and keep them somewhat secure. Or should we scratch this, mark it as Won’t fix and let users to worry about Java on Mac?

wroot, On the ignite05 (mac build host), I have placed the JRE file here:

/Users/j2ee-bamboo/jres/jre-8u74-macosx-x64.tar.gz

Thanks will forward this to speedy

I’d recommend bundling the JRE with the distribution. It’s just less hassle and your app behaves same for every user. In case of Spark it probably won’t matter much, because it uses the old Swing. But e.g. when deploying a JavaFX application, there can be even differences between Java 8u20 and 8u40, because 8u20 lacks some classes, so a newer app, which requires 8u40 can’t even run on a 8u20 system Java.

It’s also Oracle’s recommendation and Apple’s requirement, if you want to distribute an app via App Store:

Packaging a Java App for Distribution on a Mac

Your app package should include the Java Runtime Environment, or JRE. In fact, the Apple Store requires the use of an embedded JRE as a prerequisite for Mac App Store distribution

Thanks, CSH.

So i think at least with Mac we are probably going to go with bundled only option. Unless a lot of users ask for unbundled one. And for Windows it looks like majority is voting to have both versions. So no changes there for now.