OCP Chapter 11
Modules
Custom Java Builds
jlink used to create runtime images.
Improved performance
unique package enforcement
- anders twee packages met zelfde naam maar verschillende code
Creating and Running a Modular program
- code files nofidig
- module-info.java file nodig
- module-info.java file can be empty
- (weetje ) zelfs empty .java class kan in project. De compiler skipt m dan
- javac optie -d specifies de dir in which t compiles
- javac optie --module-path indicates location of custom module files
- javac optie -p is gelijk aan --module-path
javac -d
javac -p
Module-info file operators
- exports
- requires
- provides
- uses
- opens
Exports
- possible to exports to specific module.
exports a.b.c to a.d
- access control via private, default (package-private), protected, public
Requires transitive
- requires modeulName specifies that the current module depends on moduleName
- requires transitive specifies any module that requires this module will also depend on moduleName
requires
andrequires transitive
met dezelfde ref mogen niet samen in module-info
provides, uses, opens
- hoef je alleen te weten dat ze bestaan
- provides specifies that a class provides an implementation of a service (zoals een interface...)
- uses specifies that a module is relying on a service.
- opens is voor runtime inspection... moet apart worden opgegeven ivm security
java Command
3 module related options: - describing with --describe-module (vermeld dan ook java.base module) - listing --list-modules - module resolution --show-module-resolution
jar Command
--file
of-f
beschrijf module (feitelijk hetzelfde als java --describe-module)
jdeps Command
- info about dependencies within the module.
- jdeps -s of jdeps -summary (maar 1 minnetje...)
- kan ook zonder -s of -summary
--module-path
kan niet worden afgekort in jdeps.... maar moet je helemaal uitschrijven...
jmods Command
- jmod is only working with jmod files