What's New and Next in OpenNTF Domino API (ICON UK 2014)

Post on 05-Dec-2014

316 views 4 download

description

Session delivered at ICON UK September 2014

Transcript of What's New and Next in OpenNTF Domino API (ICON UK 2014)

UKLUG 2012 – Cardiff, Wales 1

Presenter: Paul Withers Company: Intec Systems Ltd

ICON UK 2014 What’s New And Next in OpenNTF Domino API

UKLUG 2012 – Cardiff, Wales 2

Paul Withers

XPages Developer since 2009

IBM Champion

Author of XPages Extension Library

Co-Developer of OpenNTF Domino API

UKLUG 2012 – Cardiff, Wales 3

Agenda

• Implementation Review

• M4.5 and M5 Enhancements

• Future Directions

UKLUG 2012 – Cardiff, Wales 4

Implementation Last Year

• Upload org.openntf.domino.xsp update site into UpdateSite.nsf

• Save org.openntf.domino JAR to <domino>\jvm\lib\ext

• Modified Update Site to deploy jar to server

• Javadoc support was broken

UKLUG 2012 – Cardiff, Wales 5

Implementation In M5

• Upload server release update site into UpdateSite.nsf

• Install client release update site in DDE

• Includes source code

• Or use OpenNTF Essentials (currently M4.5)

• Javadoc support post-M4.5

UKLUG 2012 – Cardiff, Wales 6

Java Agents

• Not really supported for agents

• Plugin jar in jvm\lib\ext breaks use in

XPages

• XOTS will replace this

SO WHAT’S XOTS?

UKLUG 2012 – Cardiff, Wales 7

Still Designed for Domino 9.0.1

BUT

• 9.0.0 versions are available

• Some additional functionality was added to IBM Domino 9.0.1, just needs removing • NotesCalendarEntry

• NotesCalendarNotice

• AdministrationProcess.setEnableOutlookSupport

• Additional NotesCalendar method in FP2

UKLUG 2012 – Cardiff, Wales 8

Enable Library for NSF

Remember to add it to Xsp Properties

UKLUG 2012 – Cardiff, Wales 9

Agenda

• Implementation Review

• M4.5 and M5 Enhancements

• Future Directions

UKLUG 2012 – Cardiff, Wales 10

Enhancements

OpenLog enhancements

• xsp.openlog.suppressEventStack=true

• xsp.openlog.expireDate=30

• More SSJS error types caught

• openLogBean.addError(e, this)

automatically gets context

UKLUG 2012 – Cardiff, Wales 11

Enhancements – Database

ALL methods that take integers are overloaded to take enums

• FTSearch(String, int, FTSortOption, Set<FTSearchOption>)

• compactWithOptions(Set<CompactOption>)

Same for other classes

UKLUG 2012 – Cardiff, Wales 12

Enum Example

UKLUG 2012 – Cardiff, Wales 13

Enhancements – Database

• Database.getMail()

• Also Session.getMailDatabase()

• Database.openMail()

UKLUG 2012 – Cardiff, Wales 14

Serialization of Database Locations

• Database.getApiPath()

• Supported by Session.getDatabase(String)

UKLUG 2012 – Cardiff, Wales 15

Metaversal ID

• Document.getMetaversalID()

• ReplicaID + UNID

• Also Document.getMetaversalID(String)

• Get metaversal ID for the document on

a specific server

• ServerName + “!!” + ReplicaID + UNID

UKLUG 2012 – Cardiff, Wales 16

Serialization of Document Locations

Session.getDocumentByMetaversalID

• One or two parameters

• String – metaversal ID

• For single parameter, uses server in

metaversal ID or current server

• String – server name

• If using this parameter, metaversal ID

must not include server name

UKLUG 2012 – Cardiff, Wales 17

Serialization of Database Locations

• Database.getMetaReplicaID()

• Also supported by Session.getDatabase(String)

• Also supports passing database Replica

ID

UKLUG 2012 – Cardiff, Wales 19

Simple Text Two-Line Example

UKLUG 2012 – Cardiff, Wales 20

DominoEmail

• Setters and getters for building up contents

• EmailAttachment class for attachments / inline images

• Document attachment (addDocAttachment) not yet implemented

• Future directions intend to allow Embedded Experiences

UKLUG 2012 – Cardiff, Wales 21

Index Database

• Indexes

• All appropriate fields

• On all Forms

• In all Databases

• Takes a while to run!

• Stores index in the database

• Allows you to interrogate all text fields on server

UKLUG 2012 – Cardiff, Wales 22

Views

• isTimeSensitive

• Interrogate the $Index field for other info

• Index type

• Index refresh information

• Index discard information

• Hide empty categories

UKLUG 2012 – Cardiff, Wales 23

Recycling

• Complete overhaul of recycling since M4.5

• Thanks to Roland Praml and Nathan

• Quicker recycling

• Outstanding issue with removing temporary files when dealing with embedded objects

UKLUG 2012 – Cardiff, Wales 24

Formula Parsing

• Previously in org.openntf.domino.helpers.Formula

• Overhauled and extended by Roland Praml

• New plugin – org.openntf.domino.formula

• Better performance than session.evaluate

