When you develop and run plugins for Sametime 7.5 on Windows or Linux you do not use a standard Java Development Kit (JDK) and standard 1.4.2 JVM. Instead you use a slightly modified version called the JCL Desktop JDK and the J9 JVM. The “slightly modified” means that some features have been removed from the JDK to make it “safe” for the Expeditor framework that Sametime 7.5 runs on.
An unfortunate side-effect of this decision is that you cannot use the Notes/Domino API (that is notes.jar or ncso.jar) without resorting to additional libraries. The reason is that the ever present lotus.domino.NotesException inherits from org.omg.CORBA.UserException which is an exception class that has been removed in the modified runtime class library (for more information about lotus.domino.NotesException see my post called Java in Notes/Domino Explained: NotesException).
Fortunately there is a way to remedy that. The solution is to include the ibmorbapi.jar library (can be found in c:Program FilesNotes7Datadominojava on my laptop) in your plugin alongside notes.jar or ncso.jar. The ibmorbapi.jar library is quite large (around 400kb) but I haven’t yet played around with it to see if you could simply get away with including the org.omg-packages.
Now you know why your plugin fails to compile due to indirectly referenced Corba classes.
Anyways – someone who has the ears of the Sametime development team might want to mention this to them. Apart from that – great product and its a joy to develop plugins for Sametime 7.5! 🙂
I can’t seem to find a demo download of Lotus Expeditor 6.1. The closest I get is a reference to download it from Passport Advantage but I guess you have to buy it first to have it show up there. At least in my case…
In the issue of the Lotus developerWorks newsletter that I received in my inbox today there is a link to an article on creating applications using the Property Broker of Lotus Expeditor (Creating collaborative components for IBM Lotus Expeditor Property Broker). This was kind of funny since it coincided with me receiving a Java newsletter with an article on using the PropertyChangeListener of the Java SDK.
For those not in the know, the Property Broker is the middleware which is used in the Lotus Expeditor framework to dispatch property change events between components and hence is the glue that makes the different components of a composite application work together. The Property Broker is configured either declaratively using an UI or using an API.
The approaches described in the two articles are quite similar and both describe how using a declarative approach (much like extension points in Sametime 7.5 development) allows for a much more flexible solutions that are less brittle and prone to breaking caused by API changes. An added benefit is the absence of compile time checks which means that you may develop and deploy components that doesn’t need to know of any other components that acts on the property changes it fire. The alternative to declarative events is the use of the Observer design pattern and Listener-interfaces en masse e.g. like in Swing.
Reading the articles has really got me thinking about how to leverage these capabilities in new and existing applications. I see great possibilities and the possibility of having many applications work together to form a greater whole.
I think the advent of composite applications will mean that the job of the application architect will become more challenging and you need to change the point of view from which applications are designed and developed. Applications will move from being monolithic entities to being composite and hence you need to decide on which properties to expose and how to work with “client” applications. This you need to decide on at design time. Applications should be designed and built as smaller interconnected components and not as the CD-ROM AutoInstall, 7-databases-in-one, applications of today.
Sounds intriguing but challenging…
All these possibilities are exciting and it will be interesting to see how many of the Lotus Expeditor capabilities will be exposed by the Notes 8 client and how many Notes 8 customers will pick up on it.
IBM Workplace Designer is mentioned and used as an example on how to leverage Eclipse as a foundation for rich-client applications. Too bad Expeditor, Sametime or Notes 8 isn’t mentioned…
Eclipse Power in IBM Workplace/Domino
“Eclipse is a robust functional platform that IBM Workplace/Domino developers can put to full use in their current and future projects. In this article, we focus on the benefits of Eclipse as a client foundation that has a cross platform, rich UI widget set that is based on native widgets, a rich UI framework, pre-defined dialog basis: Wizards, Preferences, Properties, and other UI: Perspectives, Views, Editors, Workbench (as a base), ActiveX support in SWT on Win32 (platform integration), and a good Help system. Eclipse as a client foundation is an extensible platform that features a plug-in extensibility model, shared programming model with tools development, education that is already developed for tools offerings, core services, extension points, core frameworks, production quality platform with two major releases in the market, and an Open Source code base. “
Eclipse Magazine, Issue 5, December 2006.
As mentioned previously I have a couple of friends who work at IBM and while at a social Christmas gathering last night one of them showed me the build of Notes 8 he is running on his work laptop (Notes 8, M3). It was quite funny to actually see the product and I think I have to pay him a visit later in the week to play a little more with the client.
I only played with it briefly but first impression is that it looks nice and more Windows-like (in a positive way!). It sure still looks and feels like Notes but with a touch of Expeditor/Eclipse RCP. The most noticeable differences are that the bookmark bar on the left is gone, there is a Start-style launcher button on the top left and a bar with miniapps (Sametime, RSS feeds, todays calendar etc.) on the right. Other than that the old-style preferences has been replaced with standard Eclipse style preference pages but other than that I looks like you would expect. I don’t think most users will have any problems getting used to it.
I’m sure there’s tons more, but that’s my first impressions. Funny to actually see the client we’ve been hearing about for months now from Mary-Beth Raven and Ed Brill.
I have been doing a lot of Sametime 7.5 plugin development over the last couple of weeks so I can really see the benefit of the miniapp-sidebar. I think miniapps and the concept of the sidebar is going to be a really valuable addition to the application portfolio. I need to look more into this as I explore the client and see how the miniapps are wired into the client and how to make them respond to events in the client such as opening new applications etc.
As an aside I really hope we get to share miniapps between Sametime and Notes 8 without having to recompile… I have my doubts of this though, as the extension point used in Sametime 7.5 for miniapps looks and sounds quite Sametime 7.5 specific but I hope I’m wrong.
While looking to DB2 v. 9 I stumbled upon DB2 Developer Workbench which is the follow-up to the old suite of Swing based Java DB2 development applications which I must say was due for an overhaul. If DB2 Developer Workbench is the yardstick for future IBM development products based on the IBM Eclipse/Expeditor platform all I can say is wow!!
I already picture an integrated development platform for Lotus, DB2 and Java products (can’t make myself write Websp…). It’s gonna be a BIG install but imagine the applications you can build that leverage Notes 8 as the client for applications what access Notes, DB2 and Java resources. How’s that for composite applications.
Seems everything is melting together nicely…
Application development with DB2