Opportunity to use google jib for building docker images.
Support for Java 13 and beyond. Java 7 is no longer supported; Java 8 is still supported. We need to upgrade to java 13 soon.
Micrometer based counters and gauges
Intellij / Gradle does not support Gradle 3.x and below starting 2020.01 ( releasing in few weeks).
SpringBoot 2.0 Major Changes
Netflix Feign to Open Feign - no longer needed, since we don’t use feign anymore.
Major changes the Database upgrade support
Sleuth to Brave tracing
Few changes to in Spring MVC api's
Good amount of changes to spring data , but we don’t care
Major changes to Spring Security. Spring Security 5 now has native support for OAuth.
Upgrading Wiretap to SpringBoot 2.0
Top Down approach
Use all the framework jar compiled on springboot 1.4 and use it in springboot 2
Identify runtime failure and fix them ( use new api / adopt to new methods etc)
Upgrade to grade 5.6.x
Use Google JIB to build docker images.
Wiretap to SB 2.0 - Whats complete
Able to successfully bring up wiretap (running on springboot 2.x and CFW 2020.01 BOM)
Deployed wiretap in production with image built using Google JIB
Security works!
Posting message to queue works!
Broadcasting works!
Caching works!
All entity fw api works!
Wiretap to SB 2.0 - Whats complete
Wiretap is running in production for close to 3 months with no major issues. No one even noticed that its running on springboot 2.x
How did i do?
Had to hack few fw classes to make it work ( close to 22 files changes).
Major changes to DB upgrader, but safer. Now it follows the same pattern taken by liquibase/flyway. Think of our DB upgrader as another plugin similar to liquibase / flyway.
Disabled existing springboot oauth2 support and use spring security native support ( 3 classes)
Replace Tracer with Brave Trace and Span.
Few changes in context creation filter.
Whats more?
Authserver will have adoptions. Not sure how much. Jim can try out
build.gradle changes on all the fw and get all test cases to work.
Can we support both SpringBoot 2.x and 1.x? Is it even worth it given few classes are removed in springboot 2.x. So compilation will be challenging.
Beta release so that teams and adopt and estimate the cost.