Upload
andrus-adamchik
View
170
Download
2
Embed Size (px)
Citation preview
No Containera Modern Java Stack with Bootiqueby Andrus Adamchik @andrus_a
About Me• I used to be a WO developer in the past life.• I write open source code.• I run ObjectStyle.
WebObjects Timeline• 1998: Highly-innovative, unaffordable.• 2000: Innovative, affordable.• 2005: Free, but not open, stagnating.
........ Silence and impending doom.• 2016: Sorry, we forgot to mention, WO is discontinued.
Enterprise Java Timeline• 1998: EJB announced. The monster is born.• 2004: The Age of Empires. Containers everywhere.
........ Dieting, getting leaner.• 2015: So why do we need the container again?• 2016: Oracle stops contributing. Impending doom?
Enterprise Java Timeline• 1998: EJB announced. The monster is born.• 2004: The Age of Empires. Containers everywhere.
........ Dieting, getting leaner.• 2015: So why do we need the container again?
• 2016: Oracle stops contributing. Impending doom?
#WYSIWYR: What You See Is What You Run
• Dude, where is my "main()"?
How to Write a Runnable Java App?
• Write a class with the main() method.• Include former container parts as libraries.• Package the app as an all-inclusive .jar.
BootiqueMinimally opinionated app launcher and integration technology.
Brief History• First commit in December 2015.• Collaboration between ObjectStyle and National Hockey
League.• Fully open-source under Apache License.• Successfully applied in complex enterprise environments.
Demo
Modules, Configuration, Commands
Modules
• Core
• Cayenne• Curator (Zookeeper
client)• JDBC • Jersey
• Jersey Client• Jetty• Job• LinkMove• LinkRest
• Liquibase • Logback• Metrics• MVC (Mustache)• Tapestry• Test
Configuration
Configuration Transformed into Factories
Commands (and Options)
Testing with JUnit
WYSIWYR (apps are runnable).
Higher level of modularity (Bootique modules, WO frameworks)
Normally packaged into jar with dependencies Packaged into .woa
100% open source. Closed-source core.
Unopinionated. Hardwired WO/EOF stack.
Integration using DI Static singletons.
OO configuration Properties
What Apps is it Good for?• Web applications.• Microservices.• Apps you distribute to users.• Cron jobs.• JavaFX apps.• Quick prototypes.
Should We Attempt to Port .woa to Bootique?
• WO bootstrap is overly complicated, but .woa is still WYSIWYR.
• Will have to fight with monolithic nature of WO, singletons, etc.
• Only makes sense if someone rewrites parts of WO (specifically the WOComponent) as standalone modules.
Questions?
• http://bootique.io/• Follow us here: @BootiqueProject• ★ us here: https://github.com/nhl/bootique