Sunday, June 15, 2014

How to configure Eclipse 4.3 to develop plugins for Notes 9.0.1 FP1 (Part 1)

Our Domino Admin has updated our Notes/Domino servers to Domino 9.0.1 FP1. So i have to update my plugin development environment to 9.0.1 FP1 too. In today's post i want to show what's to change in the eclipse preferences to extend the Notes client with your own functionality. I assume that you have already installed Eclipse 4.3 or above and Notes 9.0.1 FP1. 

Start your Eclipse and choose a new workspace for your first steps in Notes plugin development.

Open the Eclipse preferences window and select "Java->Installed JREs" from the selection tree. Click "Add" to add the Notes JRE to the installed JRE's Notes will only run with his own JRE.

Select Standard VM as the JRE type.

Choose the base folder of the Notes JRE and Name the new JRE "Notes9". The JRE of Notes is in the jvm folder in your Notes Base directory. The JRE system libraries are added automatically when you choose the JRE home directory. Click Finish.

Check the new JRE to make your newly added JRE the default JRE. 

To solve the warning that the compiler compliance settings are not correct for this JRE, go to "Java->Compiler" and change the JDK Compliance from 1.7 to 1.6.

Now we need to add Notes as a target platform. The target platform tells Eclipse which plugins you can use or extend for your development. Click add to start the process. 

 Start with and empty target definition and click next.

Name your new target definition "Notes 9" and click add to add a new plugin location to your definition.

Select that you want to add an installation and click next.

Add the "framework\rcp\eclipse" path in your Notes program directory to the location. and click "Finish"

Approximately 2034 plugins (Notes client, Designer) should have been added to your definition.Click finish.

Change the target patform to the newly created definition and close the Preferences Dialog with "OK"

Your Eclipse workspace is now ready to develop plugins for the Notes client. In the next post in this series i will show you how to create a run config to start the Notes client from inside of eclipse to easily debug your plugins.

Do not miss Part 2 of this series.


  1. Was there something about this release of the XPages SDK that didn't do this for you automatically?

    If so, I'm happy to fix it.

  2. I have not known the XPages SDK up to now, thanks for your hint, but i have tried it now and i am a little bit disappointed. Many steps i have described in my post like the creation of the target platform or the change of the compiler compliance level are still needed. The documentation of the SDK is not finished yet, so i have not figured out how i can create a debug configuration with the SDK. I have seen that the SDK has added a new Run config type called Designer, but when i try to create a run config with this type i get the error "No tab group defined for launch configuration type org.openntf.xsp.launcher.Designer". The Openntf SDK looks promising, but i think for me it is easier to configure eclipse by hand to have full control over the process.

  3. As far as I know, there's not a way in Eclipse to create a Target Platform directly. You have to create it and a plugin can define the template for you. In this case, it does so using environment variables that point to the relevant folders instead of specifying an install path directly.

    You should be able to bypass the JRE creation altogether, as once you define the installation location, it sets the rest of up automatically.

    I'm unfamiliar with that error message, so I'll have a look at that this week.

    Of course, it's an open source project. You're welcome to contribute to it as well. Particularly in the area of documentation, where its almost impossible to get help.

  4. Thanks for your work at Openntf. I will download the source of the project and will have a look if i can help this project. Maybe i can solve the bugs i hitted.

  5. Hm Can not find the source of this project. Is there a GIT repository or where can i find the source of the SDK?

  6. The source is included in the plugin jar. But that's a pain, so this should definitely just be on github. I've added it to my repository here

    If you want commit rights, let me know. Or you can just fork and send pull requests.