ShowTable of Contents
DISCLAIMER: IBM Lotus Notes Domino R8.5.2 is pre-release software so there is no guarantee that what is written below will be part of the final release.
Introduction
XPages in the Notes Client, Release 8.5.2, supports calling Java Agents to run locally on the Notes Client. Previously, only Agent.runOnServer() was supported where the NSF containing the XPages application and Java Agent were stored on a Domino Server.
In Release 8.5.2, XPages support for the Java Agent APIs is the following,
Client Type |
NSF Location |
Supported Agent API |
Agent.run() |
Agent.run(String noteID) |
Agent.runWithDocumentContext(Document doc) |
Agent.runWithDocumentContext(Document doc, String noteID) |
Agent.runOnServer() |
Agent.runOnServer(String noteID) |
Notes Client |
Local Notes Client |
Yes |
Yes |
Yes, new API for 8.5.2 |
Yes, new API for 8.5.2 |
Yes, runs agent on Notes Client |
Yes, runs agent on Notes Client |
Notes Client |
Domino Server |
Yes |
Yes |
Yes, new API for 8.5.2 |
Yes, new API for 8.5.2 |
Yes |
Yes |
Background
Figure 1 is a high level overview of the key components for XPages on the Notes Rich Client Platform (RCP). The Eclipse View/XUL Runner Browser are the components that presents an XPages application to the user in the Notes Client
Figure 1. XPages in the Notes Client Architecture
When a Java Agent is run from the Notes Client - for example, via the Actions menu, or from a button action in a 'classic' Notes applications - it runs in a JVM started by the Notes Client process - nlnotes.exe - and Java Agent security functions as it has always done.
XPages manages its own Java Security Manager. Since, XPages runs from the Notes Client notes2.exe Java process, a Java Agent agent run from XPages will be managed by the XPages Java Security Manager (since there can only be one Java Security Manager running at any one time).
When an XPages application is run, the XPages Java Security Manager is started. All Java security sensitive operations will go through this security manager. If the thread is a Java Agent thread, then the XPages security manager will create an instance of the Note Client Agent security manager and delegate to it, so that the Execution Security Alerts (ESA) will be the same as if the agent was run from the Action menu in the Notes Client.
V851 -v- V852
In Release 8.5.1, XPages support for the Java Agent APIs was the following,
Client Type |
NSF Location |
Supported Agent API |
Agent.run() |
Agent.run(String noteID) |
Agent.runOnServer() |
Agent.runOnServer(String noteID) |
Notes Client |
Local Notes Client |
No |
No |
No |
No |
Notes Client |
Domino Server |
No |
No |
Yes |
Yes |
In Release 8.5.2, XPages support for the Java Agent APIs is the following,
Client Type |
NSF Location |
Supported Agent API |
Agent.run() |
Agent.run(String noteID) |
Agent.runWithDocumentContext(Document doc) |
Agent.runWithDocumentContext(Document doc, String noteID) |
Agent.runOnServer() |
Agent.runOnServer(String noteID) |
Notes Client |
Local Notes Client |
Yes |
Yes |
Yes, new API for 8.5.2 |
Yes, new API for 8.5.2 |
Yes, runs agent on Notes Client |
Yes, runs agent on Notes Client |
Notes Client |
Domino Server |
Yes |
Yes |
Yes, new API for 8.5.2 |
Yes, new API for 8.5.2 |
Yes |
Yes |