Community articleXPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server
Added by IBM contributorPaul Hannan | Edited by Torsten Weigelt on October 31, 2013
Rate this article 1 starsRate this article 2 starsRate this article 3 starsRate this article 4 starsRate this article 5 stars28 comments

With Domino 8.5.3 and the IBM XWork Server the XPages Extension Library can be deployed using a UpdateSite database (updatesite.ntf). This makes it easier to deploy or update the XPages Extension Library without the need to manually copy the plugins in each Domino Server. This NSF based OSGi bundles that are dynamically contributed to the OSGi runtime. For the NSF, we will leverage the standard updateSite.ntf template as with the Plugins Deployment for Domino project

Introduction

With Domino 8.5.3 and the IBM XWork Server the XPages Extension Library can be deployed using a UpdateSite database (updatesite.ntf). This makes it easier to deploy or update the XPages Extension Library without the need to manually copy the plugins in each Domino Server. This NSF based OSGi bundles that are dynamically contributed to the OSGi runtime. For the NSF, we will leverage the standard updateSite.ntf template.

This new feature is optional and simple to use. By default the dynamic contribution is turned off. To enable it a variable must be added to the notes.ini that will contain the database paths that are allowed to contribute dynamic plugins - OSGI_HTTP_DYNAMIC_BUNDLES=updateSite1.nsf,foo/updateSite2.nsf. For each database specified in OSGI_HTTP_DYNAMIC_BUNDLES, a database based on the updateSite.ntf template needs to be created by the trusted administrator of the server who then can creates replicas in all the servers (upon which the about variable must be set) of the cluster or domain. This enables the deployment of Extension Library almost seamlessly.

Create a UpdateSite Application

For the server’s Administrator the steps to enable this feature are straight forward, though configured in a number of places. The first is to create a database on the server using the Eclipse Update Site ( updateSite.ntf) template.

Select File – Application – New.

This will launch the New Application dialog. From here select a server to where the application is to be created. Then on the same dialog select a server upon which the updateSite.ntf template resides.

Selecting the OK button on this dialog creates the application. Then it is a matter of modifying the application’s access control list for those who are to be allowed to create documents, and so add plugins to the server. Modifying the ACL of the databases to only allow (Author Access at a minimum) trusted users. Everyone else has no access. It is also recommended that "Do not show in Open application dialog" flag is set on the database.

Import the UpdateSite

The application is now ready to begin deploying an XPages Extension Library. On the main view, Main Features, select the ‘Import Local Update Site’ button. This will launch a dialog that allows for the selection of a site.xml file from an Eclipse plugin project.

For the Extension Library this is located in the updateSiteOpenNTF.zip file, which when extracted will contain two folders, ‘features’ and ‘plugins’, and the site.xml. The updateSiteOpenNTF.zip file can be found in the release of the Extension Library that can be downloaded from http://extlib.openntf.org.

Selecting this file and pressing the OK button begins the import process.

And once completed the view of the update site database will be updated with a document representing the import of the plugin.

The default state of the updateSite once installed is for it to be enabled. This same project document can be disabled as well which means that they will not be picked up by the OSGi runtime when the server Http task has been restarted. The same project document can tell the user a lot of information about the updateSite installed, most importantly the project version number.

Set the Notes.INI variable - OSGI_HTTP_DYNAMIC_BUNDLES

All that is left to do here is to put the reference to this Update Site database in the Notes.ini - OSGI_HTTP_DYNAMIC_BUNDLES=updateSite1.nsf – for the example above. And as long as this same notes.ini variable is set on other Domino servers this application can be replicated to these servers and the Extension Library will be deployed here as well.

Restart the server

When the notes.ini variable is changed, the Domino server will have to be restarted using ‘Restart server’ command on the server’s console. When the server is restarted the following message will appear on the server console indicating that the NSF based plugin is being installed on the server

restart server


	29/11/2011 11:43:18 Domino Off-Line Services HTTP extension unloaded.

	29/11/2011 11:43:18 XSP Command Manager terminated

	29/11/2011 11:43:20 HTTP Server: Shutdown

	29/11/2011 11:43:23 HTTP Server: Using Web Configuration View

	29/11/2011 11:43:31 JVM: Java Virtual Machine initialized.

	29/11/2011 11:43:31 HTTP Server: Java Virtual Machine loaded

	29/11/2011 11:43:32 HTTP Server: DSAPI Domino Off-Line Services HTTP extension Loaded successfully

	29/11/2011 11:43:35 HTTP JVM: CLFAD0330I: NSF Based plugins are being installed in the OSGi runtime. For more information please consult the log

	29/11/2011 11:43:53 XSP Command Manager initialized

	29/11/2011 11:43:54 HTTP Server: Started


