At the beginning of 2019, I wrote about the state of Java modularization. I took a sample of widespread libraries, and for each of them, I checked whether: It supports the module system i.e. it provides an automatic module name in the manifestIt’s a full-fledged module i.e. it provides a module-info The results were interesting. 14 out of those 29 libraries supported the module system, while 2 were modules in their own right. Nearly 2 years later, and with Java 16 looming around the cor
When Jigsaw was released with Java 9, it was the end of a long process - it had been postponed already - and it had to be released. With the coming of Java 11, the latest Long-Term Support, I think it’s a good time to take a snapshot of the state of modularization. I’ll use the Top 20 Libraries and APIs Java Developer should know as a reference, and check for each of them if the latest version: provides an automatic module nameor has a module-info In the first case, the JAR has a
Last week, I tried to make a Spring Boot app - the famous Pet Clinic, Java 9 compatible. It was not easy. I had to let go of a lot of features along the way. And all in all, the only benefit I got was improvement of String memory management. This week, I want to continue the migration by fully embracing the Java 9 module system.
With the coming of Java 9, there is a lot of buzz on how to migrate applications to use the module system. Unfortunately, most of the articles written focus on simple Hello world applications. Or worse, regarding Spring applications, the sample app uses legacy practices - like XML for example. This post aims to correct that by providing a step-to-step migration guide for a non-trivial modern Spring Boot application. The sample app chosen to do that is the Spring Pet clinic.