JREs 2. Create a hello world module 3. Control access between modules 4. Using Auto-modules 5. Using Unnamed modules 6. Testing HTTP/2 Client API 7. Testing JSHell
- The Modular JDK • JEP 201 - Modular Source Code • JEP 220 - Modular Run-Time Images • JEP 260 - Encapsulate Most Internal APIs • JEP 261 - Module System • JEP 282 - The Java Linker • JEP 238 - Multi-Release JAR Files 90+ new features http://openjdk.java.net/projects/jdk9/ • Other changes • Project Kulla (JShell) • HTTP/2 Client API • Flow API • Collections factories • API changes: Process API, • Stream API e.g.
on the Java components • To increase security by removing access to propietry APIs • To increase performance of the Java platform • To get rid of the monolithic JDK • To modularize JDK source code • To bring Scalable JREs
path>... A ; separated list of directories, each directory is a directory of modules. --add-modules Adds modules to resolution list -m <module>[/<mainclass>] Root module and main class
components (module, class, method, field) public to all modules public only to specific module(s) public only to its own module private protected package Has Access Control on Package Level
the most helpful API for the library developers. Many open-source libraries use it for example: Hibernate, Spring Framework. • Access Java classes, modules, fields, methods, constructors e.g. • Create Java objects • Call Java methods • Access private methods and fields • Access annotations
to other module’s components, other component have to open or export required packages to caller module. exports: Makes packages accessible to other modules at compile time or run time. opens: Makes packages accessible to other modules at run time including access to private members.