What happens here when the server is restarted is that the OSGi launcher will introspect the updateSite dbs, automatically detect the features and dynamically load the associated plugins in the OSGi runtime. Internally, the OSGi launcher references each plugin using a url with a proprietary protocol that knows how to access the attachment plugin.

The url format is: osginsf://

For example: osginsf:updateSite.nsf/1234567890/com.ibm.extlib.demo_1.0.0_02102011.jar

Plugins not persisted on the server

It should be noted here that the plugins, deployed in this way are not physically installed in the Domino server and that once the http task is shutdown, they are not persisted anywhere in the server. And if there are more than one version of same feature, the Domino OSGi launcher will use the latest version. It will only compare the major, minor and service part of the version. If two features have the same major, minor and service, then the Domino OSGi launcher will rely on the last modified date of the feature document.

Security Safe Guards with this Deployment method

So deploying the NSF plugins is easy but this doesn’t mean that anyone can import plugins to the server. A number of security safe-guards are built in to this feature. With any customer code running from NSF, there needs to be care about who and what code is to be trusted.

The first layer of security is that the server’s administrator can enable/disable NSF based plugin contributions. By default the feature is disabled, to enable it the administrator uses the OSGI_HTTP_DYNAMIC_BUNDLES notes.ini variable containing the list of comma separated NSF paths that are authorized to contribute dynamic plugins.

The next layer of security is the ACL of the each database. One would need sufficient access to post the plugins in the database.

The OSGi runtime will perform document signature checking. Documents storing the plugins and fragments must be signed. If they are not signed or the signature has been tampered with, the OSGi runtime will not load them and a warning message will be added to the log.

For the plugin/fragment to be loaded, the person who signed the document must be included in the "Sign or run unrestricted methods and operations:" field in the security tab of the server document. If that's not the case, the OSGi runtime will add a warning to the log and the plugin will not be loaded.

Conclusion

Deploying the XPages Extension Library or any other extension library has never been easier.

Robert A Schless commented on Aug 15, 2013

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Won't Load on server....

1) I loaded 8.5.3 (release 0724). I loaded it manually to the server's directory (Domino/Data\Domino\Workspace\Applicaitons\Eclipse).

2) I generated an NSF of the Eclipse site template

3) I added the lines to the server's Notes.ini. that point to the NSF

4) I imported local update site. It asked for the site.xml, and completed successfully.

5) I restarted the server (several times....it is a development server)

6) I loaded the extension library to designer (and it shows up)

When I restart http (and the server) it shows that the plugins are installed, but not resolved. The only one that is resolved is realtional.derby.

I have run the xpages app and it doesn't (of course) find the extensions. What do I do now?

Robert A Schless commented on Aug 15, 2013

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Won't load.....On the server side everything appears to have loaded correctly. After restarting the server (and HTTP) several times the console shows that everything is installed, but only one task, relational.derby shows as resolved (the rest show "installed"). I've run my xpages app (as web app) and it can't find the extension library. The version I loaded was 8.5.3 0724. All the extensions show up fine in designer. Any suggestions for the server?

