SlideShare a Scribd company logo
Java in Domino After XPages
What now?
CollabSphere 2018 Sponsors
Jesse Gallagher
@Gidgerby — http://frostillic.us — http://iksg.us — http://www.darwino.com
WTF Tech Podcast: wtftech.fm
This session as two purposes:
1. Discuss paths to build on our Java knowledge
2. Group therapy
The Path To Here
• XPages was added to Domino in 2008
• It snuck an almost-but-not-quite Java EE stack
into Domino
– …but hid it under SSJS and unstructured
development
• The Extension Library turned it into a real app
platform
What XPages Brought Us
• A real reason to learn Java
• Comfort with using existing Java libraries
• A (rocky) introduction to OSGi
• An introduction to Eclipse
• Steps towards separating data and code
• Strong incentives to use source control, not
developing in prod, and so forth
• An introduction to Maven… right?
Buuuuuut…
• Learning materials were few and far between
• Coming in, very few Domino developers had
Java knowledge
• Designer discouraged really getting into the
underlying JSF stack
• The shape of what a “great XPages app” really
is never quite took form
The Slowdown
• After more-or-less steady progress to 9.0.1, things
ground to a halt
• The ExtLib slowed down too, with the last couple
releases focusing on Bluemix
• A larger portion of dev time became consumed by
working against the age of the platform
• We were “IE6’d” out of several technologies:
newer JS versions and features, WebSockets,
HTTP/2, Java 7+ until recently
And now here we are
Where We Are
Points on the path:
1. Never got into XPages
2. Use XPages with just SSJS
3. Use XPages with in-NSF Java
4. Write OSGi plugins
5. Moved above XPages entirely
The awkward zone
The Paths Forward
• Go back to LotusScript
• Switch to node.js
• Soldier on with XPages
• Focus on REST APIs
• Cram Java EE/Spring/Servlet tech into Domino
• Standalone Java server
The Paths Forward
Go crawling back to LotusScript
Pros:
• Keep your old apps running
• Works on all platforms
Cons:
• Your soul will die
• You’re on the CTO chopping
block
The Paths Forward
Switch to node.js
Pros:
• It’s what HCL is pushing
• It’s a very vibrant community
• The platform has a clear, bright future
• Modern JavaScript is, against all odds, quite good
Cons:
• You can’t reuse (most) existing code
• It’s not Java
The Paths Forward
Soldier on with XPages
Pros:
• It’s very comfortable
• It’s technically not dead
• Keeps your options open
• The platform can be extended
Cons:
• Future progress is uncertain
• It’s still a very small pool, and documentation was always scarce
Helpful Tools in XPages
• org.openntf.domino: https://oda.openntf.org
• XPages Jakarta EE Support:
https://github.com/OpenNTF/org.openntf.xsp.j
akartaee
The Paths Forward
Focus on REST Services
Pros:
• You can potentially keep using Designer if you want
• Strongly encourages good API/app separation
• You get to use a client JS app framework
Cons:
• You’ll have to learn a client JS app framework
Helpful Tools for REST
• org.openntf.domino: https://oda.openntf.org
• XPages Jakarta EE Support:
https://github.com/OpenNTF/org.openntf.xsp.j
akartaee (for JAX-RS)
• SmartNSF: https://smartnsf.openntf.org
• Visual Studio Code
The Paths Forward
Cram Java EE/Spring/Servlet Tech into Domino
Pros:
• Keep the app server you have
• Java 8 removed a lot of hindrances
• General documentation and examples abound
• Direct NSF access
Cons:
• You’ll have to learn some new tools
• The servlet API lags far behind (no WebSockets, no HTTP/2)
• OSGi makes things awkward
• Specific examples are few and far between
• Some common practices don’t apply: JPA, security APIs, etc.
Helpful Tools for Java on Domino
• HowTo: Vaadin on Domino:
http://hasselba.ch/blog/?p=1891
• OsgiWorlds:
https://www.openntf.org/main.nsf/project.xsp
?r=project/OsgiWorlds
The Paths Forward
Standalone Java server
Pros:
• You’re not held back by the platform
• Work with the tools everyone else is using
• Spring and modern JEE are great!
Cons:
• It’s a weird, wide world
• Accessing Domino data is less straightforward
Helpful Tools for Standalone Java Servers
• CrossWorlds:
https://wiki.openntf.org/display/CW/CrossWorlds
• Dropping Domino’s HTTP task:
http://hasselba.ch/blog/?p=2625
• My blog:
https://frostillic.us/blog/posts/1F50CF0CB1019A8
7852582CE004A3AB7
• Darwino: https://www.darwino.com
Thank You!
Q&A
Ad

More Related Content

What's hot (20)

DNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance BoostDNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance Boost
Christoph Adler
 
Selenium
SeleniumSelenium
Selenium
Satyam Pandey
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Serdar Basegmez
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
Paul Withers
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With Selenium
Marakana Inc.
 
Maven
MavenMaven
Maven
penetration Tester
 
Java and XPages
Java and XPagesJava and XPages
Java and XPages
Patrick Kwinten
 
