Integrated: 8306914: Implement JEP 458: Launch Multi-File Source-Code Programs

Christian Stein cstein at openjdk.org
Tue Dec 5 07:53:47 UTC 2023


On Fri, 28 Apr 2023 08:00:36 GMT, Christian Stein <cstein at openjdk.org> wrote:

> Please review this change set implementing [JEP 458](https://openjdk.org/jeps/458) "Launch Multi-File Source-Code Programs" by introducing a new entry-point `SourceLauncher` in package `com.sun.tools.javac.launcher` of module `jdk.compiler`. The code of the new entry-point and other new classes introduced by this pull request is based on the original implementation (now removed `Main.java` file). It extends it to dynamically resolve required types "on-the-fly" using an in-memory class loader capable to compile Java source files - applying a strict name-based pattern as described in the JEP.
> 
> ### OpenJDK's Demo Programs
> 
> OpenJDK's demo programs can be found in the [src/demo/share/jfc](https://github.com/openjdk/jdk/tree/master/src/demo/share/jfc) directory. These multi-file source-code programs can be launched via `java ${PROGRAM}` once this implementation is integrated; with `${PROGRAM}` being one of the following files:
> 
> - [x] `src/demo/share/jfc/CodePointIM/CodePointIM.java`
> - [x] `src/demo/share/jfc/FileChooserDemo/FileChooserDemo.java`
> - [x] `src/demo/share/jfc/Font2DTest/Font2DTest.java`
> - [x] `src/demo/share/jfc/J2Ddemo/java2d/J2Ddemo.java`
> - [x] `src/demo/share/jfc/Metalworks/Metalworks.java`
> - [x] `src/demo/share/jfc/Notepad/Notepad.java`
> - [x] `src/demo/share/jfc/SampleTree/SampleTree.java`
> - [x] `src/demo/share/jfc/SwingSet2/SwingSet2.java`
> - [x] `src/demo/share/jfc/TableExample/TableExample3.java`
> - [x] `src/demo/share/jfc/TableExample/TableExample4.java`
> - [x] `src/demo/share/jfc/TransparentRuler/transparentruler/Ruler.java`
> 
> The following demo programs do not start out of the box:
> 
> - `src/demo/share/jfc/TableExample/TableExample.java` — requires a database driver on the class path
> - `src/demo/share/jfc/TableExample/TableExample2.java` —  requires a database driver on the class path
> - `src/demo/share/jfc/Stylepad/Stylepad.java` — requires `src/demo/share/jfc/Notepad/Notepad.java`
> 
> Tested tier1-tier5.

This pull request has now been integrated.

Changeset: 517b1788
Author:    Christian Stein <cstein at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/517b1788198fc325961df61161f9b365c7b2524e
Stats:     3364 lines in 27 files changed: 2504 ins; 841 del; 19 mod

8306914: Implement JEP 458: Launch Multi-File Source-Code Programs

Reviewed-by: jlahoda, jlaskey

-------------

PR: https://git.openjdk.org/jdk/pull/13712


More information about the compiler-dev mailing list