SlideShare ist ein Scribd-Unternehmen logo
1 von 28
OPENNTF DOMINO
API
Also Known As ODA
MISSION
Make you more productive
Modernize, Standardize, Improve, Extend
Solve all your problems
Remove all boundaries
TEAM
First commit by Tim Tripcony #codefortim
Multiple Companies
Several IBM Champions
Many consumers
WHY WE STARTED
DateTime objects (Nathan T Freeman’s initial comment)
Out-of-date classes (Vectors)
Out-of-date iteration rules (while loops)
Lack of in-context documentation
Unhelpful parameter names
Avoid recycling
Avoid requirement to handle NotesExceptions
Inbuilt error logging (XPages OpenLog Logger)
Auto-boxing of field data types
Use from SSJS or Java
WHERE WE WENT NEXT
Transactional Processing
Only save if all related documents can be
updated
Sync Helper
Push fields and document-centric formulas to
related documents
MIME Bean
Save Java objects in any field and auto-
handle field limits
WHERE WE WENT NEXT
Event Listeners
Trigger code based on events, e.g. document
save
Email Helper
Easy email creation
Document Scanner
Index document fields
Index Database
Index a whole server
WHERE WE WENT NEXT
Document Sorter
Sort document collections on the fly
Api Path / MetaReplica ID / Mertaversal ID
Serialize database / document locations for
rapid access
At Formula Parser
Better performance than session.evaluate()
WHERE WE WENT NEXT
Better Name Handling
Improved Recycling Performance
Tinkerpop Graph Implementation
Graphs database structure stored in Domino
Framed graphs for quicker setup
Built-in graph classes – Likes, Rates, Task
Proxy Vertexes for e.g. Person documents
WHERE WE WENT NEXT
Multi-threaded processing
Enums throughout
E.g. FTSearch(String, int, FTSortOption,
Set<FTSearchOption>)
New Picker DataProviders
MapPicker, CollectionPicker, NamePicker
XOTS
Scheduled tasklets
Code in NSF, reuse existing XPages code
NSF Data handling via Java
CROSSWORLDS
Native Domino access from WAS Liberty
Potential to be used from other J2EE servers
Code using your preferred web application
language
Access Domino data using ODA APIs
Develop using Java 7 / 8
See
http://www.slideshare.net/DanieleVistalli/introduci
ng-crossworlds-for-ibm-domino
XPAGES IMPLEMENTATION
Install OSGi plugin to server
Install OSGi plugin to Domino Designer
Enable org.openntf.domino.xsp.XspLibrary in Xsp
Properties
XSP PROPERTIES
org.openntf.domino=
godmode: session and database global
objects replaced by org.openntf.domino
versions
marcel: makes the API MIME-friendly
raid: run in debug mode
khan: implement fixes, like appendItemValue()
nsa: create report of applications, modules,
sessions (experimental)
XSP PROPERTIES
xsp.openlog.filepath=openLog.nsf
xsp.openlog.displayError=true
xsp.openlog.genericErrorMessage=Sorry, we hit an
error
xsp.openlog.email=myEmail@myCompany.com
xsp.openlog.debugLevel=2
xsp.openlog.suppressEventStack=false
xsp.openlog.expireDate=30
STRUCTURE
domino – parent project
externals – 3rd party code included
core – org.openntf.domino, main core Domino
code
formula – at formula parser code
xsp – XPages-related code
STRUCTURE – EXTERNALS
guava – Google Guava
javassist – for Java byte-code manipulation
javolution – for high-performance Java and data
structs
jsr305 – annotations for software defect detection
rxjava – reactive extensions for the JVM
tinkerpop – JDBC for graph database
STRUCTURE – CORE
org.openntf.arpa – Name handling
org.openntf.calendars – calendar ranges / multi-
value calendar objects
org.openntf.domino – core classes
org.openntf.domino.annotations – @Annotations
org.openntf.domino.big /
org.openntf.domino.big.impl – prototypes and
multi-NSF solutions
STRUCTURE – CORE
org.openntf.domino.design /
org.openntf.domino.design.impl – new design
note classes
org.openntf.domino.email – email handling
org.openntf.domino.events – classes for event
listeners
org.openntf.domino.exceptions – new Exception
classes
STRUCTURE – CORE
org.openntf.domino.ext – extensions to core
domino classes
org.openntf.domino.graph – deprecated, first-
generation graph database classes
org.openntf.domino.graph2 – graph interface
classes
org.openntf.domino.graph2.annotations –
@Annotations for framed graphs
STRUCTURE – CORE
org.openntf.domino.graph2.builtin – interface
classes for built-in framed graphs
org.openntf.domino.graph2.builtin.social –
implementation classes for social built-in framed
graphs
org.openntf.domino.graph2.workflow – interface
classes for built-in workflow framed graphs
org.openntf.domino.graph2.workflow.impl –
implementation classes for workflow built framed
graphs
STRUCTURE – CORE
org.openntf.domino.graph2.exception –
exception classes for graph implementation
org.openntf.domino.graph2.impl – core graph
implementation classes
org.openntf.domino.helpers – miscellaneous
helper classes
org.openntf.domino.i18n – internationalization
classes
STRUCTURE – CORE
org.openntf.domino.impl – implementations of
core domino classes and extensions
org.openntf.domino.iterators – iterator classes to
avoid Domino-specific iterations
org.openntf.domino.junit – junit testing classes
org.openntf.domino.nsfdata – interface classes for
Domino data-handling
org.openntf.domino.nsfdata.impldxl – classes for
Domino data-handling via DXL
STRUCTURE – CORE
org.openntf.domino.nsfdata.impldxl.item – classes
for handling of Domino field-level data via DXL
org.openntf.domino.nsfdata.structs – classes for
handling of C structures
org.openntf.domino.nsfdata.structs.cd – classes for
handling of Composite Data
org.openntf.domino.schema – interfaces for
database schema definition. Schema functionality
is a work in progress
STRUCTURE – CORE
org.openntf.domino.schema.exceptions –
exception classes for schemas
org.openntf.domino.schema.impl –
implementations of schema classes
org.openntf.domino.schema.types – classes for field
/ data type schemas
org.openntf.domino.session – Session factory classes
org.openntf.domino.thread – multi-thread handling
STRUCTURE – CORE
org.openntf.domino.transactions – classes for
transactional processing
org.openntf.domino.types – various generic classes
org.openntf.domino.utils – various utility classes
org.openntf.domino.utils.xml – various XML-
processing classes
org.openntf.domino.xots – XOTS-related classes
org.openntf.domino.xots.events – XOTS event class
STRUCTURE – XSP
org.openntf.domino.xsp – generic classes
org.openntf.domino.xsp.adapter – factories and
other extensions
org.openntf.domino.xsp.components – adaptive
components
org.openntf.domino.xsp.config – xsp-related
config
org.openntf.domino.xsp.formula – SSJS access to
formulas
STRUCTURE – XSP
org.openntf.domino.xsp.helpers – various helper
classes
org.openntf.domino.xsp.junit – XPages junit runner
org.openntf.domino.xsp.junit.test – XPages junit
tests
org.openntf.domino.xsp.model – model-level
classes
org.openntf.domino.xsp.msg – message-handling
classes
STRUCTURE – XSP
org.openntf.domino.xsp.readers – LogReader class
org.openntf.domino.xsp.script – SSJS classes
org.openntf.domino.xsp.session – XPages Session
factory classes
org.openntf.domino.xsp.xots – XPages XOTS
classes
REFERENCES
https://github.com/OpenNTF/org.openntf.domino

