Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Getting Started with the OpenNTF Domino API


Published on

Do you use Java in your XPages applications? Want to have a better way to access Domino data? Over the last year, more and more developers have started using the OpenNTF Domino Java API. In this webinar, Paul Withers and Jesse Gallagher, part of the team of developers working on this open source software project, explain why you should be using the Domino API. Get a jumpstart into the Domino API and improve your XPages development experience!

Published in: Technology
  • Be the first to comment

Getting Started with the OpenNTF Domino API

  2. 2. Courtney Carter @Teamstudio Howard Greenberg @TLCCLTD Paul Della-Nebbia @PaulDN Jesse Gallagher @Gidgerby Paul Withers @PaulSWithers
  3. 3. Asking Questions Use the “Questions” pane to ask questions.
  4. 4. Teamstudio provides products that help organizations with customized business applications implement best practices, work more efficiently, and prepare for the future. AboutTeamstudio
  5. 5. Develop and manage your Notes applications faster, better, and more easily.
  7. 7. 1 #XPages Your Hosts Today: Howard Greenberg TLCC @TLCCLtd Getting Started with the OpenNTF Domino API Paul Della-Nebbia TLCC @PaulDN
  8. 8. TLCC Courses • The Leader in Notes and Domino Training since 1997 • Self Paced Distance Learning Courses – XPages, Development, and Administration • XPages from basic to advanced – Two Java courses – JavaScript course – XPages 2 course – Rapid Application Development • Free demo courses – Intro. To XPages Development 2
  9. 9. 3 • Spring into Savings on courses for: – Administrators – Developers – XPages – Java and JavaScript • For example – get both of TLCC’s Java for XPages courses • Usually $1,400, on sale for $999! •
  10. 10. TLCC Application Development Services 4 • Let us help with your development needs – Bootstrap – Java • Convert Notes Apps to mobile and the web! • Modernize old Domino web applications • Interface with backend data systems • Skills transfer
  11. 11. Upcoming and Recorded Webinars 5 View Previous Webinars (use url above) • May – Optimus XPages Part II – The Deep Dive with John Jardin • June - Expanding XPages with Bootstrap Plugins for Ultimate Usability with Johnny Oldenburger
  12. 12. Asking Questions – Q and A at the end 6 Use the Orange Arrow button to expand the GoToWebinar panel Then ask your questions in the Questions pane! We will answer your questions verbally at the end of the webinar
  13. 13. 7 #XPages Getting Started with the OpenNTF Domino API Paul Withers Intec @PaulSWithers Jesse Gallagher I Know Some Guys @Gidgerby
  14. 14. OPENNTF DOMINO API Also Known As ODA
  15. 15. MISSION Make you more productive Modernize, Standardize, Improve, Extend Solve all your problems Remove all boundaries
  16. 16. TEAM First commit by Tim Tripcony #codefortim Multiple Companies Several IBM Champions Many consumers
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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()
  21. 21. 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
  22. 22. 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
  23. 23. 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 ng-crossworlds-for-ibm-domino
  24. 24. XPAGES IMPLEMENTATION Install OSGi plugin to server Install OSGi plugin to Domino Designer Enable org.openntf.domino.xsp.XspLibrary in Xsp Properties
  25. 25. 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)
  26. 26. XSP PROPERTIES xsp.openlog.filepath=openLog.nsf xsp.openlog.displayError=true xsp.openlog.genericErrorMessage=Sorry, we hit an error xsp.openlog.debugLevel=2 xsp.openlog.suppressEventStack=false xsp.openlog.expireDate=30
  27. 27. 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
  28. 28. 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
  29. 29. STRUCTURE – CORE – 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
  30. 30. STRUCTURE – CORE / – new design note classes – email handling – classes for event listeners org.openntf.domino.exceptions – new Exception classes
  31. 31. 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
  32. 32. STRUCTURE – CORE org.openntf.domino.graph2.builtin – interface classes for built-in framed graphs – 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
  33. 33. 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
  34. 34. 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
  35. 35. 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 – classes for handling of Composite Data org.openntf.domino.schema – interfaces for database schema definition. Schema functionality is a work in progress
  36. 36. 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
  37. 37. 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 – XOTS event class
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. REFERENCES
  42. 42. Questions???? 8 Use the Orange Arrow button to expand the GoToWebinar panel Then ask your questions in the Questions panel! Remember, we will answer your questions verbally
  43. 43. #XPages @PaulSWithers @Gidgerby @TLCCLtd @Teamstudio @PaulDN Upcoming Events:  ES Lug in Madrid - May 4th  ICON US Virtual User Group – May 9 and 10th  DNUG in Hamburg, Germany – June 2nd  Social Connections, Toronto, Canada – June 6th and 7th  MWLUG, Austin, TX – August 17 to 19  ICON UK, London – Sept. 15th and 16th  Connect 2017 in San Francisco, CA – Feb. 20th to 23rd Question and Answer Time! 9 Teamstudio Questions? 978-712-0924 TLCC Questions? 888-241-8522 or 561-953-0095 Howard Greenberg Courtney CarterJesse Gallagher Paul Della-NebbiaPaul Withers Save on TLCC Training with the Spring Sale!