Genii Weblog

Adding plug-ins to Eclipse vs. Domino

Mon 24 Nov 2003, 01:00 PM

by Ben Langhinrichs
As my previous post jovially points out, I am looking at Eclipse more these days as the IBM "rich client" picture grows slightly clearer.  There is lots of good material on the Eclipse website, and I have been reading a lot, and the latest article is called PDE Does Plug-ins by two IBMers, Wassim Melhem and Dejan Glozic.

The article is well written, and seems to comprehensively cover the steps necessary to get your Eclipse plug-in to actually plug in.  I am certain that I will use it extensively when (and if) I get to that point.  Still and all, it leaves me with renewed appreciation for the ease with which one adds plug-ins to Lotus Notes/Domino.  Below are a few different types of extensions for Lotus Notes/Domino and what it takes to get them working.  This is by no means complete, just enough to point out the differences.

LSX - Lotus Software Extension (formerly LotusScript Extension)
These are obviously the bread and butter for Genii Software, so I'll start with them.  
  1. Write the LSX, using the LSX Toolkit (I don't mean to minimize this step, just that I am talking about deployment, not construction of plug-ins).
  2. Copy the LSX to the Notes or Domino executable directory
  3. Optionally (I don't with Midas) register the LSX in the Registry
  4. Reference the LSX in a script using the UseLSX statement or the UseLSX method of the NotesUIWorkspace

And you're done.  And that is one of the harder extensions.

Extension Manager
COEX! Links and our new products use these, so I'll mention them next.
  1. Write the extension manager (See LSX step 1 comment above).
  2. Copy the extension manager DLL or shared library to the Notes or Domino executable directory
  3. Add the extension manager to the NOTES.INI file under Extmgr_Addins= line
  4. Re-start Notes or Domino

And you're done.  Phew!

DB extension (Uses @DbCommand/@DbColumn/@DbLookup)
@YourCommand, or first Notes/Domino product, and our new @Midas Formulas both use this technology, so I'll mention them next.
  1. Write the db extension (See LSX step 1 comment above).
  2. Copy the db manager DLL or shared library to the Notes or Domino executable directory
  3. Use the @DbCommand/@DbColumn/@DbCommand specifying the name 

And you're done.  Getting the picture here, yet?

All the rest
There are lots more kinds of extensions, including add-in menus, import/export filters, server tasks, etc.  They all look pretty much like this:
  1. Write the extension (See LSX step 1 comment above).
  2. Copy the db manager DLL or shared library to the Notes or Domino executable directory
  3. Either add a couple of entries to the NOTES.INI file or add a program document or something similar

Draw your own conclusions.  I know I am oversimplifying, and I am not saying anything against Eclipse, but it does reflect awfully well on the Iris developers and IBM/Lotus product development team that the Notes/Domino world is as extendable as it is with such an incredibly easy interface.  Easy isn't everything, but it is something.

Copyright 2003 Genii Software Ltd.

What has been said:

73.1. Alan Bell
(11/24/2003 03:20 PM)

I agree that Domino is great for extending(obviously) but Eclipse is pretty good too. The deploy stage in that article basically boiled down to dropping a zip file in a directory. As with notes it is the writing of the extension which is the interesting part. Eclipse is nothing but plugins and writing plugins is the starting point for developing in Eclipse. In notes there is formula language and Lotusscript to explore before you get down to the metal with the C API. Maybe this will mean that in Eclipse more developers will push the platform to the limits, or maybe there will just be fewer developers. Time will tell but it does seem like a good thing to learn. I am already using it as my IDE for Java work, it is pretty cool.

73.2. Ben Langhinrichs
(11/24/2003 06:46 PM)

Glad to hear it. I am actually looking forward to working with Eclipse, and I'm glad to know to whom I should turn if I run into any difficulties. <grin>

Seriously, I will certainly write about the highlights as well as the gotchas as I learn to work with Eclipse. I'm glad you are there reading to keep me honest.

73.3. Cheeven Tsai
(2004/08/24 下午 07:04)

One thing I always feel sad is the slow improvement in Domino Designer's editor. I used to write both LotusScript and Java Agent, but the editor in designer can not compete with other IDE any more.

Recently I changed my habit to write agents in Eclipse before actually imported to designer, that saves me a lot of time, because I can gain much productivity on the syntax highlight or the auto-completing function, and also, Eclipse is free...

There are indeed a few improvement in the editor for LotusScript, but I started to search for a eclipse plugin for LotusScript... it should be great if there is one!

73.4. Ben Langhinrichs
(08/24/2004 08:33 PM)

It is a shame that the Domino Designer editor has not been updated more quickly. I think part of the problem is the Lotus attitude that they have to invent it themselves. This is an area where working with another company to develop a better IDE would have been time and money well spent.

That said, an Eclipse Lotuscript plugin sounds cool. Maybe you should write one yourself (or maybe we should).