След като проучих OSGi рамката, бях разработил примерно уеб приложение. Пакетът уеб приложения (.war или .jar) е опакован в eba. Военният файл съдържа куп вградени jar файлове в неговата WEB-INF/lib
директория. Тези буркани са преобразувани в OSGi пакети(using maven-bundle-plugin
) с необходимите пакети за експортиране и импортиране според връзката между бурканите. Сега дори трябва да спомена всички тези буркани(WEB-INF/lib)
в пътя на класа на пакета. Горното работи, защото пакетът (wab също е пакет) може да включва един или повече jarфайлове в него и да използва запис Bundle-Classpath manifest.mf, за да сочи към тях.
В случай, че не включа бурканите в bundle-classpath, получавам ClassNotFoundException
.
Въпросът е, че тогава няма смисъл да конвертирате бурканите в пакети osgi. Очевидно всички буркани в WEB-INF/lib
се зареждат от един и същ зареждащ клас (т.е. зареждащ клас за wab), така че тогава не се възползваме от основните предимства на OSGi, което е главно концепция за зареждане на класове на пакет?