Usability - Productivity - Business - The web - Singapore & Twins

Deploying the extension library - client edition

Unless you are living under an XRock your next XPages project will use the Extension Library. While installing it into your development environment is easy (just follow the instructions) and deployment to your 8.5.2 servers got a lot easier, deploying it to XPiNC application takes a few steps more:
  1. You need an update site. Since you deployed it to the servers you would have one already
  2. You need a Widget catalog (typically called toolbox.nsf). Luckily that's just a File - Application - New
  3. You need an entry in the widget catalog for the extension library plug-in with a widget.xml describing the plug-in (details below)
  4. You need a client policy that points all Notes clients to the Widget catalog and makes the category you assigned to the Extlib Widget an automatic mandatory install
  5. Sit back and relax and see your extension library deployed
You can muse if you update site should use HTTP or NRPC. The later would have the advantage, that you can replicate the update site to your clients (using a policy) making the update process independent from actual network connections. The tricky part is to get the XML file right.The format of the XML file is partly documented in a DTD in the Expeditor documentation. If you are not familiar with DTD, they are a little hard to read and also kind of out of fashion. Today one would expect an XML Schema instead. At least it is very well documented. That part needs to be wrapped into a CDATA section and surrounded with the widget code. A sample can be found in the Domino administrator documentation. The file could look like this:
<?xml version="1.0" encoding="UTF-8"?>
<webcontextConfiguration version="1.1">
    <palleteItem id="com.ibm.xsp.extlib.feature" imageUrl=""
       title="OpenNTF Extension Library for XPages"
        <preferences />
<installfeature description="OpenNTF Extension Library for XPages" id="com.ibm.xsp.extlib" name="Test Feature ABX" version="8.5.2">
 <feature id="com.ibm.xsp.extlib.feature" match="greaterOrEqual"  version="8.5.2" shared="true" url="nrpc://yourserver.com/updatesite.nsf"/>  
Update: IdoNotes (Chris Miller) has a complete video walkthru of the process.
As usual YMMV

Posted by on 19 May 2011 | Comments (a) | categories: XPages


  1. posted by Stefan Kaiser on Friday 20 May 2011 AD:
    Hello Stephan, thanks for sharing and greetings from Germany.
  2. posted by Patrick Kwinten on Friday 20 May 2011 AD:
    thanx for the description but sending a new library every 2 weeks to users, no thank you. Emoticon undecided.gif
  3. posted by Julian Buss on Friday 20 May 2011 AD:
    while this is a good tip, it means that the extension library is not usable for the Notes client in the real world: when we would depend one of our products on the extlib, it would mean anyone need to install the extlib in his clients before even trying our product... NO ONE will do so.

    Therefore, I wait and hope that extlib is included in 8.5.3 in the client, too. Before that I will not be able to use the extlib in real world products.

  4. posted by Frank van der Linden on Friday 20 May 2011 AD:
    very useful, thanx for sharing
  5. posted by Stephan Wissel on Friday 20 May 2011 AD:
    @Patrick: you don't need to live on the bleeding edge and deploy every build. Once it is in the updatesite clients will pull updates automatically.

    @Julian: Don't pin your hope on it. Anyway look at Julian's charting example (I think 2 years ago) - it combined application and installer.

    And yes - for makers of standard software there are hard choices. Go and ask your ASP friends, they face that dilemma for a decade.
  6. posted by Tim Tripcony on Saturday 21 May 2011 AD:
    @Julian, remember, the library as a whole will almost certainly not be promoted to the native product installation... certain components that are included in the library will be added to the product in subsequent releases.

    Production use of add-on control libraries such as this are extremely commonplace in other web development frameworks... for example:

    { Link }

    6.4 million results... that's not an accident... compare that to these 13,000 results:

    { Link }

    The whole point of this type of control library is that it provides functionality that isn't available in the core product. Sure, it would be great if some of these components were officially supported by IBM - and, over time, many of them will be - but consider that, once that happens, you may need to wait months to receive fixes to bugs in those components... while they remain part of an open source project, it's common to receive fixes the same day you report them.

    In fact, over the last year, there have been a handful of cases where a bug in a component has been identified, and I personally fixed the source code and committed the fix back to the project. If there's a bug in a native component, on the other hand, we can't even look at the source code without violating the terms of use, much less actually fix the problem ourselves. Use of the extension library in our own products means that, not only are we able to save money developing the product (and pass that savings on to our customers) because we're not duplicating work IBM has already done and released for free, but when issues are identified, we obtain resolution far more rapidly than we would otherwise because either IBM fixes the bug in a matter of hours or days... or we have the capacity to just fix it ourselves. And deployment of the fix involves replacing a single JAR file on the server and restarting the HTTP task, instead of shutting down all of Domino to install a hotfix.

    As a result, when I hear people claim that the extension library is not "supported", I'm reminded of the oft-repeated quote from the movie "The Princess Bride": "you keep using that word... I do not think it means what you think it means."
  7. posted by John Jaeckle on Tuesday 24 May 2011 AD:

    I think you may be mistaken in your thought that major organization won't deploy the library. I'm leading a major organization through install of the extension library to all their clients in June. As for your other concerns, I think Tim answers it well in his comment.
  8. posted by John Jaeckle on Tuesday 24 May 2011 AD:

    I think you may be mistaken in your thought that major organization won't deploy the library. I'm leading a major organization through install of the extension library to all their clients in June. As for your other concerns, I think Tim answers it well in his comment.
  9. posted by Stephan H. Wissel on Tuesday 28 February 2012 AD:
    @Mani: open a PMR if you can reproduce the problem
  10. posted by Mani on Tuesday 28 February 2012 AD:
    I have been able to deploy the xpages libabry using updatesite and widgets , it is installed ,but applications won't work till i change platform.xml using the instruction here { <a href="{ Link } rel="nofollow" target ="blank">Link</a> } , how can i get this working without manualy altering this file , is there anything that i missed in the widget?