Weitere ähnliche Inhalte

Was ist angesagt?

OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentPaul Withers
 
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioAncient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioCristopher Ewing
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1eleksdev
 
A Taste of Pharo 7.0
A Taste of Pharo 7.0A Taste of Pharo 7.0
A Taste of Pharo 7.0ESUG
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Ryan Cuprak
 
Utilizing the open ntf domino api
Utilizing the open ntf domino apiUtilizing the open ntf domino api
Utilizing the open ntf domino apiOliver Busse
 
Professional Help for PowerShell Modules
Professional Help for PowerShell ModulesProfessional Help for PowerShell Modules
Professional Help for PowerShell ModulesJune Blender
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using SwiftDiego Freniche Brito
 
Functional Programming for Busy Object Oriented Programmers
Functional Programming for Busy Object Oriented ProgrammersFunctional Programming for Busy Object Oriented Programmers
Functional Programming for Busy Object Oriented ProgrammersDiego Freniche Brito
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsSadayuki Furuhashi
 
C++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroC++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroMohammad Shaker
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidMatthew Johnson
 
The Parenscript Common Lisp to JavaScript compiler
The Parenscript Common Lisp to JavaScript compilerThe Parenscript Common Lisp to JavaScript compiler
The Parenscript Common Lisp to JavaScript compilerVladimir Sedach
 
