Skip to content

Releases: klehmann/domino-jna

Domino JNA for XPages

20 Jul 20:50
710d723
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release
  • fixed a VirtualViewNavigator issue where a navigator created via buildFromCategory(...) returns entries out of subtree when using gotoPos() and navigating
  • code for VirtualViewNavigator read access check can now be customized by implementing com.mindoo.domino.jna.virtualviews.security.IViewEntryAccessCheck or subclassing com.mindoo.domino.jna.virtualviews.security.ViewEntryAccessCheck when creating the navigator
  • new API method com.mindoo.domino.jna.virtualviews.VirtualViewNavigator.entriesForwardFromPosition(String, SelectedOnly)

Domino JNA for XPages

10 Jul 13:28
00a2b23
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release

Virtual Views

This release contains changes after doing more real life tests with the new Virtual Views API (see https://github.com/klehmann/domino-jna/releases/tag/0.9.49 for details):

  • made virtual views more closely match Domino views, e.g. regarding ordering of documents and categories
  • fixed handling of empty string for category values ("(Not categorized)"), now sorted to the bottom
  • fixed comparison of datetime category values with missing dates (resulting in empty strings in the document summary buffer)
  • new option to change the order of categories and documents in categorized virtual views when constructing the virtual view (category then documents, documents then categories)
  • new VirtualViewNavigator methods to quickly sort a set of note ids based on the view order without a full view scan
  • added method VirtualViewEntryData.getIndentLevels() for multilevel category values
  • excluded docs with $ref field by default from Virtual Views, can be overridden if you really want to analyze them (virtual views don't support response hierarchies)
  • more example code in class TestVirtualViews
  • bugfixes

Domino JNA for XPages

07 Jul 20:05
a48d57a
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release

Biggest update ever for Domino JNA!

DQL

  • DQL options to refresh the FT index before search and to rebuild the design catalog 0a34291
  • APIs to create/remove/list DQL index views bd33ee9

MIME

  • convenience function for richtext to HTML conversion with modern standards (e.g. CSS)
  • API to convert MIME to richtext 265a225
  • new project to read and write MIME data using MIME4J project, used by Domino JNA in XPages environments for MIME handling (domino-jna-mime-mime4j) 53b11d4
  • API to set alternative text formats in MIME data like html/plaintext 1a5742f
  • API to render a richtext item as mime objects with all attached files 3698cb5

Named docs

  • Added support for named docs similar to legacy Java/LS API a10f72f

NSF properties/features

  • new constant for DB encryption with AES256 1629538
  • Added methods to check for folder changes ea5203a
  • NotesDatabase.getNSFVersionInfo(), large text list support, more db options e.g. for large summary buffer abe2a49
  • API to mark a NotesNote read/unread 178cd68
  • API to get document attachments as ByteBuffer 0bd7d92
  • API to change view selection formula 2acffc3

Security

  • new API to hash and verify passwords c98d1a0

Misc

  • Added new method to write log messages to the server console a6fdea5
  • 32/64 bit bugfixes
  • Performance improvements

Virtual Views

We completely reinvented Domino view indexing and the QueryResultsProcessor in Java with a lot more features!

A Virtual View is an in-memory Java structure to store, analyze and quickly traverse Domino and any other data. Like Domino views, Virtual Views provide document summary data in a categorized and sorted way with total/average computation, handling of expanded/collapsed categories and options to display a subset of the view (e.g. single category or selected entries).

But the view content can be build from data, profile and design documents, with cross-database and even cross-server support and fast incremental view updates when NSF data is changed.
Compute your column values with formula code or Java functions, with additional data from external data sources (poor man's JOIN).
See this test case for a few examples how this feature is used: https://github.com/klehmann/domino-jna/blob/develop/domino-jna/src/test/java/com/mindoo/domino/jna/test/TestVirtualView.java

And here is the full feature list for the first release of the Virtual View API:

  • multi-DB views, even works between servers and client-server
  • view structure similar to Domino (multi level categorization, sorted columns)
  • support for sums / average values, child and descendant counts
  • compute column values via formula or Java code
  • incremental view updates, so no rebuilt required
  • view is populated by the server, shared across users
  • for each user we check which view entries the user is allowed to see (checks DB ACL level and compares user names list for each DB with computed list of document readers list)
  • for category entries we accumulate the readers of all descendant docs to quickly skip categories that would be empty for a user
  • these collected readers stats can be used for analysis purposes
  • several data sources can be combined to produce view data
  • datasource 1: run NSF search with a formula (incrementally), can search data and design documents, optional post processing with FT search
  • datasource 2: profile documents
  • datasource 3: read note ids from a folder (incrementally)
  • datasource 4: compute column values from any list of note ids
  • custom datasources can be implemented and added to the virtual view
  • VirtualViewNavigator to read the view entries that a user is allowed to see, either all entries/category descendants, just docs/category, support for expanded/selected entries, upwards/downwards/paging like NIFReadEntries, keyword and range lookups
  • fast (e.g. processes 40.000 fakename docs and builds the view in 2-3 seconds)
  • VirtualView currently stored in Java heap (each VirtualViewEntry with a ConcurrentSkipListMap for the sorted children), might add support for serialization to disk later on
  • not a Domino specific implementation, would work in other environments as well

Domino JNA for XPages

31 May 12:09
a8276ff
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release
  • API to read and write the Notes workspace (read, create and modify pages and icons, change page order, move replicas on top etc.) eedcdc7 e573dbf 7f97fab fead391
  • Formula execution now supports more than 64k of return data 713a05d
  • API to apply security to formula execution (e.g. prevent Notes.ini changes) 0c5c764
  • API for QueryResultsProcessor (produces JSON and views) aacd420
  • Java 8 date/time support for NotesNote.replaceItemValue(...) 39cbae3
  • New utility class to format view data as markdown table a109b93 24bafa4
  • Added method to get agent design doc UNID bfd094f
  • Added hierarchical recycling (parent/child auto recycle) ec5b0a1

If you are having trouble installing the OSGi plugin into Notes/Designer and see compilation errors with Domino JNA classes, add the workspace/eclipse folder to the target platform. See Jesse Gallagher's blog article for details: https://frostillic.us/blog/posts/058650E080E352178525832B00519D2C

Domino JNA for XPages

25 Dec 20:50
f9b405a
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release
  • fixed TIMEDATE/Calendar conversion bug where the resulting date was 1-2 days off
  • added Java 8 Date/Time API support
  • fixed DQL time formatting bug

It is highly recommended to switch to this new version to avoid hitting the TIMEDATE/Calendar conversion in your application code!

Domino JNA for XPages

08 Oct 14:12
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release
  • API to read server console (R12+ with DEBUG_ALLOW_REMOTE_CON_SERVER=1 in Notes.ini) 1b0c483
  • Added method to validate an SSO token 9689cbd
  • Fixed creating doc attachments that grow dynamically dedc85f 8976e04
  • Fixed MIME production issue in XPages environment d1f7ef5
  • various other bugfixes and fixes for memory leaks (see 0.9.42...0.9.44)

Breaking change (sorry):

  • changed MIMEStream API to use InputStream/OutputStream instead of Reader/Writer (required to support parts with binary non-base64 encoded data) 27124e5

Domino JNA for XPages

19 Feb 22:03
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release
  • Added NotesNote.getAttachmentNames() 78a7a74
  • NotesNote.getItemValue(String) for richtext items now returns an IRichTextNavigator instead of throwing an exception 85b9b7f
  • Fixed I/O error writing incomplete MIME lines via MIMEStreamWrite 52d0be3
  • Fixed RT-HTML conversion issues for large richtext spread across >10 items where images could not be read 117af3f

Domino JNA for XPages

25 Jan 13:56
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release

Please note that there are some breaking changes in the richtext-HTML-conversion APIs, e.g. a new class HtmlConvertProperties to specify the conversion settings and some moved classes. No functionality was removed, the APIs now have much more settings than before to control the conversion quality.

Domino JNA for XPages

24 Jul 22:47
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release

Important bugfix:
This release fixes a major C handle leak that got introduced in 0.9.35. It's highly recommended to install this new version. 7ccfe86

Changed project dependencies:
We removed the dependency to javax.mail 606a98e that was used in the MIMEStream class. There are now two separate projects/artifacts, one (domino-jna-mime-javaxmail) that works with javax.mail and another one (domino-jna-mime-jakartamail) that works with jakarta.mail, which is the successor API. Both mail projects (javax/jakarta) are incompatible with each other and the Domino server platform already contains javax.mail, so just adding a dependency for jakarta.mail was not an option.
Both new projects only contain one Java class that can also be copied into your code base.

Other changes:

  • API to read replication history 75a04de
  • bugfix for computeWithForm c6fd744
  • added methods to read System.getProperties() and System.getenv() without triggering a SecurityException 565cad5 455894f

Domino JNA for XPages

29 Jun 20:34
Compare
Choose a tag to compare
Domino JNA for XPages Pre-release
Pre-release
  • Fixed duplicate handle error in NotesGC when opening more than one MIMEStream at the same time in a runWithAutoGC block a8719b0
  • Breaking change: Renamed/unified Navigate constant names added in 0.9.35 cc7ed37