Java 9 support in Eclipse Jay Arthanareeswaran, Manoj Palat IBM
Agenda Quick view of Java 9 Impact on Eclipse Demo Open items What the future holds
Java 9 Project Jigsaw Modular JDK (JEP 200) Module Platform source code (JEP 201) Modular Run-Time Images (JEP 220) Java Platform Module System (JSR 376) Unicode 7.0 and 8.0 Project Coin (JEP 213) New Version-String Scheme (JEP 223)...
Modular Run-Time Images No more JAR files! All in one big (+ couple more) Jimage (or) Individual JMOD files – one for each module No more boot.class.path or java.ext.dirs Brand new URI scheme Format of the archive probably will remain internal Java.nio based File system provider (jrt-fs) Works with JRE 8 and above
Modular Platform
Java Platform Modular System Modules offer Reliable configuration Strong encapsulation Sounds familiar? module my.mod { exports p.q to your.mod; exports p.q.r; requires java.base; requires java.sql; } Module-info.java
Where does module fit in Eclipse?
Let's see what we've got!
Multiple modules in a project? More power to the user Demand for multiple classpaths within a project (bug ) Consistent between command line compiler and IDE Challenges Discoverability Won't work for bundles One bundle – one MANIFEST => one module Complicated set-up with multiple output locations within project
Open design issues Definition of Module in Eclipse/JDT Discoverability of modules Redundant Project dependency? Cyclic dependencies Scope of non-compiler features Redundancy - MANIFEST and module-info Loading Extensions
What's left JSR 199 implementation (untested) Command line compiler -modulepath definition still being shaped Mixture of –modulepath and -classpath Code assist, Outline View, Module Editor etc. Unicode – 7.0 in, 8.0 not yet Coin project Support for JMOD creation, Jlink etc?
Resources Download feature patches Market place - Java 9 Support (BETA) for Neon (or) builds builds Define module in Eclipse (bug )479483