Powershell Training
Powershell TrainingPowershell Training
Powershell TrainingFahad Noaman
 
PyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web ApplicationsPyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web ApplicationsGraham Dumpleton
 
Build, logging, and unit test tools
Build, logging, and unit test toolsBuild, logging, and unit test tools
Build, logging, and unit test toolsAllan Huang
 
Javascript TDD with Jasmine, Karma, and Gulp
Javascript TDD with Jasmine, Karma, and GulpJavascript TDD with Jasmine, Karma, and Gulp
Javascript TDD with Jasmine, Karma, and GulpAll Things Open
 

Was ist angesagt? (20)

OpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino DevelopmentOpenNTF Domino API (ODA): Super-Charging Domino Development
OpenNTF Domino API (ODA): Super-Charging Domino Development
 
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radioAncient To Modern: Upgrading nearly a decade of Plone in public radio
Ancient To Modern: Upgrading nearly a decade of Plone in public radio
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
 
XNA L01–Introduction
XNA L01–IntroductionXNA L01–Introduction
XNA L01–Introduction
 
A Taste of Pharo 7.0
A Taste of Pharo 7.0A Taste of Pharo 7.0
A Taste of Pharo 7.0
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)Exploring Java Heap Dumps (Oracle Code One 2018)
Exploring Java Heap Dumps (Oracle Code One 2018)
 
Utilizing the open ntf domino api
Utilizing the open ntf domino apiUtilizing the open ntf domino api
Utilizing the open ntf domino api
 
Professional Help for PowerShell Modules
Professional Help for PowerShell ModulesProfessional Help for PowerShell Modules
Professional Help for PowerShell Modules
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
 
Functional Programming for Busy Object Oriented Programmers
Functional Programming for Busy Object Oriented ProgrammersFunctional Programming for Busy Object Oriented Programmers
Functional Programming for Busy Object Oriented Programmers
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGems
 
Sql killedserver
Sql killedserverSql killedserver
Sql killedserver
 
C++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroC++ Windows Forms L01 - Intro
C++ Windows Forms L01 - Intro
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue Kid
 
The Parenscript Common Lisp to JavaScript compiler
The Parenscript Common Lisp to JavaScript compilerThe Parenscript Common Lisp to JavaScript compiler
The Parenscript Common Lisp to JavaScript compiler
 
Powershell Training
Powershell TrainingPowershell Training
Powershell Training
 
PyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web ApplicationsPyCon AU 2012 - Debugging Live Python Web Applications
PyCon AU 2012 - Debugging Live Python Web Applications
 
Get to Know AtoM's Codebase
Get to Know AtoM's CodebaseGet to Know AtoM's Codebase
Get to Know AtoM's Codebase
 
Build, logging, and unit test tools
Build, logging, and unit test toolsBuild, logging, and unit test tools
Build, logging, and unit test tools
 
Javascript TDD with Jasmine, Karma, and Gulp
Javascript TDD with Jasmine, Karma, and GulpJavascript TDD with Jasmine, Karma, and Gulp
Javascript TDD with Jasmine, Karma, and Gulp
 

Ähnlich wie OPENNTF DOMINO API: Modernize, Standardize, Improve, Extend Domino

Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APITeamstudio
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller ColumnsJonathan Fine
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Matthew McCullough
 
epicenter2010 Open Xml
epicenter2010   Open Xmlepicenter2010   Open Xml
epicenter2010 Open XmlCraig Murphy
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersRutenis Turcinas
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial BasicsLuca Garulli
 
.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep JoshiSpiffy
 
java basic for begginers
java basic for begginersjava basic for begginers
java basic for begginersdivaskrgupta007
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterHaehnchen
 
Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...IndicThreads
 
