2009-10-19 14 views
23

Nowa specyfikacja R4.2 dla OSGi opisuje usługę Blueprint dla wtrysku zależności i okablowania serwisowego.OSGi: Czy Blueprint zastępuje usługi deklaracyjne?

Czy Blueprint zastępuje Usługi deklaracyjne (które są nadal częścią specyfikacji), , czy też są one przeznaczone do współpracy?

Czy Blueprint jest już dostępny dla popularnych wdrożeń (Felix i Equinox)?

+1

Bierze się na to - [Blueprint lub DS lub co używać?] (Http://karaf.922171.n3.nabble.com/Blueprint-or-DS-or-what-to-use-td4045845.html) – fnt

Odpowiedz

12

Zadałem sobie to samo pytanie i podczas omawiania tego z innymi osobami zaangażowanymi w ten temat, tenor był taki, że chociaż te dwa nakładają się w pewnym stopniu na przypadek użycia, który jest całkiem inny. DS to rozwiązanie o niewielkiej masie, które pozwala uniknąć deklaracji w kategoriach Aktywatory i modelowe zależności usług. BP jest w zasadzie wdrożeniem ukierunkowanym na kontener DI w przedsiębiorstwach. Jest także bardziej powszechne w przypadku "zwykłych" programistów Java, którzy nie są zaznajomieni z dynamiczną naturą OSGi (ukrywanie się za serwerami proxy).

Wdrożenie jest mądre, działają na nim dwa projekty (wszystkie są agnostyczne i nie są wydawane oficjalnie). Spring DM 2.0 ma dostarczyć implementację (2.0.0.M1 already contains a working implementation) oraz Apache w ramach projektu geronimo (slideshow).

3

Dla mojego doświadczenia w środowisku opartym na Felix, DS jest jedynym wtryskiwaczem zależności, który jest dojrzały i zapewnia spójność z innymi częściami specyfikacji Kompendium OSGi, takich jak ConfigAdmin.

Blueprint wydaje mi się politycznym włączeniem Spring DM do specyfikacji OSGi.

iPojo jest alternatywą opartą na adnotacjach Java zamiast deskryptorów XML, ukrywa jakąś część podstawy OSGi.

1

Jeśli korzystałeś już wcześniej ze Springa, usługi Blueprint są bardziej znane. Deklaratywne usługi nie są tak potężne, ale szeroko stosowane w kontenerach OSGi.

0

Inną kwestią jest to, że usługi w zakresie planu - o ile mi wiadomo - są obecne w jednym kontenerze, kontenerze planu - podczas gdy usługi deklaratywne są udostępniane w pakietach, które je odwołują. Szczególnie w przypadku Equinox powoduje to inne zachowanie. DS powinien być użyty ponad planem, jeśli chcesz stosować się do rygorystycznego podejścia ładującego klasy, które popiera adwokat.