2011-02-01 20 views
5

vorrei utilizzare Google Guice (2.0 o 3.0, non importa) per il mio progetto piattaforma Netbeans. Il mio progetto ha diversi moduli Netbeans. Sono riuscito a usare Guice in un singolo modulo Netbeans, ma ora voglio iniettare una dipendenza da un NBModule a un altro. È possibile? Ho cercato tanto su Google e ho cercato le mailing list di netbeans e guicing, ma sembra che nessuno l'abbia mai provato.Utilizzando Netbeans RCP con Google Guice

Non voglio utilizzare l'API di ricerca per questo, perché ho davvero bisogno di Dependency Injection per una migliore test.

Qualcuno ha avuto esperienze con questo?

Modifica: Per essere più precisi: Posso usare lo stesso iniettore per tutti NBModules o devo creare un iniettore per ogni modulo?

+0

Non si conoscono i moduli Netbeans, ma non è possibile utilizzare una classe singleton con una variabile statica con l'iniettore che la rende disponibile globalmente? (BTW ogni test di JUnit dovrà di nuovo inizializzare l'iniettore) – Kdeveloper

risposta

0

Non ho lavorato con Netbeans RCP, solo con Eclipse RCP e con l'integrazione con la Primavera. Dovevamo avere un contesto applicativo di Springs diverso per ogni plugin, con un unico contesto di root condiviso tra tutti gli altri plugin. Quindi avresti bisogno di qualcosa di simile, iniettori separati per ogni modulo. Non sono sicuro, ma io cosa Guice non supporta il concetto di includere un iniettore a un altro come iniettore genitore.

3

mi rendo conto che questa domanda è vecchia, ma dal momento che l'argomento è ancora rilevante ho deciso di condividere le mie scoperte.

Usiamo successo di Google Guice 3.0 nel nostro progetto Netbeans Platform. Ciò include l'iniezione di dipendenze tra gli NBM usando un iniettore. L'unico problema che abbiamo riscontrato è che Guice non ha riconosciuto le annotazioni in altri NBM, perché sono stati caricati attraverso altri classloader. Vedi http://tkills.blogspot.com/2014/08/using-google-guice-in-netbeans-rcp.html per i dettagli.

+0

Dal tuo blog sembra che tu abbia tutto a posto facendo un modulo wrapper per javax.inject. *. C'era qualcosa che ancora non funzionava dopo? – Ryan

+0

No, nel nostro progetto, quello era l'unico problema. – Tarje