Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Java9/Features"
Line 6: | Line 6: | ||
+ | {| cellspacing="0" cellpadding="5" border="1" align="center" | ||
+ | |+ '''Java 9 progress''' | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Modules | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | [[#Milling Project Coin]] | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Unicode support | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | [[#JRT/JDK9]] | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | JMOD/JLink tools | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | [[#Parser]] (Sasikanth) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Compiler (Sasi/Stephan) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | July | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Reconciler (Sasi) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Error recovery (Sasi/Stephan) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | [[#Code generation]] (Sasi) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(206, 242, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | [[#Java Model]] (Jay) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | Need to be investigated | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | [[#DOM AST]] (Manoj) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | AST Rewrite (Manoj) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Formatter | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(206, 242, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Indexer (Manoj) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Search (manoj) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Code select (Jay) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(206, 242, 206);" | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(206, 242, 206);" | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Code completion (Manoj) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | in progress | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | in progress | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | in progress | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | [[#APT]] (Jay) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | Under investigation | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | JSR 199 (Jay) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | Under investigation | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | [[#Batch Compiler]] (Jay) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | In progress | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% green;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Editor (Noopur) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Quick Assist (Noopur) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Quick Fix (Noopur) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Launch (Sarika) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | Debug (Sarika) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% yellow;" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | |- | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | UI (Noopur) | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% " | NA | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | ! width="180" align="center" style="background: none repeat scroll 0% 0% rgb(242, 206, 206);" | | ||
+ | |} | ||
== Compiler/Builder == | == Compiler/Builder == | ||
− | ==== Java 9 EE and JRE 9 (80%) ==== | + | ==== <span id="JRT/JDK9"></span>Java 9 EE and JRE 9 (80%) ==== |
The IDE should support JavaSE9 as a valid EE and allow mapping a valid JRE/JDK 9. | The IDE should support JavaSE9 as a valid EE and allow mapping a valid JRE/JDK 9. | ||
Line 16: | Line 180: | ||
be adjusted to work with the jimage format. Goal is to have all existing tests pass with a jigsaw build. | be adjusted to work with the jimage format. Goal is to have all existing tests pass with a jigsaw build. | ||
− | ==== Parser support for module-info.java (100%) ==== | + | ==== <span id="Parser"></span>Parser support for module-info.java (100%) ==== |
Grammar needs to be improved to accommodate new syntax changes in a module-info.java. The parser should take care | Grammar needs to be improved to accommodate new syntax changes in a module-info.java. The parser should take care | ||
of rejecting invalid code in a module-info with proper error. For instance, annotations are not supported in a module-info. | of rejecting invalid code in a module-info with proper error. For instance, annotations are not supported in a module-info. | ||
Line 25: | Line 189: | ||
a module, in a form useful to the resolution. | a module, in a form useful to the resolution. | ||
− | ==== Code generation (80%) ==== | + | ==== <span id="Code generation"></span>Code generation (80%) ==== |
Compiler module-info.java need to be compiled into .class, in the format specified by the VM specification. | Compiler module-info.java need to be compiled into .class, in the format specified by the VM specification. | ||
Line 37: | Line 201: | ||
that all required modules are present in the current compilation context | that all required modules are present in the current compilation context | ||
− | ==== Module System ==== | + | ==== <span id="Module System"></span>Module System ==== |
Module system is eclipse's implementation of the module system specified in JEP 261. Module system is responsible for | Module system is eclipse's implementation of the module system specified in JEP 261. Module system is responsible for | ||
1. keeping track of modules in the current compilation context. | 1. keeping track of modules in the current compilation context. | ||
2. Help LookupEnvironment in finding packages and Types according to the module dependencies and readability. | 2. Help LookupEnvironment in finding packages and Types according to the module dependencies and readability. | ||
− | ==== Batch compiler (50%) ==== | + | ==== <span id="Batch compiler"></span>Batch compiler (50%) ==== |
JEP 261 specifies several new command line arguments. These need to be supported in ECJ. Notably -modulepath (shortly -mp) and -addexport. | JEP 261 specifies several new command line arguments. These need to be supported in ECJ. Notably -modulepath (shortly -mp) and -addexport. | ||
==== JSR 199 support ==== | ==== JSR 199 support ==== | ||
(https://bugs.eclipse.org/bugs/show_bug.cgi?id=479483) | (https://bugs.eclipse.org/bugs/show_bug.cgi?id=479483) | ||
− | ==== APT support ==== | + | ====<span id="APT"></span> APT support ==== |
==== Code Assist (90%) ==== | ==== Code Assist (90%) ==== | ||
Code Completion (80%) - code completion support in, but with some new bugs (maybe introduced with the newer code ) - the top level bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=480612 | Code Completion (80%) - code completion support in, but with some new bugs (maybe introduced with the newer code ) - the top level bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=480612 | ||
Code Selection (100%) (https://bugs.eclipse.org/bugs/show_bug.cgi?id=510339) | Code Selection (100%) (https://bugs.eclipse.org/bugs/show_bug.cgi?id=510339) | ||
− | ==== Java Model ==== | + | ==== <span id="Java Model"></span>Java Model ==== |
A big open question is where modules fits in the current Java model hierarchy. One way to go forward is to consider | A big open question is where modules fits in the current Java model hierarchy. One way to go forward is to consider | ||
modules to be the following: | modules to be the following: | ||
Line 60: | Line 224: | ||
that needs to be addressed (https://bugs.eclipse.org/bugs/show_bug.cgi?id=479483) | that needs to be addressed (https://bugs.eclipse.org/bugs/show_bug.cgi?id=479483) | ||
− | ==== DOM AST (100%) ==== | + | ==== <span id="DOM AST"></span>DOM AST (100%) ==== |
Ref https://bugs.eclipse.org/bugs/show_bug.cgi?id=487780 | Ref https://bugs.eclipse.org/bugs/show_bug.cgi?id=487780 | ||
− | ==== Milling Project Coin (100%) ==== | + | ==== <span id="Milling Project Coin"></span>Milling Project Coin (100%) ==== |
see https://bugs.eclipse.org/bugs/show_bug.cgi?id=495954 | see https://bugs.eclipse.org/bugs/show_bug.cgi?id=495954 | ||
Revision as of 05:20, 25 July 2017
The goal of this wiki page is to list down all the high level features that are being considered in Eclipse IDE for Java 9. The features shall include all the essential ones, nice-to-have and migration related features if any. Also, wherever possible please categorize the features as to which Eclipse component it falls under and if there are any dependencies. For tracking purposes, it would be ideal to highlight what state a particular feature is in. Possible states are Study, Requirement gathering, design, implementation, testing etc.
Modules | #Milling Project Coin | Unicode support | #JRT/JDK9 | JMOD/JLink tools | |
---|---|---|---|---|---|
#Parser (Sasikanth) | NA | NA | |||
Compiler (Sasi/Stephan) | July | NA | NA | ||
Reconciler (Sasi) | NA | NA | |||
Error recovery (Sasi/Stephan) | NA | NA | |||
#Code generation (Sasi) | NA | ||||
#Java Model (Jay) | Need to be investigated | ||||
#DOM AST (Manoj) | NA | NA | NA | ||
AST Rewrite (Manoj) | NA | NA | NA | ||
Formatter | NA | NA | NA | ||
Indexer (Manoj) | NA | NA | NA | ||
Search (manoj) | NA | NA | NA | ||
Code select (Jay) | NA | NA | NA | ||
Code completion (Manoj) | in progress | in progress | NA | in progress | NA |
#APT (Jay) | Under investigation | NA | NA | NA | NA |
JSR 199 (Jay) | Under investigation | NA | NA | NA | NA |
#Batch Compiler (Jay) | In progress | NA | NA | NA | |
Editor (Noopur) | NA | ||||
Quick Assist (Noopur) | NA | NA | NA | ||
Quick Fix (Noopur) | NA | NA | NA | ||
Launch (Sarika) | NA | NA | NA | ||
Debug (Sarika) | NA | NA | NA | NA | |
UI (Noopur) | NA | NA | NA |
Contents
- 1 Compiler/Builder
- 1.1 Java 9 EE and JRE 9 (80%)
- 1.2 Jimage support (100%)
- 1.3 Parser support for module-info.java (100%)
- 1.4 Classfile support (100%)
- 1.5 Code generation (80%)
- 1.6 Disassembler support (0%)
- 1.7 Module resolution
- 1.8 Module System
- 1.9 Batch compiler (50%)
- 1.10 JSR 199 support
- 1.11 APT support
- 1.12 Code Assist (90%)
- 1.13 Java Model
- 1.14 DOM AST (100%)
- 1.15 Milling Project Coin (100%)
- 2 UI
- 3 Migration path:
Compiler/Builder
Java 9 EE and JRE 9 (80%)
The IDE should support JavaSE9 as a valid EE and allow mapping a valid JRE/JDK 9.
Jimage support (100%)
JDK/JRE 9 now ship with jimage files that contain all the platform resources. The resolved classpath of a project with JRE 9 will now contain a single entry representing the bootmodule.jimage. All JDT components should now be adjusted to work with the jimage format. Goal is to have all existing tests pass with a jigsaw build.
Parser support for module-info.java (100%)
Grammar needs to be improved to accommodate new syntax changes in a module-info.java. The parser should take care of rejecting invalid code in a module-info with proper error. For instance, annotations are not supported in a module-info. Similarly it is not allowed to have regular code in a module-info.
Classfile support (100%)
The Classfile, ClassfileReader and friends should recognize a module-info.class and load the classfile content into a module, in a form useful to the resolution.
Code generation (80%)
Compiler module-info.java need to be compiled into .class, in the format specified by the VM specification.
Disassembler support (0%)
The Disassembler should recognize a module-info.class and load the classfile content from the different sections - see JVMS9 4.7.25-27 [ https://bugs.eclipse.org/bugs/show_bug.cgi?id=508889]
Module resolution
The parser will take care of checking for incorrect syntax in a module-info.java. However, we still need a semantic analysis. Specifically, we might want to validate the following: That the exported packages and other entities specified actually exist in this module that all required modules are present in the current compilation context
Module System
Module system is eclipse's implementation of the module system specified in JEP 261. Module system is responsible for 1. keeping track of modules in the current compilation context. 2. Help LookupEnvironment in finding packages and Types according to the module dependencies and readability.
Batch compiler (50%)
JEP 261 specifies several new command line arguments. These need to be supported in ECJ. Notably -modulepath (shortly -mp) and -addexport.
JSR 199 support
(https://bugs.eclipse.org/bugs/show_bug.cgi?id=479483)
APT support
Code Assist (90%)
Code Completion (80%) - code completion support in, but with some new bugs (maybe introduced with the newer code ) - the top level bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=480612 Code Selection (100%) (https://bugs.eclipse.org/bugs/show_bug.cgi?id=510339)
Java Model
A big open question is where modules fits in the current Java model hierarchy. One way to go forward is to consider modules to be the following: 1. A kind of a package fragment root 2. A classpath location (IClasspathEntry, FileSystem.Classpath, ClasspathLocation etc.) This would mean that there could be multiple modules in a single Java projects. This is an open question that needs to be addressed (https://bugs.eclipse.org/bugs/show_bug.cgi?id=479483)
DOM AST (100%)
Ref https://bugs.eclipse.org/bugs/show_bug.cgi?id=487780
Milling Project Coin (100%)
see https://bugs.eclipse.org/bugs/show_bug.cgi?id=495954
UI
Syntax highlighting
Editor should highlight the keywords in a module-info.java when opened in a Java editor.
Code completion
Code completion should work on completion of packages, types and module names in a module-info.java
Quick assist/fix
What kind of assistance do we want to provide here?
Classfile viewer
Being able to load/view module-info.class in the Classfile viewer.
Export Java project into JMOD?
A Java project with a module or a module in a Java project can be exported to a JMOD. It is still not clear whether this format is open for use by others.
Export Java projects into Jimage?
User should be able to select multiple modules in the workspace and export it to a jimage. It is still not clear whether this format is open for use by others.
Modules in the package explorer.
It needs to be decided how we want to represent the module in the package explorer.