Do you have to deploy plugins to the Notes Client? - xpages

I would like to know whether plugins (such as the OpenNTF Extension Library) need to be manually installed on any Notes Client that will be using an XPages in the Notes Client Application (XPiNC) that is dependent upon those plugins.
According to the Mastering XPages book, page 500 in the XPages in the Notes Client Chapter:
XULRunner will cache the usual resources used on the XPage but the Java classes still need to be loaded across the network for each new notes session
I understood this to mean that if there are plugins, such as the OpenNTF extension library, that they would be sent across to the Notes Client so that these dependencies would be resolved, allowing the user to use the application in the notes client, without worrying about having updating or not.
I have configured the UpdateSite.nsf on the server (8.5.3) for the dynamic loading of plugins when the HTTP server starts, this is working fine for the XPages being accessed through a web browser. However only clients that have had the 8.5.3 Upgrade pack applied (which includes the OpenNTF Ext Library), are able to access the application using the client.
It seems to me that it will be very cumbersome. The benefit of XPages would be gradual migration from the Client to Web, but to have to worry about plugin dependencies on everyones machine would be a backwards step?

Yes! You have to install extension lib plugins on clients for xpinc. You can use the update pack given by IBM or create a widget, put it in your widget catalog and then deploy it using policies or ask users to do it manually.
Stephen H Wissel has listed the steps to do this on his
blog. http://www.wissel.net/blog/d6plinks/SHWL-8GZM9A

You have to deploy the plugins to the client,
if you want to use the plugins in XPINC apps, as far as I know.

Related

Posting data from notes documents with java agent to PHP file

With Ibm notes I got a Java Agent which posts fields from 50.000 notes documents to a website which has a PHP file. It does a single post per document. Eventually this PHP file does some job on that documents.
After a few thousand documents my Notes crashes. In the log file I can't find anything. Can't Notes handle this?
You're probably missing at least one required call to the recycle() method of some of the objects you're using. See here.
And also consider switching to use the OpenNTF Domino API instead. (Actually, I think the github home for it is better for you to check out than the OpenNTF site.) One of the improvements it makes over the standard API from IBM is that it handles the recycling for you, so you won't have problems with running out of that pesky back-end storage allocated by the Notes C API underneath the Java layer.
Trying to make easier Lotus Notes development with Java, I started an Open Source project some years ago, http://riverframework.org.
It supports the native IBM Java libraries and OpenNTF Domino API. The framework handles the recycling too. Because of time, I couldn't keep working on it, but the last version was stable. I used it in real projects.
HTH,

XPAGES AND ONEUI REFERENCE

I would like to know if you can import the interface used for XPages (oneui) inside the application without the need to have to referencing the server or extend it.
Thank you
Since 8.5.3 OneUI has been delivered via an OSGi plugin on the server. Most modern XPages applications are being built using bootstrap look and feel instead, which is again in the OSGi plugin for XPages Extension Library on OpenNTF. IBM have also moved away from OneUI for IBM Verse and for responsive XPages have adopted bootstrap. I'm not aware of anyone who has tried to pull those into an NSF, and I would not advise it. You may hit Java security exceptions with some of the code, mapping between resources may not work, and there are an immense number of Java classes and other resources. And if you do hit any issues, you are unlikely to find much help to solve them.

How is your approach for creating your own set of controls aka own Extensions Library?

What is your approach for creating your own set of controls aka own Extensions Library? After a few years of Xpages development we have a huge set of controls that are general purpose for building UI, some web services etc. (Probably as most other developers.) When we start a new project now we have to copy the entire stuff from one database to new one which involves controls, jars, css, images, JAVA code ... and then you completely loose control to maintain some central version of this controls & codes, everything is scattered among several projects/databases and things get messy fast.
We have thought about creating our own extension library as described here
http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Master_Table_of_Contents_for_XPages_Extensibility_APIs_Developer_Guide but there is not enough documentation for this topic and the entire development process is quite complicated (at least seems to me. I tried two times based on docs above going through eclipse plugin project -> feature project -> update site and still having some bugs around)
What is your experience and approach for creating and maintaining shared Xpages controls in your Domino environment? Is there some hidden feature we miss here that can help us?
Take a look at the XSP Starter Kit on OpenNTF and the XPages SDK to setup an eclipse environment for plugin development. You'll also want Eclipse IDE for RCP and RAP Developers. Install the starter kit and SDK into eclipse and you should be all set.
The starter kit is a sample plugin with all kinds of examples of phase listeners, components, etc. Once you want to deploy your plugin, create an update site from within eclipse and use the Update Site NSF available on your server install to place your update site. Once that's done, you can replicate that NSF to any other servers that may need the plugin.
For more information about the starter kit, take a look at this slide deck. There is also a github project for the starter kit. Documentation for the XPages SDK can be found here. And a video for setting up the SDK is available on youtube. Lastly, here's the documentation for setting up the update site NSF.
While we haven't gotten to that yet in XPages, our model for regular Notes design elements is to have a central template that contains the elements that are shared, with those specific design elements marked to inherit from that template. Sometimes, a database inherits design elements from two different central templates.
That way, those centrally controlled design elements remain the same in all databases.
I would recommend looking at some example's on github for how they have library/components setup. One of the more simpler examples that has just a single component built into a Library is Steve Pridemore's App Layout Extension...https://github.com/DominoDev, Another good one is Nathan Freeman's Starterkit: https://github.com/the-ntf/xspstarterkit. Hopefully these will help you get the file structure down on which files you need and how they work.

