Add Java Platform Module System (JPMS) Support

Aperta
#372 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
30/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
java

Direzione di ricerca

Inizia da function-maven-plugin/src/main/java/com/google/cloud/functions/plugin/RunFunction.java, in corrispondenza della configurazione di classpath hardcoded. Traccia il modo in cui Invoker CLI e i plugin Maven/Gradle avviano le funzioni, quindi determina come la configurazione di module-path debba raggiungere il runtime cloud. Il lavoro richiede il supporto coordinato dell’invocazione locale, degli strumenti di build e dell’esecuzione cloud.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
Lingua principale
Java
Stelle
154
Fork
63
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di GoogleCloudPlatform/functions-framework-java

Tutte le issue di GoogleCloudPlatform/functions-framework-java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.