In this video, Nick Maiorano introduces the main features of JPMS and project Jigsaw in Java 9, as well as the six Java extension proposals from which these features originate.
- [Narrator] Java version 9, or Java 9 for short is the latest release of the Java programming language and platform. This includes both the Java development kit and the Java runtime environment, better known as the JDK and JRE. Java 9 culminates over three years of work since the release of version eight, but it actually took much more time considering that some of the preparatory work was started over a decade ago. Java 9 realizes almost a hundred new Java extensions proposals that affect everything from the language syntax, the libraries, and the tools.
But the star of the release is the Java Platform Module System OR JPMS. If Java 8 was all about programming differently, Java 9 is all about designing differently. JPMS is an initiative that is often referred to by it's project code name, Jigsaw. It's an enormous effort that it encapsulates no less than six JEP's. These are the modular JDK, modular source code, modular runtime images, encapsulate most internal API's, the module system and Jlink, the Java linker.
These JEP's have been realized in Java JSR 376 or the Java Platform Module System. JPMS has proven to be a very ambitious project. It was originally planned for Java 7, then eight, but proved to be too big, it was instead pushed out to Java 9. It also delayed the release of Java 9 by a year and caused disagreements within the Java community stake holders because it has had significant impact on third party libraries, tools and platforms.
We'll take a closer look at some of those impacts a little bit later but for now let's try to get a better sense of JPMS's objectives. JPMS is all about bringing modularity to Java and treating it as a first class citizen of the language. It forces programmers to think about modularity early in the design, rather than as an after thought. It introduces new concepts, syntax and tools to design and express modularity concerns right in the code and therefore early in the development cycle.
But that's just the half of it. The Java platform itself has been modularized allowing it to be more efficiently deployed on small devices with small footprints and started more quickly. You can see the Java 9 practices what it preaches.
In this course, instructor Nick Maiorano breaks down this complexity by explaining what modularity is all about, how Java has adopted modularity and how to start using to build better quality applications.
- What is modularity?
- The five pillars of modularity
- Modularity in the real world
- JPMS concepts and syntax
- Designing and implementing a modular structure
- Compiling, packaging and running modular applications
- Using the dependency checking tools
- Creating custom runtime images
- Managing backward compatibility with classes and modules
- Explicit, unnamed, and automatic modules
- JPMS tips and recommendations