Slot02 concurrency1
Slot02 concurrency1Slot02 concurrency1
Slot02 concurrency1Viên Mai
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfonyFrancois Zaninotto
 
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming APIFlink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming APIFlink Forward
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules RestructuredDoiT International
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructuredAmi Mahloof
 
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)Antonio Peric-Mazar
 
Using and Extending Memory Analyzer into Uncharted Waters
Using and Extending Memory Analyzer into Uncharted WatersUsing and Extending Memory Analyzer into Uncharted Waters
Using and Extending Memory Analyzer into Uncharted WatersVladimir Pavlov
 
Java history, versions, types of errors and exception, quiz
Java history, versions, types of errors and exception, quiz Java history, versions, types of errors and exception, quiz
Java history, versions, types of errors and exception, quiz SAurabh PRajapati
 
Building scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftBuilding scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftTalentica Software
 

Ähnlich wie OPENNTF DOMINO API: Modernize, Standardize, Improve, Extend Domino (20)

Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino API
 
JavaScript Miller Columns
JavaScript Miller ColumnsJavaScript Miller Columns
JavaScript Miller Columns
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2
 
epicenter2010 Open Xml
epicenter2010   Open Xmlepicenter2010   Open Xml
epicenter2010 Open Xml
 
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack DevelopersTypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack Developers
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial Basics
 
.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi
 
java basic for begginers
java basic for begginersjava basic for begginers
java basic for begginers
 
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years laterSymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
SymfonyCon Berlin 2016 - Symfony Plugin for PhpStorm - 3 years later
 
Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...
 
Slot02 concurrency1
Slot02 concurrency1Slot02 concurrency1
Slot02 concurrency1
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfony
 
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming APIFlink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
 
Lotus Domino 8.5
Lotus Domino 8.5Lotus Domino 8.5
Lotus Domino 8.5
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
Workshop: Symfony2 Intruduction: (Controller, Routing, Model)
 
Using and Extending Memory Analyzer into Uncharted Waters
Using and Extending Memory Analyzer into Uncharted WatersUsing and Extending Memory Analyzer into Uncharted Waters
Using and Extending Memory Analyzer into Uncharted Waters
 
Java history, versions, types of errors and exception, quiz
Java history, versions, types of errors and exception, quiz Java history, versions, types of errors and exception, quiz
Java history, versions, types of errors and exception, quiz
 
Building scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thriftBuilding scalable and language independent java services using apache thrift
Building scalable and language independent java services using apache thrift
 

Mehr von Paul Withers

Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedEngage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedPaul Withers
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Paul Withers
 
Engage 2019: AI What Is It Good For
Engage 2019: AI What Is It Good ForEngage 2019: AI What Is It Good For
Engage 2019: AI What Is It Good ForPaul Withers
 
Social Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourceSocial Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourcePaul Withers
 
ICONUK 2018 - Do You Wanna Build a Chatbot
ICONUK 2018 - Do You Wanna Build a ChatbotICONUK 2018 - Do You Wanna Build a Chatbot
ICONUK 2018 - Do You Wanna Build a ChatbotPaul Withers
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassPaul Withers
 
IBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKIBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKPaul Withers
 
AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...
AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...
AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...Paul Withers
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoPaul Withers
 
ICON UK 2015 - ODA and CrossWorlds
ICON UK 2015 - ODA and CrossWorldsICON UK 2015 - ODA and CrossWorlds
ICON UK 2015 - ODA and CrossWorldsPaul Withers
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...Paul Withers
 
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and ScalabilityIBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and ScalabilityPaul Withers
 
What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)Paul Withers
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...Paul Withers
 
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenIBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenPaul Withers
 
Embracing the power of the notes client
Embracing the power of the notes clientEmbracing the power of the notes client
Embracing the power of the notes clientPaul Withers
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino DesignerPaul Withers
 
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPagesBP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPagesPaul Withers
 

Mehr von Paul Withers (20)

Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedEngage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-Red
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 
Engage 2019: AI What Is It Good For
Engage 2019: AI What Is It Good ForEngage 2019: AI What Is It Good For
Engage 2019: AI What Is It Good For
 
Social Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open SourceSocial Connections 14 - ICS Integration with Node-RED and Open Source
Social Connections 14 - ICS Integration with Node-RED and Open Source
 
