Domino JNA for XPages

@klehmann klehmann released this May 16, 2018 · 25 commits to master since this release

  • Added APIs for document locking to NotesNote (23248d5)
  • New API NotesItem.setSaveToDisk(boolean) (0a20186)
  • New method NotesNote.check() to check NotesNote item integrity (d3e5f7b)
  • Added support to execute formula code without context note (d1216fa)
  • Added NotesDateRange class (e21b795, 3297608)
  • NotesDateRange and NotesTimeDate can now be used as view lookup key (6537560)
  • Added methods to get NotesTimeDate for date/time values of documents and view entries instead of Java Calendar (373c3c1)
  • Bugfixing and improvements to data sync utility classes and sample implementations for SQLite (document readers are now stored in a separate SQL table)
  • Bugfix in method SetUtil.and(Set... ids); old implementation only merged the first two sets (7184059)
  • Breaking change: renamed method IDUtils.getCurrentUsername() to IDUtils.getIdUsername() (2ccefc0)
  • Performance and memory improvements (e.g. reduced locking when decoding strings in multiple threads)

Domino JNA for XPages

@klehmann klehmann released this Mar 11, 2018 · 63 commits to master since this release

  • New names list lookup functions for remote servers d5173bd
  • New API to compile LotusScript in a NotesNote b2f9b7e
  • Performance improvement for NSF search (reading callback parameters for SEARCH_MATCH structure directly from memory instead of via JNA) e0e7125
  • Performance improvement for innard-NotesTimeDate conversion, now using our own implementation that is not based on the C API
  • Now using ICU4J for String conversion to/from LMBCS, improves performance (less JNA overhead) and fixes a bug where multibyte sequences did not get properly decoded in some cases 3245e2d
  • small breaking changes in NSF search callback and ISyncTarget methods

Domino JNA for XPages

@klehmann klehmann released this Feb 10, 2018 · 109 commits to master since this release

  • Fixed gpf server crash on Linux/64 decoding large non-ascii LMBCS strings

Domino JNA for XPages

@klehmann klehmann released this Feb 3, 2018 · 114 commits to master since this release

  • Fixed multithreading issues in LMBCS-Java-String conversion cache
  • Fixed possible invalid memory accesses in NSF search and multi note id conversion
  • Improved performance of multi note id conversion
  • Memory reduction
  • New method NotesDatabase.getMode() to check whether the db handle belongs to a database or a directory (db handle is also used for directory search)

Domino JNA for XPages

@klehmann klehmann released this Jan 25, 2018 · 130 commits to master since this release

  • fixed typo when opening database with a specified username (513d998)

Domino JNA for XPages

@klehmann klehmann released this Jan 25, 2018 · 132 commits to master since this release

  • Fixes server crashes caused by duplicate handle deallocation of LMBCS text memory
  • Fixes server crashes caused by duplicate NAMES_LIST deallocation
  • JNA mode ("classic" / "direct" mapping) is now configurable via system property "dominojna.jnamode" (defaults to "direct")
  • Now enforcing usage of embedded jna dll and deactivating JNA protected mode to improve stability
  • Other small bugfixes like fixed NullPointerExceptions

Domino JNA for XPages

@klehmann klehmann released this Jan 8, 2018 · 183 commits to master since this release

  • Complete project rewrite, now using JNA direct mapping to improve native method invocation performance
  • other performance improvement: faster LMBCS->Java String conversion, lazy conversion of summary value items in NotesSearch.search(...)
  • Improved database search (NotesSearch.search) that now also optionally returns non-matches and deletions when searching incrementally with a "since" date (see callback class com.mindoo.domino.jna.NotesSearch.SearchCallback)
  • New generic class com.mindoo.domino.jna.sync.SyncUtil to incrementally read Domino data for indexing and migration purpose
  • Sample implementation for SyncUtil that indexes data using CQEngine to index Domino data is available as separate project (to reduce the Domino JNA dependencies to a minimum)
  • New methods NotesNote.hasReadersField() and NotesNote.getReadersFields() to get reader fields of a note using an optimized C call
  • New methods for NotesDatabase: getTitle(), setTitle(String title), getCategories(), setCategories(String cat), getTemplateName(), setTemplateName(String name), getDesignTemplateName(), setDesignTemplateName(String name), refreshDesign(String server)
  • added method DirectoryScanner.scan(String formula) to filter directory entries using Domino formula
  • Bugfixing and package refactoring to hide internal code (struct package moved to com.mindoo.domino.jna.internal)
  • Removed the unfinished com.mindoo.domino.jna.queries package; will probably not continue this path, incremental indexing is the way to go

Plugin updated on 9.1.2017:

  • included 0d4f0f6 to forward ServletException and IOException to calling HttpService without wrapping them

Domino JNA for XPages

@klehmann klehmann released this Dec 14, 2017 · 234 commits to master since this release

  • New Richtext creation APIs, e.g. to add formatted text, images, doclinks and other rendered notes to a new richtext
  • New Richtext conversion APIs to convert existing richtext item structures and sample classes to add/remove file hotspots and do a mail merge
  • A few breaking changes like moved classes or added parameters / return values
  • Stability improvements, e.g. fixed crash on Linux/64 generating an SSO token
Pre-release

Domino JNA for XPages

@klehmann klehmann released this Nov 10, 2017 · 296 commits to master since this release

This is a major feature update!

Here are some of the new features:

  • APIs to convert a single richtext item or a whole document to HTML with access to embedded images - NotesNote.convertItemToHtml / NotesNote.convertNoteToHtml()
  • APIs to stop long running code, get progress information and replication progress/results - SignalHandlerUtil
  • APIs to read/write Notes.ini values - NotesIniUtils
  • Utility function to compare Notes names with wildcards (*/Company) - NotesNamingUtils.nameMatchesWildcard()
  • Support to pass open flags when opening a database, e.g. for cluster failover - OpenDatabase enum
  • Method to replicate a database with options and detailed replication stats - NotesDatabase.replicateWithServer()
  • Method NotesNote.setUNID() to change the UNID of a document
  • Utility class to get names of cluster members of a Domino server - ServerUtils

Performance improvements:

  • Now reading view column names/sortings/formulas using C API in NotesCollection, not having to reopen the DB/View with legacy API (Notes.jar) anymore
  • Improved LMBCS string conversion performance (less copy operations for pure ASCII strings)

Breaking changes:

  • Removed lotus.domino.Session argument from some of the NotesDatabase constructors (not needed anymore)
  • Using NoteClass enum instead of noteclass bitmask, e.g. for database searches
Pre-release

Domino JNA for XPages

@klehmann klehmann released this Jul 14, 2017 · 355 commits to master since this release

  • Category view lookup now supports category paths (a\b\c) and has improved data stability when the view index changes
  • Fixed wrong data lengths when traversing note items via NotesNote.getItems(IItemCallback)
  • Added convenience methods, e.g. in NotesTimeDate
  • Several Win32 fixes