/ Exportovanie jarných komponentov ako služieb OSGi - jar, servis, osgi

Export komponentov Spring ako služby OSGi - jar, servis, osgi

Je možné automaticky zaregistrovať jar @Component (alebo niektorou z jej špecifikácií; @Repository) ako službu OSGi? Takže môžem použiť autowiring a všetky ostatné výhody Spring v jednom zväzku a služobný register OSGi komunikovať medzi balíčkami?

UPDATE: Od tejto diskusii zdá sa, že nie je možné používať štandardný Blueprint, iba v Eclipse Gemini.

odpovede:

5 pre odpoveď č. 1

Predpokladám, že ste to oboznámení Eclipse Gemini Blueprint (predtým jarné dynamické moduly, predtým jarné OSGi)?

Fazuľa exportujete pomocou <service>tag, Nie som si istý, či môžete exportovať všetky @Component atď anotované fazuľa automaticky.


1 pre odpoveď č. 2

Možná implementácia na podporu tohto bez toho, aby sa hack @ AlexeyRomanov navrhol by mohol byť pridať a BeanFactoryPostProcessor implementácia na rozšírený balík Gemini Blueprint prostredníctvom fragmentu.

Tento procesor by mohol vytvoriť potrebné definície exportu OSGi v BeanFactory a mal by fungovať správne.

Príklad, ako by to mohlo vyzerať, je ServiceReferenceInjectionBeanPostProcessor vytvorí rozšírenie SpringDM "s / Gemini", ktoré vám umožní vstreknúť OSGi-Services cez @ServiceReference anotácie. (Hoci som spojil jarné DM, táto trieda by mala byť stále prítomná v Gemini, ale nemohla som nájsť priamu väzbu na ich javadoc)


0 pre odpoveď č. 3

Nepríjemné riešenie, iba pre jednobunkové bôby: ukladajte inštanciu do statického poľa v konštruktore a použite tento getrový pohľad ako vašu továrenskú metódu Blueprint / iPOJO.