Hogyan gyűjtenénk be az már működő és a később regisztrált CommandProvider szervizeket? Alapvetően általában három ponton kell dolgoznunk.
Miért van ennyi mindenre szükség? Mivel adott sorrendben indulnak a modulok, ezért fent áll az a lehetőség, hogy ha a saját modulunk előtt vagy után jön létre egy szolgáltatás. Épp ezért, ha egy szerviz bejegyzése :
- előbb történik, a ServiceListener és ServiceTrackerCustomizer nem fog értesítést kapni az eseményről.
- utóbb történik, a ServiceTracker nem fog találatot adni.
Ha jól csináljuk, akkor ahogy az alábbi három ábra (forrás: Eclipse Live - Getting Started with OSGi) is mutatja, nem lesz ilyen jellegű problémánk.
Ha szeretnénk ezen kicsit könnyíteni, vagy valamelyest automatizálni, akkor kell csinálnunk egy saját szolgáltatást. Ezt viszont a DS modullal érdemes megoldani, mivel sok olyan lehetőséget nyújt, ami megkönnyíti a dolgunkat. A következő bejegyzés erről fog szólni. (Eredetileg ide akartam irni, de könyebben emészthető, ha külön van.)
No comments:
Post a Comment