UKLUG 2012 – Cardiff, Wales 25

Pickers

• Fixed issues with NAPI getViewEntryByKeyWithOptions in M4.5

• OpenNTF Name Picker dataProvider

• Allows you to define return name format

• Additional Value Picker dataProviders

• Map Picker

• Collection Picker (Lists / Sets)

• Enum Picker

UKLUG 2012 – Cardiff, Wales 26

dataProvider Enhancements

• SearchStyle

• jumpTo – show all from first match

• restrictToSearch – show only options

matching search criteria

• SearchType

• startFrom but also ftSearch, and match

• Specify case sensitive or case insensitive

UKLUG 2012 – Cardiff, Wales 27

NSA

• New flag, org.openntf.domino.xsp=nsa

• Keep track of

• Applications

• Modules

• Sessions

• NSA.INSTANCE.getReport() for plain text report

UKLUG 2012 – Cardiff, Wales 28

Names

• Considerable work on Names by Devin Olsen and Nathan T Freeman

• Name.getGroups(String serverName)

added

• Name class now uses

org.openntf.arpa.NamePartsMap to

parse elements

UKLUG 2012 – Cardiff, Wales 29

XOTS

• XPages + DOTS = XOTS

• Threaded tasks in their own session

• Trigger and run

• Trigger from custom events

• Scheduled in future

• Code is in the NSF

• So you can reuse your XPages code in

situ

UKLUG 2012 – Cardiff, Wales 30

XOTS Builder

• Domino Designer extension by Keith Smillie

• Allows you to see all tasklets in database

• Allows you to enable / disable tasklets

• Help file embedded into Domino Designer Help

UKLUG 2012 – Cardiff, Wales 31

XOTS Builder

UKLUG 2012 – Cardiff, Wales 32

Agenda

• Implementation Review

• M4.5 and M5 Enhancements

• Future Directions

UKLUG 2012 – Cardiff, Wales 33

ODA development team’s statements regarding its plans, directions, and intent are

subject to change or withdrawal without notice at ODA development team’s sole

discretion.

Information regarding potential future products is intended to outline our general

product direction and it should not be relied on in making a purchasing decision.

The information mentioned regarding potential future products is not a commitment,

promise, or legal obligation to deliver any material, code or functionality. Information

about potential future products may not be incorporated into any contract. The

development, release, and timing of any future features or functionality described for

our products remains at our sole discretion.

UKLUG 2012 – Cardiff, Wales 34

XOTS

• Progress bar

• Easier access to session etc

• Scheduled tasklets

• RIP Amgr

• Persistence of tasklets

• Run the same tasklet every x minutes /

hours / days

• Knows what on previous runs

UKLUG 2012 – Cardiff, Wales 35

XOTS

• More work on contexts

• XSPBARE – “XPages-aware agent”

• XSPFORCED – run as if from browser

• Access to scopes

• XSPSCOPED to Application / Session

• XOTS + Listeners

UKLUG 2012 – Cardiff, Wales 36

XOTS

• DominoSessionTypes

• NAMED

• Use this.setRunAs(String user)

• NATIVE – run as server

• MANUAL

• NONE

UKLUG 2012 – Cardiff, Wales 37

Graph Databases Extended

• Current implementation in Index database

• See session from MWLUG

• Lots of interest at MWLUG

• Better for Big Data

• Query performance outstrips RDBMS

• Framed, shared graphs coming soon

UKLUG 2012 – Cardiff, Wales 38

Classes for ALL Design Elements

• XPages and Custom Controls done

• Consistent approach

• E.g. jar, XPage, Custom Control, Xsp Properties

• Include xsp-config.xml in Custom Control class?

• Make properties like view index flags read-write?

UKLUG 2012 – Cardiff, Wales 39

NsfDataStructs

• Classes already in release, but not currently used

• NSFDatabase, DXLDatabase

• NSFNote, DXLNote

• Structs, Structs/cd

• Intended to better deal with:

• DXL documents

• Composite Data (CD) information

UKLUG 2012 – Cardiff, Wales 40

NSFDataStructs

• Access e.g. $REF-style fields

• Access Seq Num

• Rich Text manipulation

• Making “pseudo NSFs” from DXL files / folders of Note DXLs / ODPs

• Better compatibility with non-NSF databases

• Potentially accessing C API directly

UKLUG 2012 – Cardiff, Wales 41

3rd Party Libraries

• The following are under investigation

• Google Guava already being used

• Javolution

• Speed, e.g. javolution.util.FastCollection

• Struct and Union classes for direct

interoperability with C/C++ applications

• OSGi compliant

• Lucene

UKLUG 2012 – Cardiff, Wales 42

Domino Admin

• Let’s use the API to make admins’ lives easier

• Interact with Domino Directory configuration

• Long term

• XPages Admin Client?

UKLUG 2012 – Cardiff, Wales 43

Get Involved!

• Develop

• Document

• Add demos

• Test

• Use

• Suggest features

• Spread the word!

UKLUG 2012 – Cardiff, Wales 44

Thank You

• Paul Withers

• pwithers@intec.co.uk

• http://www.intec.co.uk/blog

• @paulswithers

• https://github.com/OpenNTF/ org.openntf.domino