KEMBAR78
What's New and Next in OpenNTF Domino API (ICON UK 2014) | PDF
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>jvmlibext 
•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 jvmlibext 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 
•pwithers@intec.co.uk 
•http://www.intec.co.uk/blog 
•@paulswithers 
•https://github.com/OpenNTF/ org.openntf.domino

What's New and Next in OpenNTF Domino API (ICON UK 2014)

  • 1.
    UKLUG 2012 –Cardiff, Wales 1 Presenter: Paul Withers Company: Intec Systems Ltd ICON UK 2014 What’s New And Next in OpenNTF Domino API
  • 2.
    UKLUG 2012 –Cardiff, Wales 2 Paul Withers XPages Developer since 2009 IBM Champion Author of XPages Extension Library Co-Developer of OpenNTF Domino API
  • 3.
    UKLUG 2012 –Cardiff, Wales 3 Agenda •Implementation Review •M4.5 and M5 Enhancements •Future Directions
  • 4.
    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>jvmlibext •Modified Update Site to deploy jar to server •Javadoc support was broken
  • 5.
    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
  • 6.
    UKLUG 2012 –Cardiff, Wales 6 Java Agents •Not really supported for agents • Plugin jar in jvmlibext breaks use in XPages •XOTS will replace this SO WHAT’S XOTS?
  • 7.
    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
  • 8.
    UKLUG 2012 –Cardiff, Wales 8 Enable Library for NSF Remember to add it to Xsp Properties
  • 9.
    UKLUG 2012 –Cardiff, Wales 9 Agenda •Implementation Review •M4.5 and M5 Enhancements •Future Directions
  • 10.
    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
  • 11.
    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
  • 12.
    UKLUG 2012 –Cardiff, Wales 12 Enum Example
  • 13.
    UKLUG 2012 –Cardiff, Wales 13 Enhancements – Database •Database.getMail() •Also Session.getMailDatabase() •Database.openMail()
  • 14.
    UKLUG 2012 –Cardiff, Wales 14 Serialization of Database Locations •Database.getApiPath() •Supported by Session.getDatabase(String)
  • 15.
    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
  • 16.
    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
  • 17.
    UKLUG 2012 –Cardiff, Wales 17 Serialization of Database Locations •Database.getMetaReplicaID() •Also supported by Session.getDatabase(String) •Also supports passing database Replica ID
  • 18.
    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
  • 19.
    UKLUG 2012 –Cardiff, Wales 19 Simple Text Two-Line Example
  • 20.
    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
  • 21.
    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
  • 22.
    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
  • 23.
    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
  • 24.
    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
  • 25.
    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
  • 26.
    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
  • 27.
    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
  • 28.
    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
  • 29.
    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
  • 30.
    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
  • 31.
    UKLUG 2012 –Cardiff, Wales 31 XOTS Builder
  • 32.
    UKLUG 2012 –Cardiff, Wales 32 Agenda •Implementation Review •M4.5 and M5 Enhancements •Future Directions
  • 33.
    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.
  • 34.
    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
  • 35.
    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
  • 36.
    UKLUG 2012 –Cardiff, Wales 36 XOTS •DominoSessionTypes •NAMED •Use this.setRunAs(String user) •NATIVE – run as server •MANUAL •NONE
  • 37.
    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
  • 38.
    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?
  • 39.
    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
  • 40.
    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
  • 41.
    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
  • 42.
    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?
  • 43.
    UKLUG 2012 –Cardiff, Wales 43 Get Involved! •Develop •Document •Add demos •Test •Use •Suggest features •Spread the word!
  • 44.
    UKLUG 2012 –Cardiff, Wales 44 Thank You •Paul Withers •pwithers@intec.co.uk •http://www.intec.co.uk/blog •@paulswithers •https://github.com/OpenNTF/ org.openntf.domino