A Deep Dive into The Java Platform Module System (JPMS)

Learn the tools for creating modular, space-optimized, and extensible software in Java.

A Deep Dive into The Java Platform Module System (JPMS)
A Deep Dive into The Java Platform Module System (JPMS)

A Deep Dive into The Java Platform Module System (JPMS) free download

Learn the tools for creating modular, space-optimized, and extensible software in Java.

Recent Updates: Added a new section on JPMS Services, which help in creating completely decoupled services

This course provides an in-depth understanding of the Java Platform Module System (JPMS) and how it enables the creation of modular, strongly encapsulated, and space-optimized software that is extensible. JPMS is a major feature of Java 9, introduced as part of Project Jigsaw to address challenges faced by earlier versions of Java.

When building large, complex software, it is crucial that the code is easy to understand, maintain, secure, and extend. These are essential goals for any well-designed system. Prior to Java 9, achieving these goals relied heavily on design principles like Information Hiding, which utilized packages and access modifiers. However, in some cases, packages and access modifiers fell short, compromising these objectives. Java also faced significant issues with configuration (commonly referred to as JAR hell) and the tendency to ship as a monolithic library. JPMS resolves these limitations by introducing modules, a new layer of abstraction that ensures better encapsulation, more reliable configuration, and the ability to create space-optimized, extensible software.

In this course, we begin by exploring the problems JPMS was designed to solve, helping you understand its purpose clearly. Next, we’ll dive into the anatomy of a module and how to create them from both the command line and Eclipse. You’ll also learn how modular and non-modular code can interoperate. One of the most exciting features of JPMS is the ability to create custom runtime images (JREs) or smaller distributables, and in this course, you’ll learn exactly how to do that—an essential skill for every developer. Finally, we learn about JPMS Services. Considered the cornerstone of modular programming, JPMS Services enable our application to be extensible allowing us to add new services at runtime.

Each concept is thoroughly explained with realistic examples, clear illustrations, and practical demonstrations to ensure you grasp the material fully.