Angelika Langer - Training & Consulting
HOME | COURSES | TALKS | ARTICLES | GENERICS | LAMBDAS | IOSTREAMS | ABOUT | NEWSLETTER | CONTACT | Twitter | Lanyrd | Linkedin
Course Curriculum Angelika LangerCourse Curriculum Angelika Langer  
HOME

  GENERAL INFO
  SCHEDULE
  REGISTRATION
  
  JAVA
    EFFECTIVE JAVA
    CONCURRENCY
    PERFORMANCE
    LAMBDAS
    JAVA 8 / 9
    MODULE SYSTEM
    GC TUNING
    MEMORY MODEL 
    JAVA INTRO

  C++
    RELIABLE C++
    EFFECTIVE STL
    TEMPLATES
    IOSTREAMS
    C++ INTRO   
 

GENERICS 
LAMBDAS 
IOSTREAMS 
ABOUT 
NEWSLETTER 
CONTACT 
Java Module System

Java Module System
COURSE DESCRIPTION
The most prominent feature of Java 9 is the long awaited module system.  It provides a safe encapsulation mechanism on top of packages and supports specification of import / export relations among modules. 

The seminar explains all language features for using and defining modules, such as module descriptors and various directives such as exports , requires , opens , uses and provides . We will discuss the difference between named, unnamed and automatic modules and the role of the class path and the module path. We will learn about new tools such as jdeps , jlink and jmod and will explore countless new flags for compilation and execution such --add-modules , --add-exports , --patch-module , --illegal-access and many more. 

Beginning with Java 9 the community is encouraged to modularize all applications, libraries and frameworks in a transition phase that will take many years to come.  The JDK itself is already modular, i.e. its deployment structure is radically different in Java 9.  For instance, there is no rt.jar any more.  Plus, the version strings have changed.  Using the new encapsulation facilities, internal JDK packages have become inaccessible.  For projects that pushed Java to the limits the migration from Java 8 to Java 9 may be quite a challenge.  Typical issues are use of JDK internals, illegal reflective access to private parts, and split packages.

In this seminar we will address both migration issues and strategies for modularization.  Attendants have plenty of opportunity to practice and experiment during hands-on labs.

Prerequisite Courses and Skills: Working knowledge of Java; in-depth experience with Java not required. 
Duration: 1 day
Exercises: Workshops and hands-on labs

This is a course for Java programmers who need an overview of Java's module system either because the need to migrate from Java 8 to Java 9 and look for information regarding migration issues related to the module system or because they want to modularize existing components or create modular applications from scratch.
The course is designed to build on existing expertise as Java programmers and takes the attendants' skills one step further. Prerequisite for these seminars is at least 1 year of experience with Java or equivalent knowledge. 

 
COURSE CONTENT


 

Module System Basics
  • Motivation for a Module System
  • Module Description
  • Module Development
  • Modular JDK
  • Critique

  •  
Modularization
  • Top-Down vs. Bottom-Up
  • Named, Unnamed & Automatic Modules
  • Module Path vs. Class Path
  • Naming Conventions for Modules
  • Diagnostics & Tools
  • Cyclic Dependencies

  •  
Migration Issues
  • JDK Deployment Structure
  • Version String
  • Prepended Bootclasspath
  • JDK Internals
  • Split Packages
  • Patching Modules
Deep Reflection 
  • Directives for Reflective Access
  • Open and Weak Modules
Services
  • Services in Java 8
  • Services in Java 9
  • Directives uses and provides
Miscellanous
  • Breaking Encapsulation
  • JMOD Files
  • Multi-Release JAR Files
  • Class Loader Layers
PERFORMANCE OBJECTIVES
 
Keep your Java skills up-to-date
Learn how to migrate smoothly from Java 8 to Java 9
Master the Java Platform Module System
Know how to create modular applications
Understand Java's encapsulation mechanisms 

BUSINESS OBJECTIVES
 
Equip your software professionals with industrial-strength Java skills 
Increase your Java software's performance and scalability
Get the most out of the Java 9 module system

AUTHOR & TRAINER

The course is designed by Klaus Kreft & Angelika Langer and backed by years of experience in teaching and more than a decade of practical experience in industrial software development both in C++ and Java.
Angelika Langer is a freelance trainer/consultant in the area of software development in C++ and Java, author of language reference material such as the Java Generics FAQs [ ], the Lambdas/Streams Tutorial & Reference  [ ], and countless articles on C++ and Java topics [ ]. 
Klaus Kreft is a senior consultant for more than 25 years and has served as the lead architect and performance expert on several successful industry projects. He has been working in Java since its advent in 1995. 
Both are recognized speakers at OO and Java conferences and author of numerous articles on C++ and Java topics in various computer magazines worldwide. Together they write a column for the German Java magazine JavaMagazin  [ ] and are authors of the  books "Standard C++ IOStreams and Locales" (2000) [ ] and "Java Core Programmierung" (2011) [ ], the Online FAQ on Java Generics [ ], and the Lambdas/Streams Tutorial & Reference  [ ].
 

FURTHER READING

To get an impression of some of the topics covered in this course check out these sample materials: 
 
A Overview of Java 9
Conference Presentation at W-JAX 2016 (video)
 
 
 
TRAINING LOCATIONS

Open Enrollment
Public courses are conducted in collaboration with partner companies worldwide. Presentation language is English or German, depending on the location. For further information go to GENERAL INFO.
On-Site Training
Courses can be held at your company site. Duration and content will be tailored to your specific needs and prerequisites. Presentation language is English or German.  For further information go to GENERAL INFO.
For information regarding training locations and the current schedule of public courses go to SCHEDULE. For further information or enrollment send me EMAIL or use the REGISTRATION form.
Schedule
To check for availability, price and other details send me EMAIL or use the REGISTRATION form.
  © Copyright 1995-2017 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Courses/Java-Module-System.html  last update: 29 Aug 2017