Fighting the Technical Debt of GlassFish
summary
Refactoring targets 20 years of GlassFish technical debt and shows concrete wins: GlassFish 7 implements Jakarta EE 10 and runs on Java 11–20, logging and HK2 injection get rewritten, classloader leaks are fixed, and cluster behavior stabilizes. Testing moves from Ant zombies to JUnit 5 and Testcontainers with Docker images and ShrinkWrap; builds produce an artifact in <70s while full Mavenized tests take ~11 minutes and the full TCK totals ~90 hours. Migration and tool upgrades are incremental but effective.
AI-written summary · about
chapters (10)
- 0:00Introduction and welcome
- 1:12History of GlassFish and technical debt
- 7:00Modularity challenges in GlassFish
- 11:28Zombie army of integration tests
- 16:39Maintenance anti-patterns and bugs
- 23:05GlassFish 7 and modern improvements
- 27:01Build time and testing optimization
- 31:19Integration testing with test containers
- 36:22Curing the zombie army
- 41:44Q&A and closing remarks
related talks
38mHow to Make Unmaintainable Project Maintainable - GlassFish Example
55mUpgrading a Legacy Java EE App with Style
49mJDK 8 to 25 Without the Pain - Engineering a Modern Java Platform
55mModernizing Legacy Code - While Not Bringing Down Prod
54mTesting in Legacy: From Rags to Riches
48mTo JAR Hell And Back - A Live Migration to the Java 9
04mHow it felt like
33mTo Refactor or Not: How to Systematically Modernize Your Java Applications
