2011-02-01 13 views
5

Chciałbym użyć Google Guice (2.0 lub 3.0, nie ma znaczenia) dla mojego projektu Netbeans Platform. Mój projekt ma kilka modułów Netbeans. Udało mi się użyć Guice w jednym module Netbeans, ale teraz chcę Inject Dependency z jednego NBModuł do drugiego. czy to możliwe? Dużo googlowałem i szukałem list mailingowych netbeans i guice, ale wygląda na to, że nikt nigdy tego nie próbował.Używanie Netbeans RCP z Google Guice

Nie chcę używać do tego API Lookup, ponieważ naprawdę potrzebuję wtrysku Dependency dla lepszych testów.

Czy ktoś ma z tym coś wspólnego?

Edycja: Bardziej szczegółowe: Czy mogę używać tego samego wtryskiwacza dla wszystkich modułów NBM lub czy muszę utworzyć wtryskiwacz dla każdego modułu?

+0

Nie wiem o modułach Netbeans, ale czy nie można użyć klasy singleton ze zmienną statyczną z wtryskiwaczem, który udostępnia ją globalnie? (BTW każdy test JUnit będzie musiał ponownie zainicjować wtryskiwacz) – Kdeveloper

Odpowiedz

0

Nie współpracowałem z Netbeans RCP, tylko z Eclipse RCP i integracją ze Spring. Musieliśmy mieć oddzielny kontekst aplikacji Springs dla każdej wtyczki, z jednym kontekstem głównym, który był wspólny dla wszystkich innych wtyczek. Więc potrzebujesz podobnej rzeczy, oddzielnych wtryskiwaczy dla każdego modułu. Nie jestem pewna, ale Guice nie popiera koncepcji włączenia jednego iniektora do drugiego jako wtryskiwacza macierzystego.

3

Zdaję sobie sprawę, że to pytanie jest stare, ale ponieważ temat jest wciąż aktualny, postanowiłem podzielić się moimi odkryciami.

Pomyślnie wykorzystujemy Google Guice 3.0 w naszym projekcie Netbeans Platform. Obejmuje to wstrzykiwanie zależności między NBM przy użyciu jednego iniektora. Jedynym problemem, który napotkaliśmy, było to, że Guice nie rozpoznaje adnotacji w innych NBM-ach, ponieważ zostały załadowane przez inne moduły ładujące klasy. Aby uzyskać szczegółowe informacje, patrz http://tkills.blogspot.com/2014/08/using-google-guice-in-netbeans-rcp.html.

+0

Z twojego bloga wszystko wskazuje na to, że masz wszystko do roboty, tworząc moduł opakowania dla javax.inject. *. Czy było coś, co dalej nie działało? – Ryan

+0

Nie, w naszym projekcie był to jedyny problem. – Tarje