Add Java Platform Module System (JPMS) Support

オープン
#372 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
30/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
java

調査の方向性

function-maven-plugin/src/main/java/com/google/cloud/functions/plugin/RunFunction.java のハードコードされた classpath 設定から始めます。Invoker CLI と Maven/Gradle プラグインがどのように関数を起動するかを追跡し、次に module-path の設定を cloud runtime にどのように渡す必要があるかを判断します。完了には、ローカル呼び出し、ビルドツール、cloud execution にわたる連携したサポートが必要です。

索引モデルが issue の本文から書いたものです。

説明

enhancement P2

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
  3. Cloud Runtime Infrastructure - Update Google Cloud Functions runtime to support modular execution
主要言語
Java
スター
154
フォーク
63
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

GoogleCloudPlatform/functions-framework-java のほかの issue

GoogleCloudPlatform/functions-framework-java の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。