2011-02-01 22 views
5

Me gustaría utilizar Google Guice (2.0 o 3.0, no importa) para mi proyecto Netbeans Platform. Mi proyecto tiene varios módulos de Netbeans. Logré usar Guice en un único Módulo de Netbeans, pero ahora quiero inyectar una Dependencia de un NBModule a otro. es posible? Busqué en Google y busqué en las listas de correo de netbeans y guice, pero parece que nadie lo intentó.Uso de Netbeans RCP con Google Guice

No quiero utilizar la API de búsqueda para esto, porque realmente necesito la Inyección de dependencias para una mejor prueba.

¿Alguien ha tenido alguna experiencia con eso?

Editar: Para ser más específicos: ¿Puedo usar el mismo inyector para todos los NBModules o tengo que crear un inyector para cada módulo?

+0

No conoces los módulos Netbeans, pero ¿no puedes usar una clase singleton con una variable estática con el inyector que lo hace disponible globalmente? (Por cierto, cada prueba JUnit deberá inicializar el inyector nuevamente) – Kdeveloper

Respuesta

0

No he trabajado con Netbeans RCP, solo con Eclipse RCP y con integración con Spring. Tuvimos que tener un contexto de aplicación Springs separado para cada complemento, con un contexto raíz que se compartió entre todos los demás complementos. Entonces necesitarías algo similar, inyectores separados para cada módulo. No estoy seguro pero creo que Guice no admite el concepto de incluir un inyector a otro como inyector principal.

3

Me doy cuenta de que esta pregunta es antigua, pero como el tema sigue siendo relevante, decidí compartir mis hallazgos.

Utilizamos con éxito Google Guice 3.0 en nuestro proyecto de la plataforma Netbeans. Esto incluye inyectar dependencias a través de NBM usando un inyector. El único problema que encontramos fue que Guice no reconoció las anotaciones en otros NBM, porque se cargaron a través de otros cargadores de clases. Vea http://tkills.blogspot.com/2014/08/using-google-guice-in-netbeans-rcp.html para más detalles.

+0

Desde su blog parece que todo funcionó al crear un módulo envoltorio para javax.inject. *. ¿Había algo que todavía no funcionaba después de eso? – Ryan

+0

No, en nuestro proyecto, ese fue el único problema. – Tarje