spring-projects / spring-projects/spring-framework
Remove dependency on java.desktop and other modules
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 60.2k
- Forks
- 38.8k
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 27
Description
Spring requires the java.desktop module to be present at Java runtimes only so that it can use the classes in the java.beans package.
Would be a good start for modernizing Spring apps on a post Java 9+ era of modules if Spring could at least work on slim Java runtimes produced with jlink.
Other modules to consider adjusting the dependency are java.naming, java.xml, java.sql, jdk.*, java.instrument, java.management,java.rmi, java.scripting.
This is not about making Spring compatible with Java SE modules. This is only to allow developers to have smaller Java runtimes created with jlink.
In an ideal world, a Java runtime, created with the following jlink command should be sufficient to run a Spring Boot Hello World with the Web dependency:
$ jlink \
--add-modules java.base,java.logging \
--strip-debug \
--no-man-pages \
--no-header-files \
--compress=2 \
--output /javaruntime
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin with the Spring Boot Web dependency and the listed Java modules, using the supplied jlink command as the baseline. Map which modules are required at runtime and identify the dependencies to remove; done means a Web Hello World runs on that minimal runtime without unnecessary modules.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100