RFR: 8365555: Cleanup redundancies in jpackage implementation

Alexey Semenyuk asemenyuk at openjdk.org
Thu Aug 14 14:12:26 UTC 2025


- Remove AppImageDesc class. It was supposed to bind an AppImageLayout instance with a root directory, but since AppImageLayout has `rootDirectory()` method it is redundant.
 - Remove redundant `Package.packageLayout()` and `Package.asPackageApplicationLayout()` methods from the model, 
 - Add tests for PackagingPipeline class.
 - Move JUnitAdapter.java from "/test/jdk/tools/jpackage/helpers-test" to "/test/jdk/tools/jpackage/junit/tools" directory, support running platform-specific JUnit tests.
 - Enhance AppImageLayout class, add unit tests for derived MacApplicationLayout and LinuxApplicationLayout classes.
 - Add tests for BuildEnv class.

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

Commit messages:
 - ResourceLocator: make ctor private. This class is not supposed to be instantiated. Improves the coverage.
 - Add a test case to JavaAppDescTest
 - MacDmgPackageBuilder: remove unused variable
 - Use MacBundle with AppImageSigner
 - BuildEnvFromParams: bugfix
 - Rename RuntimeBuilder.createRuntime() to RuntimeBuilder.create()
 - Test for PackagingPipeline
 - Get rid of AppImageDesc. It became redundant when AppImageLayout.rootDirectory() was added. Support using an external app image with a custom app image layout. Add ApplicationBuilder.overrideAppImageLayout(). Remove Package.packageLayout() and Package.asPackageApplicationLayout(). Create Linux and Mac packages with app image layout configured for packaging making PackagingPipeline.Builder.appImageLayoutForPackaging() redundant. Simplify PackagingPipeline. It always builds with application's app image layout. Don't wrap RuntimeException-s in PackagerException-s. Merge PackagingPipeline.appContextMapper and PackagingPipeline.pkgContextMapper into PackagingPipeline.contextMapper. Remove PackagingPipeline.Builder.appImageLayoutForPackaging(). Add MacPackage.guessRuntimeLayout()
 - Implementation Tweaks #1
 - Support custom runtime image layout in BuildEnvFromParams. Support custom runtime image layout for application in FromParams.createApplicationBuilder(). Set correct layout for predefined runtime image on macosx
 - ... and 6 more: https://git.openjdk.org/jdk/compare/8ad1fcc4...0d2b451e

Changes: https://git.openjdk.org/jdk/pull/26778/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26778&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8365555
  Stats: 2353 lines in 55 files changed: 1914 ins; 229 del; 210 mod
  Patch: https://git.openjdk.org/jdk/pull/26778.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26778/head:pull/26778

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


More information about the core-libs-dev mailing list