Slide 1

Slide 1 text

WATER COOLER TALKS: A LOOK INTO A DEVELOPER'S WORKBENCH Using Eclipse for Domino OSGi Plugins

Slide 2

Slide 2 text

SERDAR BASEGMEZ Developi Information Systems, London Blog: LotusNotus.com / Twitter: @serdar_basegmez

Slide 3

Slide 3 text

TODAY’S SPECIAL ON MY WORKBENCH • RESTful API for Domino databases • Visit speakerdeck.com/sbasegmez • Designing JAX-RS services for Domino applications • OSGi plugins based on Apache Wink servlets. • Sample applications: • Node.js front-end, accessing Domino data • Customer-facing interfaces (PHP Website, native mobile applications, etc.) interacting internal systems

Slide 4

Slide 4 text

DEVELOPMENT ENVIRONMENT Using… for… Eclipse IDE on Mac [Neon] OSGi 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

Slide 5

Slide 5 text

DEVELOPMENT ENVIRONMENT Using… for… Eclipse IDE on Mac [Neon] OSGi 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

Slide 6

Slide 6 text

THE ART OF ECLIPSE CONFIGURATION… • Using Eclipse vs Domino 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

Slide 7

Slide 7 text

THE ART OF ECLIPSE CONFIGURATION… • We aim to… • 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

Slide 8

Slide 8 text

THE ART OF ECLIPSE CONFIGURATION… • Target Platform is the 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

Slide 9

Slide 9 text

THE ART OF ECLIPSE CONFIGURATION… • XPages SDK will configure 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

Slide 10

Slide 10 text

THE ART OF ECLIPSE CONFIGURATION… • Classical Scenario Eclipse IDE and Domino Server on Windows Target Platform Plugins Eclipse Workspace Domino OSGi Eclipse IDE OpenNTF XPages SDK Configuration

Slide 11

Slide 11 text

THE ART OF ECLIPSE CONFIGURATION… • Alternative Scenario • Eclipse 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

Slide 12

Slide 12 text

THE ART OF ECLIPSE CONFIGURATION… • Eclipse IDE can run 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

Slide 13

Slide 13 text

THE ART OF ECLIPSE CONFIGURATION… • Run Configurations might be customized on Mac Run Locally

Slide 14

Slide 14 text

THE ART OF ECLIPSE CONFIGURATION… • You may even use OpenNTF Domino API Run Locally

Slide 15

Slide 15 text

PRODUCTION AND DEPLOYMENT • Deploy to Production using Update Site 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.

Slide 16

Slide 16 text

FURTHER ENHANCEMENTS • Maven / p2 repositories • Automated build, CI/CD pipelines • Headless Designer • Docker Runtime

Slide 17

Slide 17 text

CHALLENGES • Using Eclipse on Mac is a challenge! • 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…

Slide 18

Slide 18 text

THANK YOU!