Log management (elk) for spring boot application
Log management (elk) for spring boot applicationLog management (elk) for spring boot application
Log management (elk) for spring boot application
Vadym Lotar
 
Dockerizing your java development environment
Dockerizing your java development environmentDockerizing your java development environment
Dockerizing your java development environment
Buhake Sindi
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bag
Jamie Coleman
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
Ulrich Krause
 
Demystifying Maven
Demystifying MavenDemystifying Maven
Demystifying Maven
Mike Desjardins
 
Learning Maven by Example
Learning Maven by ExampleLearning Maven by Example
Learning Maven by Example
Hsi-Kai Wang
 
ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
ColdFusionConference
 
Apache Maven In 10 Slides
Apache Maven In 10 SlidesApache Maven In 10 Slides
Apache Maven In 10 Slides
Robert Burrell Donkin
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
Ulrich Krause
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
Sandeep Chawla
 
Maven
Maven Maven
Maven
Khan625
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
Ulrich Krause
 
Jenkins
JenkinsJenkins
Jenkins
penetration Tester
 
DNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance BoostDNUG Webcast: IBM Notes V10 Performance Boost
DNUG Webcast: IBM Notes V10 Performance Boost
Christoph Adler
 
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Engage 2015 - 10 Mistakes You and Every XPages Developer Make. Yes, I said YOU!
Serdar Basegmez
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
Paul Withers
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With Selenium
Marakana Inc.
 
Log management (elk) for spring boot application
Log management (elk) for spring boot applicationLog management (elk) for spring boot application
Log management (elk) for spring boot application
Vadym Lotar
 
Dockerizing your java development environment
Dockerizing your java development environmentDockerizing your java development environment
Dockerizing your java development environment
Buhake Sindi
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bag
Jamie Coleman
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
Ulrich Krause
 
Learning Maven by Example
Learning Maven by ExampleLearning Maven by Example
Learning Maven by Example
Hsi-Kai Wang
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
Ulrich Krause
 
Dr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin developmentDr. Strangelove, or how I learned to love plugin development
Dr. Strangelove, or how I learned to love plugin development
Ulrich Krause
 

Similar to CollabSphere 2018 - Java in Domino After XPages (20)

Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPages
Jesse Gallagher
 
History of Java 2/2
History of Java 2/2History of Java 2/2
History of Java 2/2
Eberhard Wolff
 
History of Java 1/2
History of Java 1/2History of Java 1/2
History of Java 1/2
Eberhard Wolff
 
Web development in JavaEE7 with JSF, does it still matter?
Web development in JavaEE7 with JSF, does it still matter?Web development in JavaEE7 with JSF, does it still matter?
Web development in JavaEE7 with JSF, does it still matter?
Paris Apostolopoulos
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
Vishal Mittal
 
Building rich interface components with SharePoint
Building rich interface components with SharePointBuilding rich interface components with SharePoint
Building rich interface components with SharePoint
Louis-Philippe Lavoie
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7
Roberto Cortez
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
Jesse Warden
 
2020 oct zowe quarterly webinar series
2020 oct zowe quarterly webinar series2020 oct zowe quarterly webinar series
2020 oct zowe quarterly webinar series
Open Mainframe Project
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
mfrancis
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
Steven Pousty
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
Fu Cheng
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
Vladislav Bauer
 
Desktop Intro
Desktop IntroDesktop Intro
Desktop Intro
SiliconExpert Technologies
 
AdoptJSRJavaEE8CON
AdoptJSRJavaEE8CONAdoptJSRJavaEE8CON
AdoptJSRJavaEE8CON
Heather VanCura
 
Iceberg
IcebergIceberg
Iceberg
ESUG
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern Javascript
Wojciech Dzikowski
 
java completed units.docx
java completed units.docxjava completed units.docx
java completed units.docx
SATHYAKALAKSKPRCASBS
 
JavaOne Latin America Participate in Shaping Java's Future
JavaOne Latin America Participate in Shaping Java's Future JavaOne Latin America Participate in Shaping Java's Future
JavaOne Latin America Participate in Shaping Java's Future
Heather VanCura
 
Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPages
Jesse Gallagher
 
Web development in JavaEE7 with JSF, does it still matter?
Web development in JavaEE7 with JSF, does it still matter?Web development in JavaEE7 with JSF, does it still matter?
Web development in JavaEE7 with JSF, does it still matter?
Paris Apostolopoulos
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
Vishal Mittal
 
Building rich interface components with SharePoint
Building rich interface components with SharePointBuilding rich interface components with SharePoint
Building rich interface components with SharePoint
Louis-Philippe Lavoie
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7
Roberto Cortez
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
Jesse Warden
 
2020 oct zowe quarterly webinar series
2020 oct zowe quarterly webinar series2020 oct zowe quarterly webinar series
2020 oct zowe quarterly webinar series
Open Mainframe Project
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
mfrancis
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
Steven Pousty
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
Fu Cheng
 
Iceberg
IcebergIceberg
Iceberg
ESUG
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern Javascript
Wojciech Dzikowski
 
