Water Cooler Talks: A Look into a Developer's Workbench [Co-speaker]
OpenNTF August Webinar - August 2020
"...Serdar Basegmez utilizes Domino to create RESTful APIs for his clients. He will present his development environment and share some tips on Eclipse configuration, deployment and testing Domino plugins..."
plugin development OpenNTF XPages SDK Plugin Help to configure Eclipse PDE for Domino environment HCL Domino Designer on Windows NSF design, sandboxing and testbed HCL Domino Server 10.x / 11.x on CentOS Development, testing, staging and deployment Paw, Postman, Node.js scripts Testing (functional, scalability, performance, etc.) Stoplight Studio, Ulysses Documentation SourceTree + Bitbucket/Github Source Control OpenNTF Domino API Plugin Civilised way to use Java for Domino OpenNTF XLogback Plugin Logging
plugin development OpenNTF XPages SDK Plugin Help to configure Eclipse PDE for Domino environment HCL Domino Designer on Windows NSF design, sandboxing and testbed HCL Domino Server 10.x / 11.x on CentOS Development, testing, staging and deployment Paw, Node.js scripts Testing (functional, scalability, performance, etc.) Stoplight Studio, Ulysses Documentation SourceTree + Bitbucket/Github Source Control OpenNTF Domino API Plugin Civilised way to use Java for Domino OpenNTF XLogback Plugin Logging Today’s focus
Designer • Better version, better tooling, more integrated • Configuring Eclipse to develop for Domino can be tricky! • This is the key step for efficient development. • I found my way among many possibilities
Compile successfully (Accessing domino packages) • Deploy using PDE (Run on Server) • Run locally (Manual/automated unit testing) • Overall… • JVM to be used (Notes or Domino) • Target Platform to be configured • File access to the Domino needed • Notes setup is nice to have
key… • “The target platform specifies the set of bundles used to compile and build against within the Eclipse PDE (plugin development environment).” (Eclipse Wiki) • Java API for Domino is also needed [Notes.jar] • Build a plugin or add it to the JRE • Pain in the neck! Compiling Successfully
the Domino OSGi platform to deploy your plugins directly into Domino Server. Domino Server Eclipse IDE Selected Projects [Eclipse Workspace] Target Platform [Eclipse Settings] XPages SDK Temporary Configuration for the Domino OSGi [pde.launch.ini] Deploy using PDE Points
on Mac, Domino on Linux VM Domino Server on VM Eclipse IDE on Mac OpenNTF XPages SDK Configuration Target Platform Plugins Eclipse Workspace Domino OSGi Eclipse IDE Target Platform Plugins
Java code utilizing Domino Java API • More practical than restarting HTTP every time • Quick testing for your business logic • Unit testing for your API • Difficulties: • XSP / HTTP resources will not be available • Domino classes needs native libraries • Difficult to configure (especially on Mac) • Some capabilities might not work well Run Locally
replication • It works well if you release less frequently… • Feature-Update Site deployment might be tricky • If you touch plugin.xml, test on staging. • Sometimes, small differences between production and testing might become nasty • There are ways to automate this process as well.
Notes for Mac is “different” • Obviously, no Designer / Domino on Mac • Even EOL differences needs to be considered • Domino Upgrades • Target platform needs to be updated on upgrades • If you use custom target platform, that’d be an issue • Document your setup on every step…