Just nu sitter vi och lyssnar på Costin Leau från Interface 21 när han pratar om Spring/OSGi. Han ger en mycket bra introduktion till vad OSGi, hur det fungerar och hur man bygger OSGI-applikationer. Han går därefter in på vad Spring/OSGi är. Syftet är att ta enkelheten i Spring och kombinera ihop den med det dynamiska modul-tänkandet i OSGi. Man har infört ett nytt begrepp kalat Spring modules. Detta är kort och gott Spring beans paketerade som OSGI bundles. Det finns också en OsgiBundleApplicationContext som gör att du kan göra dependency injection, ladda resurser och allt annat du är van vid från Spring, men nu med tilläget att du gör det inom ett OSGI bundle scope.
En annan intressant sak med Spring/OSGi är att man kan hantera dynamiken i OSGi tjänster med hjälp av samma typ av XML vi har i Spring. Till exempel, du kan definera kardinalitet mellan bundles och definera callbacks när en tjänst försvinner eller uppgraderas.
Spring/OSGi har även tagit sig an problemet med att testa OSGi bundles. Tidigare så var man tvungen att skapa en egen test-bundle för att kunna enhets-testa sina OSGI bundles. Med Spring/OSGi så har man infört stöd för JUnit, vilket gör att det blir lika enkelt att testa sina OSGi bundles som i en traditionell Spring-applikation .
Det hela ser väldigt spännande ut och Interface 21 har hjälp av både BEA och Oracle (samt en massa andra organisationer såsom Eclipse Equinox) i att ta fram specifikationerna för Spring/OSGi. En skarp 1.0 release är planerad till årets slut, men man kan redan använda det idag (1.0-M3). Costin Leaus presentation hittar ni på JavaZones webbplats.
Erik Hellman