JavaOne Latin America Participate in Shaping Java's Future
JavaOne Latin America Participate in Shaping Java's Future JavaOne Latin America Participate in Shaping Java's Future
JavaOne Latin America Participate in Shaping Java's Future
Heather VanCura
 
Ad

Recently uploaded (20)

Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Not So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java WebinarNot So Common Memory Leaks in Java Webinar
Not So Common Memory Leaks in Java Webinar
Tier1 app
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Ad

CollabSphere 2018 - Java in Domino After XPages

  • 1. Java in Domino After XPages What now?
  • 3. Jesse Gallagher @Gidgerby — http://frostillic.us — http://iksg.us — http://www.darwino.com WTF Tech Podcast: wtftech.fm
  • 4. This session as two purposes: 1. Discuss paths to build on our Java knowledge 2. Group therapy
  • 5. The Path To Here • XPages was added to Domino in 2008 • It snuck an almost-but-not-quite Java EE stack into Domino – …but hid it under SSJS and unstructured development • The Extension Library turned it into a real app platform
  • 6. What XPages Brought Us • A real reason to learn Java • Comfort with using existing Java libraries • A (rocky) introduction to OSGi • An introduction to Eclipse • Steps towards separating data and code • Strong incentives to use source control, not developing in prod, and so forth • An introduction to Maven… right?
  • 7. Buuuuuut… • Learning materials were few and far between • Coming in, very few Domino developers had Java knowledge • Designer discouraged really getting into the underlying JSF stack • The shape of what a “great XPages app” really is never quite took form
  • 8. The Slowdown • After more-or-less steady progress to 9.0.1, things ground to a halt • The ExtLib slowed down too, with the last couple releases focusing on Bluemix • A larger portion of dev time became consumed by working against the age of the platform • We were “IE6’d” out of several technologies: newer JS versions and features, WebSockets, HTTP/2, Java 7+ until recently
  • 9. And now here we are
  • 10. Where We Are Points on the path: 1. Never got into XPages 2. Use XPages with just SSJS 3. Use XPages with in-NSF Java 4. Write OSGi plugins 5. Moved above XPages entirely The awkward zone
  • 11. The Paths Forward • Go back to LotusScript • Switch to node.js • Soldier on with XPages • Focus on REST APIs • Cram Java EE/Spring/Servlet tech into Domino • Standalone Java server
  • 12. The Paths Forward Go crawling back to LotusScript Pros: • Keep your old apps running • Works on all platforms Cons: • Your soul will die • You’re on the CTO chopping block
  • 13. The Paths Forward Switch to node.js Pros: • It’s what HCL is pushing • It’s a very vibrant community • The platform has a clear, bright future • Modern JavaScript is, against all odds, quite good Cons: • You can’t reuse (most) existing code • It’s not Java
  • 14. The Paths Forward Soldier on with XPages Pros: • It’s very comfortable • It’s technically not dead • Keeps your options open • The platform can be extended Cons: • Future progress is uncertain • It’s still a very small pool, and documentation was always scarce
  • 15. Helpful Tools in XPages • org.openntf.domino: https://oda.openntf.org • XPages Jakarta EE Support: https://github.com/OpenNTF/org.openntf.xsp.j akartaee
  • 16. The Paths Forward Focus on REST Services Pros: • You can potentially keep using Designer if you want • Strongly encourages good API/app separation • You get to use a client JS app framework Cons: • You’ll have to learn a client JS app framework
  • 17. Helpful Tools for REST • org.openntf.domino: https://oda.openntf.org • XPages Jakarta EE Support: https://github.com/OpenNTF/org.openntf.xsp.j akartaee (for JAX-RS) • SmartNSF: https://smartnsf.openntf.org • Visual Studio Code
  • 18. The Paths Forward Cram Java EE/Spring/Servlet Tech into Domino Pros: • Keep the app server you have • Java 8 removed a lot of hindrances • General documentation and examples abound • Direct NSF access Cons: • You’ll have to learn some new tools • The servlet API lags far behind (no WebSockets, no HTTP/2) • OSGi makes things awkward • Specific examples are few and far between • Some common practices don’t apply: JPA, security APIs, etc.
  • 19. Helpful Tools for Java on Domino • HowTo: Vaadin on Domino: http://hasselba.ch/blog/?p=1891 • OsgiWorlds: https://www.openntf.org/main.nsf/project.xsp ?r=project/OsgiWorlds
  • 20. The Paths Forward Standalone Java server Pros: • You’re not held back by the platform • Work with the tools everyone else is using • Spring and modern JEE are great! Cons: • It’s a weird, wide world • Accessing Domino data is less straightforward
  • 21. Helpful Tools for Standalone Java Servers • CrossWorlds: https://wiki.openntf.org/display/CW/CrossWorlds • Dropping Domino’s HTTP task: http://hasselba.ch/blog/?p=2625 • My blog: https://frostillic.us/blog/posts/1F50CF0CB1019A8 7852582CE004A3AB7 • Darwino: https://www.darwino.com