Project Jigsaw_
Florian Troßbach
Project Jigsaw_ Florian Trobach whoami codecentric Karlsruhe - - PowerPoint PPT Presentation
Project Jigsaw_ Florian Trobach whoami codecentric Karlsruhe Plain Old Java Dev Currently trying to tame the SMACK stack 2 Services 3 Modules can provide services java.util.ServiceLoader 4 Modules can provide services
Florian Troßbach
whoami
2
3
Modules can provide services
4
Modules can provide services
module path
=> decoupling!
5
Example
6 module org.codefx.demo.advent { // list the required modules requires org.codefx.demo.advent.calendar; // list the used services uses org.codefx.demo.advent.surprise.SurpriseFactory; } module org.codefx.demo.advent.factory.quote { requires public org.codefx.demo.advent.surprise; // specify which class provides which service provides org.codefx.demo.advent.surprise.SurpriseFactory with org.codefx.demo.advent.factory.quote.QuoteFactory; }
Example
7 Diagram by Nicolai Parlog, http://blog.codefx.org/java/dev/jigsaw-hands-on-guide/
8
Non-modular code
9
A u t
a t i c m
u l e s U n n a m e d m
u l e
Automatic modules
10
Automatic modules
11
Automatic modules
12
The unnamed module
13
The unnamed module
14
The unnamed module
15
Named Modules
Overview
16 [..].advent java.base [..].advent.surprise guava Unnamed module commons- io-2.4.0.jar commons-lang.jar
17
18
19
Build your own JRE!
20
21
Resources
/github.com/ftrossbach/demo-jigsaw-advent-calendar
/openjdk.java.net/projects/jigsaw/spec/sotms/
/blog.codefx.org/tag/project-jigsaw/
/blog.codecentric.de/en/2015/11/first-steps-with-java9- jigsaw-part-1/
/blog.codecentric.de/en/2015/12/first-steps-with-java9- jigsaw-part-2/
22