首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >企业OSGi框架:成熟度比较Apache Aries与Eclipse Gemini

企业OSGi框架:成熟度比较Apache Aries与Eclipse Gemini
EN

Stack Overflow用户
提问于 2012-02-24 19:50:20
回答 1查看 5.9K关注 0票数 19

问:到目前为止,两个企业级OSGi框架中哪个更成熟: Apache Aries还是Eclipse Gemini?

我对白羊座和双子座企业的OSGi能力做了一些基础研究。我也遇到过一个类似的问题:Gemini and Apache Aries blueprint container

我的要求和发现如下。我将非常感谢您的额外投入。

  1. Blueprint容器:白羊座和双子座在针对Blueprint JSR286开发(将使用Spring Portlet MVC进行开发)的实现方面似乎同样成熟:

虽然Gemini Web起源于Spring DM (因此我最初更喜欢Gemini框架),但我相信Aries应该同样能够使用基于Spring Portlet MVC的Web applications.

  • JPA:这是我最关心的领域。虽然我最初更倾向于双子座(由于它起源于Spring DM和活跃的SpringSource社区的支持),但我觉得与白羊座相比,双子座JPA的成熟度相当低。原因:

代码语言:javascript
复制
- Gemini JPA only supports integration with EclipseLink as JPA provider. I would like to use Hibernate. Aries JPA supports Hibernate.
- Referring to [Gemini JPA limitations:](http://wiki.eclipse.org/Gemini/JPA/Documentation/Limitations) especially limitation #5: Lack of support for JTA transactions. It seems that [Aries JPA supports JTA](http://aries.apache.org/modules/jpaproject.html)  ... But I have not been able to get into the details of the level of support.

  1. JNDI:我的新web应用程序需要从托管在JBoss应用服务器中的服务层调用现有的会话EJB。因此,对于客户端层中支持OSGi的网络应用程序来说,JNDI支持至关重要。

看来双子座的名字是already got some capability in this area.,而白羊座的名字是yet to be released

EN

回答 1

Stack Overflow用户

发布于 2012-05-30 07:19:43

同样的问题出现在我的脑海中,我得到了以下结果:

他说:双子座是基于Spring的,Spring的历史要长得多,也证明了很多东西。当我研究代码时,Gemini看起来更清晰,有更多的扩展可能性,但是我在名称空间处理程序方面遇到了问题。即使是在1.0.0版本中,它也不等待名称空间处理程序。Aries等待NS处理程序的方式与等待所需引用的方式相同。我问过OSGi的人,他们说下一个蓝图规范可能包含一个标准的NS处理程序接口,在我看来,这将会有很大帮助。我的结论是我使用Apache Aries,但这不是最终决定。我在一年中的每个季度都会回顾这个话题。我还提出了一些如何改进蓝图的建议,并将其上传到了OSGi bugzilla。我想在夏天实现这些增强功能,当我研究代码时,基于Gemini会容易得多。

2: Gemini包含一个嵌入式Tomcat。如果你只是简单地把捆绑包放入一个春分,它会工作得很好。然而,它包含了几个我想要避免的对Spring的依赖。我喜欢Spring,但我想要尽可能少的依赖。我不认为白羊座在这个话题上有任何主要的支持。直到现在,我终于开始使用与Myfaces和Jersey兼容的Jetty了。到目前为止,我还没有尝试过其他任何东西。此外,我更喜欢Jetty的配置可能性。配置包可以被定义为一个环境变量,如果您想要将集成测试作为构建生命周期的一部分来运行,那么这个环境变量会有很大帮助。如果Gemini支持更多的配置选项(比如来自捆绑包),我会考虑使用该选项。

他说:因为我喜欢使用JTA,所以我根本没有选择使用Gemini。我安静地使用了Aries JPA一段时间,我对它很满意。因为我和许多同事一起工作,所以我要对他们的效率负责。使用Aries JPA时,我遇到的问题是它不等待DataSourceFactory服务(如果在persistence.xml中定义了db连接)或DataSource服务(如果定义了jta数据源或非jta数据源)。这意味着当您使用Aries JPA时,捆绑包的起始顺序很重要。

在我们使用Glassfish和JNDI作为Glassfish在OSGI包之前启动JNDI资源之前,这不是一个问题。当我们开始清理OSGI容器时,我们开始遇到问题,我的同事们开始花费大量时间来尝试获得正确的捆绑包开始订购。

最后,我简单地将Aries JPA捆绑成一个包,并重写了我不喜欢的部分。这意味着我只保留了persistence.xml解析器部分,并在http://everit.org/osgi/jpa/org.everit.osgi.jpa.container/index.html创建了一个自己的项目,在那里我集中精力解决了这个问题。目前它支持Hibernate,我猜(还没有尝试过)使用Eclipselink和编译时增强型OpenJPA。我编写的容器可以很好地与org.apache.aries.jpa.container.context和aries jpa blueprint名称空间处理程序配合使用。

4:如果您使用的是应用服务器,并且您确信JNDI环境先于您的包启动,那么就使用它。但是,您不能捕获修改或删除JNDI资源,因此我根本不建议在OSGi中使用它。如果你因为JPA而需要它,我可以推荐我的容器实现:),它使用标准的OSGi服务跟踪器,即使你在你的persistence.xml中使用*-data-source和osgi: service /...表达式。如果你需要一个集中配置的地方,我建议你应该查看felix-webconsole的configuration选项卡,OSGi规范的元类型和配置管理部分。如果您在Metatypes的帮助下定义了一个配置设置,那么它们将在feilix-webconsole上可用,并且通过configuration Admin API,您将能够捕获配置更改事件。我进行了测试,felix-webconsole在Equinox-Jetty pair上也能正常工作。

希望我的输入是有用的!

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

https://stackoverflow.com/questions/9430270

复制
相关文章

相似问题

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