Add Java Platform Module System (JPMS) Support
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- java
- Domain
- backend, build-system, cli, cloud
Research direction
Start with function-maven-plugin/src/main/java/com/google/cloud/functions/plugin/RunFunction.java at the hardcoded classpath configuration. Trace how the Invoker CLI and Maven/Gradle plugins launch functions, then determine how module-path configuration must reach the cloud runtime. Done requires coordinated support across local invocation, build tooling, and cloud execution.
Written by the indexing model from the issue text.
Description
Add support for running functions on the module path (--module-path) instead of only the classpath (--classpath) to enable full Java Platform Module System (JPMS) features in the Functions Framework.
Currently, the Functions Framework for Java only supports classpath-based execution, which prevents developers from utilizing JPMS features at runtime even when their code is properly modularized with module-info.java files.
Modern Java applications using JPMS face the following issues:
- module-info.java files are ignored at runtime (treated as regular classes on classpath)
- provides...with service provider declarations don't work, requiring fallback to legacy META-INF/services files
- Module encapsulation and strong accessibility rules are not enforced
- No module-level dependency management or version conflict resolution
- Cannot leverage jlink to create optimized custom runtime images with only required modules, resulting in larger deployment artifacts
This feature request requires changes across three layers:
- Local Development (Invoker CLI) - Add --module-path support
- Build Tooling (Maven/Gradle plugins) - Add module-path configuration (right now classpath is hardcoded here
- Cloud Runtime Infrastructure - Update Google Cloud Functions runtime to support modular execution
- Dominant language
- Java
- Stars
- 154
- Forks
- 63
- PR merge metrics
- No merged PRs in 30d
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.
More from GoogleCloudPlatform/functions-framework-java
-
enhancement P2
Difficulty 1/5 Under an hour Newbie friendliness 65/100
-
enhancement
GoogleCloudPlatform/functions-framework-java#375 · 1 comment · 1 reaction · 1 assignee ·
-
enhancement P3
GoogleCloudPlatform/functions-framework-java#261 · 1 assignee ·
-
How to run `google/fhir-data-pipes/pipelines/batch` uber JAR in Google Cloud Functions locally? OpenP3 question
Difficulty 4/5 3-5 days Newbie friendliness 35/100
GoogleCloudPlatform/functions-framework-java#254 · 1 comment ·
-
enhancement P3
GoogleCloudPlatform/functions-framework-java#209 · 1 assignee ·
All issues in GoogleCloudPlatform/functions-framework-java
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100