ICONUK 2018 - Do You Wanna Build a Chatbot
ICONUK 2018 - Do You Wanna Build a ChatbotICONUK 2018 - Do You Wanna Build a Chatbot
ICONUK 2018 - Do You Wanna Build a Chatbot
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
 
IBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKIBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDK
 
GraphQL 101
GraphQL 101GraphQL 101
GraphQL 101
 
GraphQL 101
GraphQL 101GraphQL 101
GraphQL 101
 
AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...
AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...
AD1279 "Marty, You're Not Thinking Fourth Dimensionally" - Troubleshooting XP...
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
 
ICON UK 2015 - ODA and CrossWorlds
ICON UK 2015 - ODA and CrossWorldsICON UK 2015 - ODA and CrossWorlds
ICON UK 2015 - ODA and CrossWorlds
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
 
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and ScalabilityIBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
 
What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)What's New and Next in OpenNTF Domino API (ICON UK 2014)
What's New and Next in OpenNTF Domino API (ICON UK 2014)
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
 
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenIBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
 
Embracing the power of the notes client
Embracing the power of the notes clientEmbracing the power of the notes client
Embracing the power of the notes client
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino Designer
 
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPagesBP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
BP206 It's Not Herculean: 12 Tasks Made Easier with IBM Domino XPages
 

Kürzlich hochgeladen

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

