我想在 OSGi 框架中使用 Esper,但是我不确定 OSGi 中的类加载机制将如何实现我需要实现的目标,甚至不确定如何在 OSGi 中使用 Esper。
我使用的是 Esper 5.3,并且在检查捆绑清单时它不使用Dynamic-Import
OSGi 标头。Esper 的核心是 EPStatements,我理解它是在 POJO 上运行的 SQL 查询。
我正在努力理解的是 Esper 捆绑包如何访问它们,它不使用动态导入并且不知道将来可能会被引导操作哪些 POJO。
例如,如果我尝试创建 EPStatement:
select * com.example.Pojo
如果 com.example.Pojo 类在 Esper 核心的另一个包中,那么唯一Pojo
可以加载的方法是使用它的ClassLoader。这可以通过以下方式完成:
Thread.currentThread().setContextClassLoader(com.example.Pojo.class.getClassLoader);
但这不只是加载Pojo
到包含 Pojo 本身的包的类空间中吗?在创建上述示例 EPStatement 时,Esper 包如何获得对它的访问权限。