首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OSGi框架内使用Esper

在OSGi框架内使用Esper
EN

Stack Overflow用户
提问于 2016-01-27 21:49:51
回答 1查看 152关注 0票数 1

我想在OSGi框架内使用Esper,但是我不确定OSGi中的类加载机制将如何允许我需要达到的目标,甚至不确定Esper如何在OSGi中使用。

我使用Esper5.3,在检查包清单时,它不使用Dynamic-Import OSGi头。Esper的核心是EPStatements,据我所知,它是在POJO上操作的SQL查询。

我很难理解的是Esper包是如何获得访问权限的。Esper包不使用动态导入,也不知道它将来可能针对什么POJO操作。

例如,如果我尝试创建EPStatement:

select * com.example.Pojo

如果类com.example.Pojo位于Esper核心的另一个包中,那么加载Pojo的唯一方法就是使用its ClassLoader。这可以通过以下方式做到:

代码语言:javascript
复制
Thread.currentThread().setContextClassLoader(com.example.Pojo.class.getClassLoader);

但是,这不只是将Pojo加载到包含Pojo本身的包的类空间吗?当创建上面的示例EPStatement时,Esper包如何获得对它的访问。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-28 12:58:32

您可以使用"addEventType(String eventTypeName,Class eventClass)“中的"epAdministrator.getConfiguration()”注册类型。这样,您就可以控制类的来源。

当尝试按名称查找类时,Esper总是使用"Thread.currentThread().getContextClassLoader();".您的代码可以使用"setContextClassLoader“来设置自己的类加载器。代码可能会把它放回原处。

您可以简单地更改Esper jar附带的Manifest,并包含您喜欢的任何内容。

你可以用“朋友”包。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35048741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档