Меня смущает видимость классов в OSGi. Я запускаю Apache Felix и загружаю следующие пакеты:
- пакеты
antlr
,asm
,jpa
иcore
из eclipselink - JAR-файл OSGi для
javax.persistence
1.99 - OSGi-fied jar с драйвером
com.mysql.jdbc
- мой собственный пакет, который содержит аннотированные классы сущностей и
persistence.xml
- еще один мой собственный пакет, который вызывает
Persistence.createEntityManagerFactory(String, Map)
Теперь, что меня смущает, так это то, какой пакет должен иметь возможность видеть драйвер MySQL. Я думал, что это будет пакет, создающий EntityManagerFactory, но я получаю ошибки ClassNotFound при импорте в этот манифест. Затем я попытался импортировать его из манифеста пакета eclipselink jpa
, но снова ошибся. Только когда я импортирую его из манифеста пакета, содержащего блок сохранения (классы сущностей и persistence.xml
), он работает.
Таким образом, кажется, что драйвер базы данных ищет clasloader для пакета PU, но это не имеет для меня смысла. Что происходит?
Кажется, я не могу найти простую документацию для этого. Эти слайды дают некоторые подсказки, но не совсем исчерпывающие.