UKLUG 2012 – Cardiff, Wales 1
Presenter: Paul Withers Company: Intec Systems Ltd
ICON UK 2014 What’s New And Next in OpenNTF Domino API
UKLUG 2012 – Cardiff, Wales 2
Paul Withers
XPages Developer since 2009
IBM Champion
Author of XPages Extension Library
Co-Developer of OpenNTF Domino API
UKLUG 2012 – Cardiff, Wales 3
Agenda
• Implementation Review
• M4.5 and M5 Enhancements
• Future Directions
UKLUG 2012 – Cardiff, Wales 4
Implementation Last Year
• Upload org.openntf.domino.xsp update site into UpdateSite.nsf
• Save org.openntf.domino JAR to <domino>\jvm\lib\ext
• Modified Update Site to deploy jar to server
• Javadoc support was broken
UKLUG 2012 – Cardiff, Wales 5
Implementation In M5
• Upload server release update site into UpdateSite.nsf
• Install client release update site in DDE
• Includes source code
• Or use OpenNTF Essentials (currently M4.5)
• Javadoc support post-M4.5
UKLUG 2012 – Cardiff, Wales 6
Java Agents
• Not really supported for agents
• Plugin jar in jvm\lib\ext breaks use in
XPages
• XOTS will replace this
SO WHAT’S XOTS?
UKLUG 2012 – Cardiff, Wales 7
Still Designed for Domino 9.0.1
BUT
• 9.0.0 versions are available
• Some additional functionality was added to IBM Domino 9.0.1, just needs removing • NotesCalendarEntry
• NotesCalendarNotice
• AdministrationProcess.setEnableOutlookSupport
• Additional NotesCalendar method in FP2
UKLUG 2012 – Cardiff, Wales 8
Enable Library for NSF
Remember to add it to Xsp Properties
UKLUG 2012 – Cardiff, Wales 9
Agenda
• Implementation Review
• M4.5 and M5 Enhancements
• Future Directions
UKLUG 2012 – Cardiff, Wales 10
Enhancements
OpenLog enhancements
• xsp.openlog.suppressEventStack=true
• xsp.openlog.expireDate=30
• More SSJS error types caught
• openLogBean.addError(e, this)
automatically gets context
UKLUG 2012 – Cardiff, Wales 11
Enhancements – Database
ALL methods that take integers are overloaded to take enums
• FTSearch(String, int, FTSortOption, Set<FTSearchOption>)
• compactWithOptions(Set<CompactOption>)
Same for other classes
UKLUG 2012 – Cardiff, Wales 12
Enum Example
UKLUG 2012 – Cardiff, Wales 13
Enhancements – Database
• Database.getMail()
• Also Session.getMailDatabase()
• Database.openMail()
UKLUG 2012 – Cardiff, Wales 14
Serialization of Database Locations
• Database.getApiPath()
• Supported by Session.getDatabase(String)
UKLUG 2012 – Cardiff, Wales 15
Metaversal ID
• Document.getMetaversalID()
• ReplicaID + UNID
• Also Document.getMetaversalID(String)
• Get metaversal ID for the document on
a specific server
• ServerName + “!!” + ReplicaID + UNID
UKLUG 2012 – Cardiff, Wales 16
Serialization of Document Locations
Session.getDocumentByMetaversalID
• One or two parameters
• String – metaversal ID
• For single parameter, uses server in
metaversal ID or current server
• String – server name
• If using this parameter, metaversal ID
must not include server name
UKLUG 2012 – Cardiff, Wales 17
Serialization of Database Locations
• Database.getMetaReplicaID()
• Also supported by Session.getDatabase(String)
• Also supports passing database Replica
ID
UKLUG 2012 – Cardiff, Wales 18
DominoEmail
• In org.openntf.domino.email package
• Based on http://openntf.org/XSnippets.nsf/snippet.xsp?id=create-html-mails-in-ssjs-using-mime
UKLUG 2012 – Cardiff, Wales 19
Simple Text Two-Line Example
UKLUG 2012 – Cardiff, Wales 20
DominoEmail
• Setters and getters for building up contents
• EmailAttachment class for attachments / inline images
• Document attachment (addDocAttachment) not yet implemented
• Future directions intend to allow Embedded Experiences
UKLUG 2012 – Cardiff, Wales 21
Index Database
• Indexes
• All appropriate fields
• On all Forms
• In all Databases
• Takes a while to run!
• Stores index in the database
• Allows you to interrogate all text fields on server
UKLUG 2012 – Cardiff, Wales 22
Views
• isTimeSensitive
• Interrogate the $Index field for other info
• Index type
• Index refresh information
• Index discard information
• Hide empty categories
UKLUG 2012 – Cardiff, Wales 23
Recycling
• Complete overhaul of recycling since M4.5
• Thanks to Roland Praml and Nathan
• Quicker recycling
• Outstanding issue with removing temporary files when dealing with embedded objects
UKLUG 2012 – Cardiff, Wales 24
Formula Parsing
• Previously in org.openntf.domino.helpers.Formula
• Overhauled and extended by Roland Praml
• New plugin – org.openntf.domino.formula
• Better performance than session.evaluate
UKLUG 2012 – Cardiff, Wales 25
Pickers
• Fixed issues with NAPI getViewEntryByKeyWithOptions in M4.5
• OpenNTF Name Picker dataProvider
• Allows you to define return name format
• Additional Value Picker dataProviders
• Map Picker
• Collection Picker (Lists / Sets)
• Enum Picker
UKLUG 2012 – Cardiff, Wales 26
dataProvider Enhancements
• SearchStyle
• jumpTo – show all from first match
• restrictToSearch – show only options
matching search criteria
• SearchType
• startFrom but also ftSearch, and match
• Specify case sensitive or case insensitive
UKLUG 2012 – Cardiff, Wales 27
NSA
• New flag, org.openntf.domino.xsp=nsa
• Keep track of
• Applications
• Modules
• Sessions
• NSA.INSTANCE.getReport() for plain text report
UKLUG 2012 – Cardiff, Wales 28
Names
• Considerable work on Names by Devin Olsen and Nathan T Freeman
• Name.getGroups(String serverName)
added
• Name class now uses
org.openntf.arpa.NamePartsMap to
parse elements
UKLUG 2012 – Cardiff, Wales 29
XOTS
• XPages + DOTS = XOTS
• Threaded tasks in their own session
• Trigger and run
• Trigger from custom events
• Scheduled in future
• Code is in the NSF
• So you can reuse your XPages code in
situ
UKLUG 2012 – Cardiff, Wales 30
XOTS Builder
• Domino Designer extension by Keith Smillie
• Allows you to see all tasklets in database
• Allows you to enable / disable tasklets
• Help file embedded into Domino Designer Help
UKLUG 2012 – Cardiff, Wales 31
XOTS Builder
UKLUG 2012 – Cardiff, Wales 32
Agenda
• Implementation Review
• M4.5 and M5 Enhancements
• Future Directions
UKLUG 2012 – Cardiff, Wales 33
ODA development team’s statements regarding its plans, directions, and intent are
subject to change or withdrawal without notice at ODA development team’s sole
discretion.
Information regarding potential future products is intended to outline our general
product direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a commitment,
promise, or legal obligation to deliver any material, code or functionality. Information
about potential future products may not be incorporated into any contract. The
development, release, and timing of any future features or functionality described for
our products remains at our sole discretion.
UKLUG 2012 – Cardiff, Wales 34
XOTS
• Progress bar
• Easier access to session etc
• Scheduled tasklets
• RIP Amgr
• Persistence of tasklets
• Run the same tasklet every x minutes /
hours / days
• Knows what on previous runs
UKLUG 2012 – Cardiff, Wales 35
XOTS
• More work on contexts
• XSPBARE – “XPages-aware agent”
• XSPFORCED – run as if from browser
• Access to scopes
• XSPSCOPED to Application / Session
• XOTS + Listeners
UKLUG 2012 – Cardiff, Wales 36
XOTS
• DominoSessionTypes
• NAMED
• Use this.setRunAs(String user)
• NATIVE – run as server
• MANUAL
• NONE
UKLUG 2012 – Cardiff, Wales 37
Graph Databases Extended
• Current implementation in Index database
• See session from MWLUG
• Lots of interest at MWLUG
• Better for Big Data
• Query performance outstrips RDBMS
• Framed, shared graphs coming soon
UKLUG 2012 – Cardiff, Wales 38
Classes for ALL Design Elements
• XPages and Custom Controls done
• Consistent approach
• E.g. jar, XPage, Custom Control, Xsp Properties
• Include xsp-config.xml in Custom Control class?
• Make properties like view index flags read-write?
UKLUG 2012 – Cardiff, Wales 39
NsfDataStructs
• Classes already in release, but not currently used
• NSFDatabase, DXLDatabase
• NSFNote, DXLNote
• Structs, Structs/cd
• Intended to better deal with:
• DXL documents
• Composite Data (CD) information
UKLUG 2012 – Cardiff, Wales 40
NSFDataStructs
• Access e.g. $REF-style fields
• Access Seq Num
• Rich Text manipulation
• Making “pseudo NSFs” from DXL files / folders of Note DXLs / ODPs
• Better compatibility with non-NSF databases
• Potentially accessing C API directly
UKLUG 2012 – Cardiff, Wales 41
3rd Party Libraries
• The following are under investigation
• Google Guava already being used
• Javolution
• Speed, e.g. javolution.util.FastCollection
• Struct and Union classes for direct
interoperability with C/C++ applications
• OSGi compliant
• Lucene
UKLUG 2012 – Cardiff, Wales 42
Domino Admin
• Let’s use the API to make admins’ lives easier
• Interact with Domino Directory configuration
• Long term
• XPages Admin Client?
UKLUG 2012 – Cardiff, Wales 43
Get Involved!
• Develop
• Document
• Add demos
• Test
• Use
• Suggest features
• Spread the word!
UKLUG 2012 – Cardiff, Wales 44
Thank You
• Paul Withers
• http://www.intec.co.uk/blog
• @paulswithers
• https://github.com/OpenNTF/ org.openntf.domino
Top Related