Properly updating your Features and Plug-ins Widgets

My Widgets is a very powerful and easy method for deploying Eclipse features and plug-ins to the Lotus Notes 8.5.1 clients and above.  If not careful,  it can however bite you.  So here is my story…

I had some strange behaviors when I was sending out the attachment viewer in the beginning so I figured I would share those experiences.

When you create a Features and Plug-ins widget using the “Getting Started with Widgets…” icon in the Notes client you basically point it at an Eclipse update site on some HTTP server and select which features you want to install.  The wizard generates the extension.xml you see below.

The problem I had was; when I changed the update site (compiled new features and plug-ins) the versions for the features and plug-ins were updated (remember the .qualifier post?) and no longer matched the versions specified in the widget.  So I generated a new widget using the wizard based on the newly compiled feature versions in the Eclipse update site.  This would be fine if I wanted whole new features to be installed but in the end I only wanted one widget.  So what did I have to do?

Well, I had to save the extension.xml locally and edit it.  The reason is, I needed to retain the widget Id (in red below) so the Notes client would prompt me to update the existing widget – versus installing a new one.  You can see the widgets extension.xml below.  I would then change the feature version (install and requirement versions), also in red below to the new versions.  You then post this in the catalog or send back out to your users via email to have the new Eclipse features install and the existing widget “upgraded”.  I actually ended up storing the extension.xml in source control with the update site so the Id will always be retained.

<?xml version="1.0" encoding="UTF-8"?>
<webcontextConfiguration version="1.1">
<palleteItem contributeToSideshelfOnStartup="false"
             hideThumbnail="false"     i
             singletonSidebar="false" title="Attachment Viewer Feature"
     <installfeature version="">
             <feature version="" match="compatible" />

Learn about deploying features, plugins and widgets

This is a really good web cast about Eclipse Features, Plug-ins and how they are deployed and installed into Lotus Notes.  Chris Miller does a great job explaining the difference between plugins, features and widgets.  I really like how Chris talks about Eclipse Features – many do not understand or even realize what a Feature is.  If you want to know this stuff make sure you watch and listen to his great web cast about these new packaging models in the Lotus Notes 8.x client. You can see his original post or you can just watch the embedded replay below.

Education like this is very important.  More and more companies develop plugins and widgets; as an administrator you need to know how the plugin and widget get deployed and then, more importantly, how they are updated or removed.

Updating and Deploying a Composite Application

If you want to leverage the NSF Update site template and include your Eclipse plugins with your composite application then this article is for you.  It shows you step-by-step based on role how to do this.  The great thing about this method is all of the Eclipse features and plugins are self contained in the NSF – which makes distribution a snap.

Check out the article here.