我想用户艾斯波OSGi框架内,但我不知道内OSGi的类加载机制怎么会允许我需要什么来实现,甚至如何艾斯波可以在OSGi的,因为它被使用。OSGi框架内使用艾斯波
我使用艾斯波5.3并且在束检查体现它不使用OSGi的Dynamic-Import
头。 Esper的核心是我所理解的是在POJO上运行的SQL查询的EPStatements。
我很难理解的是,Esper捆绑包如何不使用动态导入,并且不知道将来可能针对哪些POJO进行操作,从而获得对它们的访问权限。
例如,如果我试图创建EPStatement:
select * com.example.Pojo
如果该类com.example.Pojo是另一束给艾斯波核心,然后Pojo
可以装载的唯一途径是通过使用其 ClassLoader。这可以这样做:
Thread.currentThread().setContextClassLoader(com.example.Pojo.class.getClassLoader);
但不这只是加载Pojo
到含有POJO的本身捆绑的种类空间? Esper捆绑包如何获得它的访问权限,因为它在创建上述示例EPStatement时将需要。
感谢您的建议。我还尝试通过创建一个单独的包来加载类。它通过一个服务(我的定义)添加到系统中的新类被通知并且切换到加载程序到提供POJO的包的类。加载程序包导入所有Esper导出,因此我可以通过这种方式创建语句。我只需要在我自己的脑海中澄清一下,如果以这种方式加载,类就可以从等等中看到。 – Kerry