Skip to content
Paul Withers edited this page May 29, 2013 · 4 revisions

Added features of M2 - Operational

org.openntf.domino.transactions

  • org.openntf.domino.Database.startTransaction() returns org.openntf.domino.transactions.DatabaseTransaction Indicates to the NSF that Document updates should be cached until the transaction is explicitly committed or rollbacked. This includes field changes as well as document deletions.

  • DatabaseTransaction.commit(); Calls .save() and .remove() on all transaction-cached Documents in the current NSF

  • DatabaseTransaction.rollback(); Reverts all changes to Documents within the transaction.

org.openntf.domino.graph

  • org.openntf.domino.graph.DominoGraph implements com.tinkerpop.blueprint.Graph, MetaGraph, TransactionalGraph
  • org.openntf.domino.graph.DominoElement implements com.tinkerpop.blueprint.Element
  • org.openntf.domino.graph.DominoVertex implements com.tinkerpop.blueprint.Vertex
  • org.openntf.domino.graph.DominoEdge implements com.tinkerpop.blueprint.Edge

org.openntf.domino.ext

  • All additional methods have been moved from the org.openntf.domino interfaces to org.openntf.domino.ext interfaces. This allows all new methods to quickly be identified. The change does not impact using the API.

org.openntf.domino

  • org.openntf.domino.Document.getItemValue(String name, Class<?> expectedType) Provides explicit type-conversion from NSF native storage API to Java type of your choice. For instance, rather than always returning a Vector of Doubles, you can call Document.getItemValues("foo", int[].class) and the stored doubles will be returned as an array of primitive ints.

org.openntf.domino.logging

  • DominoUtils has a handleException(Throwable t) method that uses the org.openntf.domino logger. This logs the error to the console and logs a stack trace to \data\IBM_TECHNICAL_SUPPORT folder to a file called org.openntf.log.n.m.txt where n and m are sequentially incremented to manage file sizes. It also logs to OpenLog.nsf on the server with full error message and stack trace. Finally it throws the error for any proprietary logging to handle. Note: currently from the API it's not possible to log out the XPage that the error occurred on.

org.openntf.domino.xsp XPages OSGi plugin

  • Add org.openntf.domino.xsp=godmode to your Notes.ini file to override implicit "session" and "database" variables with OpenNTF versions. This will cause Document and View data sources to also work with the OpenNTF implementation.

  • All extended methods for openntf.domino objects are visible in SSJS including typeahead in the editor.

Annotations

  • @Legacy Indicates a class or method that is a legacy approach and should be replaced with something more up to date.

  • @Incomplete Indicates a class or method that is still in progress.

Not yet operational

  • org.openntf.domino.big.BigNoteCollection For use with note collections that span across multiple NSFs

  • org.openntf.domino.schema.DatabaseSchema Document & Item type-enforcement and validation API. Will save schema information as a file resource as part of the database template. Allows for overloading Database.createDocument(String doctype) that returns a document pre-structured to match the schema. Puts simple validation at the API level so that it can be used by all higher-level processes (DOTS, Agents, XPages, CompApps, etc)

  • org.openntf.domino.thread.DominoChildThread Thread type allowing shared Notes Objects across threads via explicit locks. This is extremely dangerous, and requires thread joining to ensure correct auto-recycling threads. Use only if you'd like to contribute to fixing it, because it WILL crash on you.

Important fixes

  • Fixed a leak in DateTime handling to force recycle on temporary C++ objects when passed as arguments.
  • Fixed a race condition when iterating lots of Item vectors from Document.getItems()