OPENNTF DOMINO API: Modernize, Standardize, Improve, Extend Domino

  • 2. MISSION Make you more productive Modernize, Standardize, Improve, Extend Solve all your problems Remove all boundaries
  • 3. TEAM First commit by Tim Tripcony #codefortim Multiple Companies Several IBM Champions Many consumers
  • 4. WHY WE STARTED DateTime objects (Nathan T Freeman’s initial comment) Out-of-date classes (Vectors) Out-of-date iteration rules (while loops) Lack of in-context documentation Unhelpful parameter names Avoid recycling Avoid requirement to handle NotesExceptions Inbuilt error logging (XPages OpenLog Logger) Auto-boxing of field data types Use from SSJS or Java
  • 5. WHERE WE WENT NEXT Transactional Processing Only save if all related documents can be updated Sync Helper Push fields and document-centric formulas to related documents MIME Bean Save Java objects in any field and auto- handle field limits
  • 6. WHERE WE WENT NEXT Event Listeners Trigger code based on events, e.g. document save Email Helper Easy email creation Document Scanner Index document fields Index Database Index a whole server
  • 7. WHERE WE WENT NEXT Document Sorter Sort document collections on the fly Api Path / MetaReplica ID / Mertaversal ID Serialize database / document locations for rapid access At Formula Parser Better performance than session.evaluate()
  • 8. WHERE WE WENT NEXT Better Name Handling Improved Recycling Performance Tinkerpop Graph Implementation Graphs database structure stored in Domino Framed graphs for quicker setup Built-in graph classes – Likes, Rates, Task Proxy Vertexes for e.g. Person documents
  • 9. WHERE WE WENT NEXT Multi-threaded processing Enums throughout E.g. FTSearch(String, int, FTSortOption, Set<FTSearchOption>) New Picker DataProviders MapPicker, CollectionPicker, NamePicker XOTS Scheduled tasklets Code in NSF, reuse existing XPages code NSF Data handling via Java
  • 10. CROSSWORLDS Native Domino access from WAS Liberty Potential to be used from other J2EE servers Code using your preferred web application language Access Domino data using ODA APIs Develop using Java 7 / 8 See http://www.slideshare.net/DanieleVistalli/introduci ng-crossworlds-for-ibm-domino
  • 11. XPAGES IMPLEMENTATION Install OSGi plugin to server Install OSGi plugin to Domino Designer Enable org.openntf.domino.xsp.XspLibrary in Xsp Properties
  • 12. XSP PROPERTIES org.openntf.domino= godmode: session and database global objects replaced by org.openntf.domino versions marcel: makes the API MIME-friendly raid: run in debug mode khan: implement fixes, like appendItemValue() nsa: create report of applications, modules, sessions (experimental)
  • 13. XSP PROPERTIES xsp.openlog.filepath=openLog.nsf xsp.openlog.displayError=true xsp.openlog.genericErrorMessage=Sorry, we hit an error xsp.openlog.email=myEmail@myCompany.com xsp.openlog.debugLevel=2 xsp.openlog.suppressEventStack=false xsp.openlog.expireDate=30
  • 14. STRUCTURE domino – parent project externals – 3rd party code included core – org.openntf.domino, main core Domino code formula – at formula parser code xsp – XPages-related code
  • 15. STRUCTURE – EXTERNALS guava – Google Guava javassist – for Java byte-code manipulation javolution – for high-performance Java and data structs jsr305 – annotations for software defect detection rxjava – reactive extensions for the JVM tinkerpop – JDBC for graph database
  • 16. STRUCTURE – CORE org.openntf.arpa – Name handling org.openntf.calendars – calendar ranges / multi- value calendar objects org.openntf.domino – core classes org.openntf.domino.annotations – @Annotations org.openntf.domino.big / org.openntf.domino.big.impl – prototypes and multi-NSF solutions
  • 17. STRUCTURE – CORE org.openntf.domino.design / org.openntf.domino.design.impl – new design note classes org.openntf.domino.email – email handling org.openntf.domino.events – classes for event listeners org.openntf.domino.exceptions – new Exception classes
  • 18. STRUCTURE – CORE org.openntf.domino.ext – extensions to core domino classes org.openntf.domino.graph – deprecated, first- generation graph database classes org.openntf.domino.graph2 – graph interface classes org.openntf.domino.graph2.annotations – @Annotations for framed graphs
  • 19. STRUCTURE – CORE org.openntf.domino.graph2.builtin – interface classes for built-in framed graphs org.openntf.domino.graph2.builtin.social – implementation classes for social built-in framed graphs org.openntf.domino.graph2.workflow – interface classes for built-in workflow framed graphs org.openntf.domino.graph2.workflow.impl – implementation classes for workflow built framed graphs
  • 20. STRUCTURE – CORE org.openntf.domino.graph2.exception – exception classes for graph implementation org.openntf.domino.graph2.impl – core graph implementation classes org.openntf.domino.helpers – miscellaneous helper classes org.openntf.domino.i18n – internationalization classes
  • 21. STRUCTURE – CORE org.openntf.domino.impl – implementations of core domino classes and extensions org.openntf.domino.iterators – iterator classes to avoid Domino-specific iterations org.openntf.domino.junit – junit testing classes org.openntf.domino.nsfdata – interface classes for Domino data-handling org.openntf.domino.nsfdata.impldxl – classes for Domino data-handling via DXL
  • 22. STRUCTURE – CORE org.openntf.domino.nsfdata.impldxl.item – classes for handling of Domino field-level data via DXL org.openntf.domino.nsfdata.structs – classes for handling of C structures org.openntf.domino.nsfdata.structs.cd – classes for handling of Composite Data org.openntf.domino.schema – interfaces for database schema definition. Schema functionality is a work in progress
  • 23. STRUCTURE – CORE org.openntf.domino.schema.exceptions – exception classes for schemas org.openntf.domino.schema.impl – implementations of schema classes org.openntf.domino.schema.types – classes for field / data type schemas org.openntf.domino.session – Session factory classes org.openntf.domino.thread – multi-thread handling
  • 24. STRUCTURE – CORE org.openntf.domino.transactions – classes for transactional processing org.openntf.domino.types – various generic classes org.openntf.domino.utils – various utility classes org.openntf.domino.utils.xml – various XML- processing classes org.openntf.domino.xots – XOTS-related classes org.openntf.domino.xots.events – XOTS event class
  • 25. STRUCTURE – XSP org.openntf.domino.xsp – generic classes org.openntf.domino.xsp.adapter – factories and other extensions org.openntf.domino.xsp.components – adaptive components org.openntf.domino.xsp.config – xsp-related config org.openntf.domino.xsp.formula – SSJS access to formulas
  • 26. STRUCTURE – XSP org.openntf.domino.xsp.helpers – various helper classes org.openntf.domino.xsp.junit – XPages junit runner org.openntf.domino.xsp.junit.test – XPages junit tests org.openntf.domino.xsp.model – model-level classes org.openntf.domino.xsp.msg – message-handling classes
  • 27. STRUCTURE – XSP org.openntf.domino.xsp.readers – LogReader class org.openntf.domino.xsp.script – SSJS classes org.openntf.domino.xsp.session – XPages Session factory classes org.openntf.domino.xsp.xots – XPages XOTS classes