Я хочу использовать Esper в среде OSGi, однако я не уверен, как механизм загрузки классов в OSGi позволит мне достичь того, что мне нужно, или даже как Esper можно использовать в OSGi из-за этого.
Я использую Esper 5.3, и при проверке манифеста пакета он не использует заголовок Dynamic-Import
OSGi. В основе Esper лежат EPSStatements, которые я понимаю как SQL-запросы, работающие с POJO.
Что я изо всех сил пытаюсь понять, так это то, как пакет Esper, который не использует динамический импорт и не знает, какие POJO он может использовать для работы в будущем, получает к ним доступ.
Например, если я попытаюсь создать EPStatement:
select * com.example.Pojo
Если класс com.example.Pojo находится в другом пакете ядра Esper, то единственный способ Pojo
может быть загружен с помощью его ClassLoader. Это может быть сделано:
Thread.currentThread().setContextClassLoader(com.example.Pojo.class.getClassLoader);
Но разве это не просто загружает Pojo
в пространство классов пакета, содержащего сам Pojo? Как пакет Esper может получить к нему доступ, как это потребуется при создании приведенного выше примера EPStatement.