David Gilmore commented on May 14, 2013

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Easier than ever? Maybe in candy land. I get the dreaded "CWPPR0031W: The requested provisioning operation(s) completed with partial success." in DDE on a site update database that the server seems to like perfectly fine. Of course Google has zero hits about it except this post, the very one I used to do the installation. There are zero errors on a "clean and build" in DDE, zero errors on page load (it's just heinously brokt rendering, having zero widgets), and (other than rendering) nothing appears wrong until I click the button to create the datasets. Then I get "com.ibm.xsp.extlibx cannot be resolved" on the server console. I've resigned the database, restarted the server, restarted Notes. What's "easy" about it?

Randal W. Oulton commented on Mar 19, 2013

GAVE UP

I had to give up; the whole install seems rather flaky, and the stress and long hours of stressing over it were starting actually to physically impact my health. I appreciate the time that Paul Hannan took to try give directions; but I guess it's just the whole procedure that is problem-prone.

Siddhartha Rathi commented on Nov 20, 2012

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

I am trying to install extLib and following all your steps as mentioned above but when server is restarted I am not getting the message on server "HTTP JVM: CLFAD0330I: NSF Based plugins are being installed in the OSGi runtime. For more information please consult the log". And when I am trying to open the x-page application I am not getting the error message "[06FC:000A-03EC] 11/20/2012 05:46:55 PM HTTP JVM: com.ibm.xsp.webapp.FacesServlet$ExtendedServletException: com.ibm.xsp.FacesExceptionEx: Cannot find the library com.ibm.xsp.extlib.library, required by the application /XPages/redroom.nsf."

So can you please help me what may be going wrong here.

Thanks in Advance.

Siddhartha

Nick Goebels commented on Nov 11, 2012

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Followed the steps but I get an : "HTTP Server: Failed to load DSAPI module ndolextn" when restarting the http task

Clem Padin commented on Jul 27, 2012

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

I am also seeing "Cannot find the library com.ibm.xsp.extlib.library...". What's the fix for this?

Clem Padin commented on Jul 27, 2012

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Ian Benn commented on Jul 12, 2012

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

I ran the 'import Local Update site' and the import seemed to be successful. However, when I tried to open the XPagesExt.nsf database in the Lotus Notes client (8.5.3), I received the following error: "Cannot find the library com.ibm.xsp.extlib.library..."

The XPagesExt.nsf database needs the com.ibm.xsp.extlib.library file, but I don't see the com.ibm.xsp.extlib.library file anywhere in the 'All Features' or 'All Plugins' views in the 'Update Site' database.

Any feedback would be appreciated. Thanks in advance.

Randal W. Oulton commented on Mar 12, 2012

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Where do I get a file called UpdateSite.zip for 8.5.3 Domino server? The directions skip right on by that point.

Googling is bringing up signs that there might be an UpdateSite.zip file somewhere on the openntf site -- I haven't gone there to look for it, because this IBM page says *not* to use it:

http://infolib.lotus.com/resources/domino/8.5.3/doc/designer_up1/en_us/DominoDesignerXPagesExtensionLibrary.html#Admin

"However, an http://extlib.openntf.org install is not supported. Applying the upgrade pack to 8.5.3 is the recommended process unless experimental features are desired. "

Randal W. Oulton commented on Mar 8, 2012

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

"For the Extension Library this is located in the updateSite.zip file, "

Eh? What updateSite.zip file? Where do you get it from?

Robert F Harwood commented on Jan 12, 2012

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Checked comments 1/12

Stephen Medure commented on Dec 7, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

I created the update site, now I'm trying to use it to install the features in Designer and I get this message. What does it mean? I can access the updates site from a web browser and see the plugins listed. Why is the designer client having issues.

CWPPR0031W: The requested provisioning operation(s) completed with partial success.

Network connection problems encountered during search.

Unable to access "http://myserver.com/xpagesextlib.nsf/site.xml".

Error parsing site stream. [White spaces are required between publicId and systemId.]

White spaces are required between publicId and systemId.

Error parsing site stream. [White spaces are required between publicId and systemId.]

White spaces are required between publicId and systemId.

Mark Leusink commented on Nov 10, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

A tip:

I added the OSGI_HTTP_DYNAMIC_BUNDLES=UpdateSite.nsf to the notes.ini using the server's Configuration document. After restarting the server (a couple of times - it's just a test server) I got (OSGI) messages in the console about an invalid database replica id.

After some investigation I discovered that the parameter was added to the notes.ini, but the application path was lowercased. Since the server is running on Linux (CentOS) it couldn't find the application.

So: either directly edit the notes.ini or (if you do use a configuration document) use a lowercased application name.

Programmer ByDay commented on Nov 1, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

I just imported the new update site "8.5.3.20111027-1245" into my udpatesite,nsf. I now have many duplicate features listed in the updatesite nsf (both the "8.5.3.20111027-1245" and older "8.5.3.20111013-1854" versions appear). Is this ok? Should I disable the older duplicate features in the updatesite nsf or is it ok for both to be enabled? Thanks in advance.

LIST AFTER INSTALLING VERSION "8.5.3.20111013-1854"

Feature Version

Apache Wink Feature 1.1.2

Designer Extension Library Tooling Feature 8.5.3.20111013-1854

Domino Sample REST Service Feature 8.5.3.20111013-1854

Domino Wink Feature 8.5.3.20111013-1854

Domino Wink REST Service Feature 8.5.3.20111013-1854

Extended Components Library for XPages Extension Feature 8.5.3.20111013-1854

Extension library feature 8.5.3.20111013-1854

Extension library feature 8.5.2.201110020207NTF

Extension Library Relational Feature 8.5.2.201110020207NTF

%feature.name 8.5.3.201110020207NTF

%feature.name 8.5.3.201110020207NTF

LIST AFTER INSTALLING CURRENT VERSION "8.5.3.20111027-1245"

Feature Version

Apache Wink Feature 1.1.2

Designer Extension Library Tooling Feature 8.5.3.20111027-1245

Designer Extension Library Tooling Feature 8.5.3.20111013-1854

Domino Sample REST Service Feature 8.5.3.20111013-1854

