GoogleCloudPlatform / GoogleCloudPlatform/functions-framework-java

Add Java Platform Module System (JPMS) Support

未关闭
#372 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement P2
主要语言
Java
星标
154
派生
63
PR 合并指标
30 天内没有已合并 PR

描述

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:
1. module-info.java files are ignored at runtime (treated as regular classes on classpath)
2. provides...with service provider declarations don't work, requiring fallback to legacy META-INF/services files
3. Module encapsulation and strong accessibility rules are not enforced
4. No module-level dependency management or version conflict resolution
5. 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:

1. Local Development (Invoker CLI) - Add --module-path support
2. Build Tooling (Maven/Gradle plugins) - Add module-path configuration (right now classpath is hardcoded [here](https://github.com/GoogleCloudPlatform/functions-framework-java/blob/de202439e223dcb48e3a3319e4c0d57adc450ec8/function-maven-plugin/src/main/java/com/google/cloud/functions/plugin/RunFunction.java#L68C5-L68C58)
3. Cloud Runtime Infrastructure - Update Google Cloud Functions runtime to support modular execution

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。