‘F’ is for Feature

I want to add some more clarifications about IBM 9.0.1 FP8 in response to some blog posts that are out there.  Let’s start here with Oliver Busse’s posting:

Feature Pack 8 is there – and here’s the trouble

On first reading of this blog post I got the impression that FP8 will break your projects, but on closer inspection, the errors displayed are caused by Java classes wrapping or extending Domino backend Java classes. The big scary Java dialog it shows is as follows 🙂


In order to ship new features IBM must often extend its backend classes to provide new APIs. I recognise a lot of the APIs called out in this screenshot because they are mostly the new ones added in FP8 to give you the capability of decrypting and encrypting documents.  If anyone has built their own Java classes that extend those IBM backend classes then, yes, to target FP8 you absolutely must account for any new APIs and provide an implementation – this is to be expected. IMHO this is also a fairly advanced use case that does not apply to the typical XPages developer.

Anyway, as Oliver correctly points out, once that is done then your Java code will run fine on FP8. If you deploy that Java library to an older version of Notes/Domino and one of those new specific methods is called then you will get errors. Effectively what this really means is that if you try to decrypt or encrypt a document on older versions of Notes/Domino that don’t support it, it won’t work! This has always been true. For example, you cannot use features from Domino 9.0 in an app and have it run on 8.5.  The beauty of FP8 is that the ‘F’ is for Feature and not just for Fix anymore. So if you use new FP8 features in your apps then they will not run on older versions of the platform.

This segues quite nicely to a Domino Designer feature that helps manage versioning issues, but I often come across developers that are unaware of it. When you have an application open in Domino Designer take a look at the combo box in Application Configuration > Xsp Properties > General > Minimum Supported Release. It looks like this:


If you need to deploy an application to a server environment that differs from your development environment you can set the required release level here and have the application rebuilt accordingly. If your application uses any features beyond the release level chosen then it will be flagged as an error and you will need to take corrective action. As you can see, this feature has been updated to account for Feature Packs going forward.