Domino Wink Feature 8.5.3.20111027-1245

Domino Wink Feature 8.5.3.20111013-1854

Domino Wink REST Service Feature 8.5.3.20111027-1245

Domino Wink REST Service Feature 8.5.3.20111013-1854

Extended Components Library for XPages Extension Feature 8.5.3.20111027-1245

Extended Components Library for XPages Extension Feature 8.5.3.20111013-1854

Extension library feature 8.5.3.20111027-1245

Extension library feature 8.5.3.20111013-1854

Extension library feature 8.5.2.201110020207NTF

Extension Library Relational Feature 8.5.2.201110020207NTF

%feature.name 8.5.3.201110020207NTF

%feature.name 8.5.3.201110020207NTF

Paul S. Withers commented on Oct 30, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

If you get the object variable not set and Domino Designer is open, try closing Designer, closing Notes and restarting just Notes. God knows why, but it works. Thanks to Paul Calhoun for letting me know abut that

Jorgen PA Lonnborn commented on Oct 24, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Im trying to install using the above instructions.

When I click "Import Loca Update Site" and selecte the site.xml I immediately get this error message:

Object variable not set (#91) in:

dlgimportsite: click (line9)

Additional Info:

C:\Lotus\Ext\updateSiteOpenNTF\site.xml

Any idea what I do wrong?

Jorgen PA Lonnborn commented on Oct 24, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Im trying to install using the above instructions.

When I click "Import Loca Update Site" and selecte the site.xml I immediately get this error message:

Object variable not set (#91) in:

dlgimportsite: click (line9)

Additional Info:

C:\Lotus\Ext\updateSiteOpenNTF\site.xml

Any idea what I do wrong?

Leif Lagebrand commented on Oct 18, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Do I have to uninstall prevoius Ext.Lib files (copied to server) before I use this process?

Paul Hannan commented on Oct 17, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

@Danial,

Were both extlibs which you had loaded of the same version?

But, yes, you don't need to go near the file system with this method of deploying the Extlib.

p.

Daniel Lindskog commented on Oct 17, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

In the case of the ExtLib release this worked fine.

When I did the server command: tell http osgi ss com.ibm.xsp.extlib I could see all the new plugins loaded from the updatesite as well as the old ones from disk.

Just for clarity I removed the disk plugins and restarted the http and it seems to works great.

Thank you for this!

Paul Hannan commented on Oct 17, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

@Dwain, this is a Domino 853 feature as well.

@Sean, I should have been more clear on the ACL setting, I'll tidy that up. Though it's worth remembering here that regardless of what access level the user has in the ACL it's only names listed in the 'Sign or run unrestricted methods and operations' field of the server document who ultimately have the power to run the extlib on the server

Plus, I'll put in a extra clarification on the extracting the contents of the updateSite zip file too.

@Ulrich, you will see different features available with each Extension Library version - hopefully more as time goes on. And yes you will see some with the placeholder for feature names - %feature.name but this shouldn't be of concern to you as long as the functionality works at runtime. We've corrected this in the latest version of the ExtLib and I will use that to update the article.

Thank you all for your feedback.

p.

Ulrich Krause commented on Oct 16, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Followed the steps in this article but got a different result. I now have 5 documents under the Build category in the main view. And some of them only have a placeholder like %feature.name for the feature label and description. I used the latest release for ExtLib 8.5.3 from OpenNTF

Any idea, what went wrong? Tried several times. Always same result.

Ulrich Krause commented on Oct 16, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Followed the steps in this article but got a different result. I now have 5 documents under the Build category in the main view. And some of them only have a placeholder like %feature.name for the feature label and description. I used the latest release for ExtLib 8.5.3 from OpenNTF

Any idea, what went wrong? Tried several times. Always same result.

Ulrich Krause commented on Oct 16, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Followed the steps in this article but got a different result. I now have 5 documents under the Build category in the main view. And some of them only have a placeholder like %feature.name for the feature label and description. I used the latest release for ExtLib 8.5.3 from OpenNTF

Any idea, what went wrong? Tried several times. Always same result.

sean cull commented on Oct 16, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Note to those ( like me ) not familiar with plugins. When you upload site.xml you must do it from an folder that also contains the other elements of the zip that it came in e.g extract the contents of updateSite.zip to a folder and THEN upload site.xml. You do not get an error message if the files referenced inside site.xml cannot be found e.g.

sean cull commented on Oct 16, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Minor point but the article says "Everyone else has no access". The default setting on the template is anonymous = reader.

It might not be clear if everyone includes anonymous

Dwain A Wuerfel commented on Oct 14, 2011

Re: XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server

Is this only able to be accomplished using the new xWork server?