New THE VIEW article is out!

I’m happy to say that my newest article is online at THE VIEW website. The article is on managing and provisioning lotus.domino.Session objects to plug-ins in Sametime Connect 7.5.1 – a subject that’s a little tricky due to the native code underneath the Notes/Domino Java API and due to the way that classloaders work in Sametime Connect/Expeditor.

For the ones who’s already on Sametime 7.5.1 please see the errata (https://lekkimworld.com/theview_sametime).

Article abstract:

Take the mystery out of providing multiple Notes sessions from Sametime Connect. Plug-in developers find that running multiple Sametime plug-ins that access Notes at the same time is tricky; the reasons are due to how the Sametime 7.5 Java application-programming interface (API) differs from the one Notes uses, and how Java class-loaders load native library code on Windows. The solution provided in this article uses a bundled group of plug-ins, invisible to connect users, for managing lotus.domino.Session objects across other plug-ins. You also learn how to achieve fast plug-in deployments with automatic Connect configuration, plus easier plug-in maintenance. The solution code is available for download at THE VIEW Web site.

3 thoughts on “New THE VIEW article is out!”

  1. Hi,

    First I find it great that someone experienced as you take care of the issue.
    I haven’t read the whole article. Just have downloaded the source code.
    Aren’t there asier solutions?
    Also I haven’t worked yet with Expeditor, but with Eclipse RCP client local Notes connections simply work by
    a) importing Notes.jar in the root folder of the plug-in project and
    b) add Notes.jar in the Runtime tab of the plug-in manifest editor.
    Works as long as the correct notes client program directory is first in the PATH environment variable of the OS.
    When using it in a multi-plugin RCP client one may put the Notes.jar in its own plug-in and reference that plug-in in other plug-ins which need it.
    If different versions of Notes are used in a organisation its possible to offer diffent versions with their own update sites.
    Why isn’t that enough in Sametime Expeditor?
    Since Eclipse 3.1 there is also new “Buddy” technology (try search in Eclipse help). I have not needed that so far and I am not sure if it helps for Sametime/Notes integration. Just wanted to mention.

    kind regards
    Axel

    Like

  2. Well the problem isn’t as much the Notes.jar per say – that problem can be solved, as you point out, by importing the Notes.jar into the plug-in or using a shared plugin to host the classes. The problem lies in the native bindings of the notes.jar for local sessions and the way native libraries are loaded by classloaders on Windows. I agree that there should be an easier way and my opinion is that this is something that IBM should provide a standard interface to. This is even more true since IBM wants ISV’s to provide standard off the shelf solutions (plug-ins) to customers. If these plug-ins needs to access Notes I don’t see that happening if each ISV solve these kinds of issues in their own way.

    I talked to the Sametime guys at Lotusphere 2007 and they knew about the problem but simply decided not to disclose that they knew about this potential problem. That may be the biggest problem.

    Like

  3. Mikkel,

    at least with Eclipse RCP and Eclipse IDE plug-ins it works runtime as long as the proper notes client directory is in the path of the OS. I have done both. Eclipse looks for the native libraries in the path. Does Expeditor behave differently in that aspect?
    Of course from experience I know that in the real world more often then not the proper Notes-program directory isn’t first in the path for some reasons. Sometimes there is no Notes emtry or it points to an uninstalled version of Notes or to a notes server (often found on developer boxes). Citrix environment might possibly create their own challenges.
    The issues and its fixes should be very well known among the technical stakeholders. If there is no 100% elegant solution. No problem. As this happens on other platform, too, for example like closed sessions and lazy loading with spring/hibernate or some of the jsf guys find it non-issue that the url in browser adress and content of app aren’t synchronized in some situations. But those issues and possible fixes are quite easy to google.

    Like

Comments are closed.