Mit Java 9 kommt das lange angekündigte Modulsystem Jigsaw. Jigsaw ist eine sehr grundlegende Strukturänderung von Java-Plattform und -Sprache, mit deren Auswirkungen man sich möglichst früh beschäftigen sollte. Eine erste Jigsaw-Version im September 2015 hatte für so viele Diskussionen gesorgt, dass Java9-Roadmap und Feature-Freeze um ein halbes Jahr auf 2017 verschoben wurden.

In diesem Vortrag erläutern wir Grundlagen von Jigsaw. Wir zeigen anhand von Code-Beispielen, wie das Modulsystem aussieht und welche wichtigen Designentscheidungen getroffen wurden:

  • Warum braucht Java überhaupt ein Modulsystem? Was will man erreichen? Wie profitieren Entwickler davon?
  • Was ist ein Modul? Wie definiere ich Module und Abhängigkeiten? Welche Sichtbarkeiten gibt es zwischen Modulen?
  • Module sind sowohl Compiler-Erweiterung als auch Teil des Laufzeitsystems. Wie wirkt sich das aus?
  • Wie vertragen sich Module mit generischen Ansätzen wie Reflection oder Callbacks, auf denen eine Reihe bekannter Frameworks basieren?
  • Welche anderen Konstrukte gibt es (Beispiel: Services)?

Frühere Java-Versionen waren immer abwärtskompatibel. Jigsaw ist eine tiefgreifende strukturelle Veränderung, daher zeigen wir erste Ansätze zu Migrationspfaden sowie zu Architektur und Design.