Musings on technology.

Using Continous Integration in XPages Projects

Story short, many saw the recent developments for automating .NSF builds using “headless” Domino Designer:

This opens a totally new area for XPages projects. As we know, XPages is just something on top of JSF1.1, meaning you can and should leverage Java language to simplify the development of XPages applications. In fact, by moving most of stuff into Java code you can reduce the reliance on Domino Designer.

We all know, Domino development lacked all the goodies other technologies had: version control, build tools, unit tests, etc. With time, some of these started to appear in Domino Designer, when it became Eclipse-based. We got version control, perhaps not ideal, but at least in a working state. We could use JUnit to test Java code, though with additional effort. Nevertheless, we still lacked build tools, specifically ability to run it decoupled from Domino Designer, e.g. in an Ant job.

With Domino Designer 9.0.1, Domino Developers can do this as well. I will not go in details on how to enable & use it, since links at the start of this post contain suficient information. Instead, I will focus on how to make use of Continous Integration tools for automating XPages builds.

Improving Default Eclipse Install

For most of my development tasks I use Eclipse, be it plain Java development or IBM Notes plugin development. Starting version 4, Eclipse is not exactly most UX friendly IDE and generaly requires some adjustments. Thankfully, there is a marketplace with a lot of useful plugins. Below you can find a brief list of plugins I use the most:

Eclipse 4 Chrome Theme

Installing this plugin is first thing I do after opening Eclipse for first time. Basically, it fixes all the UX problems introduced in Eclipse 4. It’s specially noticeable on Linux or Mac.

Eclipse Color Theme

Another useful plugin, though without much technical value. It allows use of various color themes for Eclipse editor, which can be downloaded from Eclipse Color Themes website.


I use this plugin for automation of Java files header and comments. I find it very useful for assigning/updating license headers to multiple file in just one click. In addition, it can auto-generate comments for variable and/or methods based on pre-defined templates.

Google CodePro AnalytiX

This plugin is a must for developers who care of code quality. It performs code auditing and informs the developer on various mistakes or issues. It can be installed using an update site. More information can be found on product website. Version for Eclipse Indigo works as well in later versions.

Aside these plugins, I also use Mylin task list, which allows me to track my tasks for project where a full-blown issue tracker would be a killer.