Building website for domino server

I need to make a small website to be hosted at a domino server but as far as I understand, I couldn't use a simple .html file or .php, instead it works with some weird stuff like .nsf, right? Also, it isn't clear to me wich language is used to deploy webpages with domino server, and if there is a good book about it.
Starting with Lotus Domino 8.5.x you can create web applications using XPages. XPages "is based on web development languages and standards including JavaScript, Ajax, Java, the Dojo Toolkit, Server-side JavaScript and JavaServer Faces" (source: http://en.wikipedia.org/wiki/XPages).
If you are interested in learning more about XPages, the following book is very useful:
Mastering XPages: A Step-by-Step Guide to XPages Application Development and the XSP Language
There is also the "classic" way of creating web applications with Lotus Domino if using XPages is not an option. The following book provides a good overview of that method:
IBM Lotus Domino: Classic Web Application Development Techniques
You can use simple static html files but the beauty of Domino is that you can develop dynamically created web sites using the back end database processes.
If you want to do something with just html then drop your html files into the /domino/html folder and they will be served out.
If you want to do something more powerful start at http://www.xpages.info which is run by the Open Source community for Domino.
There are quite a few out of the box projects available such as Wikis, "Team Rooms", discussion forums, blogs and document libraries. Some of these are also packaged with the domino install. Some of these are content management systems with some of the same functionality as wordpress or Joomla and might work well for you.
Some examples : http://xpages.info/XPagesHome.nsf/Demos.xsp
As with any platform there are quirks and gotchas but it is a brilliant platform. Contact me if you need a better steer.
You could use the domino/html approach or you could utilize the new web development interface and environment in Domino, since 8.5, called XPages. It's a technology derived from JSP (Java Server Pages) using standard web methods and technologies such as Java, JavaScript, AJAX, DOJO, CSS working with predefined Custom Controls giving you the drag and drop approach to development.
Several book are on the market, one of them close to release:
XPages Portable Command Guide: A Compact Resource to XPages Application Development and the XSP Language
Mastering XPages: A Step-by-Step Guide to XPages Application Development and the XSP Language
XPages Extension Library: A Step-by-Step Guide to the Next Generation of XPages Components
For instructional videos, there's XPages.tv (Videos)
While a Domino server typically is used to host Notes application (.nsf files), you can use it to host raw HTML files. The default root for this is the domino\html directory.
The documentation on web server configuration has more details on this.
Configuring HTML, CGI, icon, and Java files for Web Site documents
The following tech note details how to run PHP on a Domino server, although Domino itself does not have PHP.
http://www-01.ibm.com/support/docview.wss?uid=swg21099845
There is also this article on how to create PHP for Domino.
http://www.ibm.com/developerworks/lotus/library/domino-php/
Host a static html file in a different place to domino directory
If you want to persist your static html files in a different place to domino\html then you can do this in the following way:
Configure a new WebSite for your domino server:
https://www.ibm.com/support/knowledgecenter/SSKTMJ_10.0.1/admin/conf_configuringhtmlcgiiconandjavafilesforwebsite_t.html
Copy your files to the specified folder on your server's disk.
Example:
Website:
File on domino server:
Open in browser:
With this approach I have deployed a complete angular single page application on a domino server.

Microsoft Lync Server integration as a portlet

I came up with an idea to integrate Lync Server as a Java portlet to Liferay environment. What I would like to have is people names, photos, presence information and contact points on a portlet which communicates the data from Lync server.
(With contact point I mean those direct Voip or IM communications integrations that I suppose belong to the Lync concept.)
I don't know if there exist any ready integrations and if not, what material could be found about APIs and stuff like that so that I could probably code one of my own.
Thanks for interest and tips already beforehand!
I'm no Liferay expert, but i'm guessing Web Based Portal - right? If so, then yes, you can do what you need to.
Are you running the Lync client on the machines? if not, then you'll need to build some server infrastructure.
First step would be to download and install the UCMA 3.0 SDK.
At the back end, you would need to build a UCMA application that logs on to your Lync environment - the process of building and deploying is fairly lengthy, but described well here
You'd also need to build in a web service layer, so you can expose methods over the web, e.g. GetContacts, etc. The methods behind your web service would need to call into the UCMA app to fetch the required information.
Then you'd just need to build the necessary html and javascript to call the web services.
There is a codeplex project that does some of this - at the very least, it would be a great starting point
The whole thing is a lot easier if you are running Lync on the client, and if Silverlight is an option.
You'd need to download the Lync SDK. This contains a bunch of Silverlight controls that allow the user to e.g. see contact details, see a contacts availability, click to call etc. It would then just be a case of creating a Silverlight app using the controls, and then wrapping this inside a portlet.
Edit: George Durzi and Michael Greenlee's book is great for getting started with this, whichever route you go down.

Resources