Feature Pack 8 for IBM Notes/Domino has finally arrived and brings with it a slew of goodies for the Domino developer. From an XPages perspective alone, FP8 is loaded with the aggregation of all XPages Extension Library releases since 9.0.1 GA – that’s a total of 17 releases all rolled into FP8! Highlights from these updates include support for responsive apps through the inclusion of the Bootstrap framework (V3.3.7) along with a bunch of XPages wrapper controls and themes which make it both easy to work with and ready to go out of the box. More good news is that XPages now offers built-in support for relational data sources so your apps can integrate data from not only from Domino but also from most any RDBMS data store out there in a simple and consistent manner.
Integrating the Extension Library releases also means that a lot of mini-features and fixes are now included – some of which of course came from you! That is to say, anything that was contributed by the community to the open source layer of XPages via OpenNTF is now part of the Notes/Domino 9.0.1 FP8 core. And we hope to see a lot more of that in the upcoming feature pack releases! But it’s not all about the XPages Ext Lib enhancements: new Domino core updates mean that document encryption via secret keys or public/private keys is now supported in XPages. Thus older Notes apps with encrypted documents can be modernized for the web for the very first time.
And then there’s Domino Designer. All of the aforementioned runtime features need design-time tooling in the form of wizards, new controls, properties and preferences… and that’s all in there. So too is all of the Bluemix tooling, much requested features like SSJS editor support for managed beans, new extension points to support cool capabilities like Swiper, custom themes and so forth. All of these merit in-depth blog posts in their own right and that will happen on this site over the coming weeks and months – so stay tuned – but for now let’s look at the story with Java 1.8 in this feature pack.
Well not really. Feature Pack 8 delivers runtime support for Java 1.8, which is to say that all Java-based things like XPages, Notes plug-ins, Java agents and so on, run in a Java 1.8 container. Cool!
If you have installed Domino Designer however and you take a closer look at the Notes base folder you will actually see two JVM directories:
[c:\program files (x86)\ibm\notes] 15/02/17 13:31 <DIR> jvm 15/02/17 13:31 <DIR> jvm1.6
The 1.6 JVM is laid down by the FP8 installer and the Domino Designer JRE preferences are automatically configured to avail of it. It is provisioned because the version of Eclipse that underpins Domino Designer is too old to work with Java 1.8. Language changes, such as static interface methods, render the 1.8 JDK and the inbuilt Eclipse Java compiler (JDT) incompatible – ouch!
Providing Java 1.6 for Domino Designer means that XPages, Java agents and other Java artifacts can continue to be built successfully but only to the same 1.6 compiler level we have already. Apps based on these will run fine in the 1.8 runtime container but for now it means they cannot take advantage of the latest Java 1.8 features. Remedying this problem requires an upgrade to the underlying version of Eclipse – no mean task – but those of you at IBM Connect would have seen this on the Notes/Domino roadmap as a Feature Pack 9 candidate. The plan is to upgrade Eclipse in order to enable Domino Designer to target Java 1.8 properly, at which time the JVM1.6 folder would be removed. All in all, this represents a staged delivery of the Java 1.8 upgrade, i.e. first runtime, then design-time. The two could not happen simultaneously without delaying the FP8 deliverable, which was deemed to be a bad trade-off.
Of course upgrading Eclipse brings with it a whole other set of app dev benefits above and beyond just being able to use Java 1.8 features. There is the possibility of leveraging new code editors or dropping in ultra-modern Eclipse plug-ins to handle things like source control and the like. Now that’s something to look forward to!