InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

OpenEJB 3.0支持对枚举和集合的依赖注入及OSGi和EJB 3.0特性

作者 Srini Penchikala 译者 张龙 发布于 2008年5月7日

领域
语言 & 开发
主题
Java
标签
开源Java ,
EJB

开源轻量级EJB实现框架OpenEJB的最新版支持对枚举、集合和Maps的依赖注入(Dependency Injection,即DI),并且支持OSGi和EJB 3.0规范。在经历了一年半的开发后,OpenEJB 3.0最终版近期发布了。该版本还支持@EJB引用其他EAR文件中的本地接口、事务日志及基于HTTP协议的EJBd,同时它还支持EJB 3.0的新特性如Business Interfaces、Java Persistence API (JPA)及JAX-WS Web Services。

该新版本包含一些代码改进和bug修复,你可以在OpenEJB站点的发布文档中找到这些列表。Alexander Saint Croix最近撰写博文列举出了该版本的新特性、改进及bug修复。

OpenEJB使用了其他一些开源框架,如使用OpenJPA提供JPA和CMP的持久化、使用ActiveMQ处理JMS/MDB、使用Apache CXF实现JAX-WS特性。OpenEJB的一些特性主要瞄准了EJB 3.1规范,如Collapsed EAR(在同一个归档及classloader中共存的ejbs与servlets)及针对单元测试的嵌入式EJB容器。不仅如此,即将成为JavaEE 6组成部分的EJB 3.1 Lite profile非常类似于OpenEJB。

与Java EE容器的集成: 

OpenEJB 3.0可以插件的方式集成到Tomcat 6服务器中,这就在Web应用中增加了对EJBs的支持。将OpenEJB加入到Tomcat中可以为Servlets提供新的Java EE 5能力,如JPA、JAX-WS、JMS、J2EE连接器及事务。OpenEJB天生就提供了对Glassfish部署描述符、Geronimo及部分WebLogic部署描述符的支持。

OSGi支持:

OpenEJB框架是作为一个OSGi包发布的,这意味着所有OpenEJB 3.0的二进制文件与OSGi元数据一起被提供并且可用于任何OSGi平台上。基于OSGi(使用Apache Felix构建)的开源ESB框架ServiceMix 4将把OpenEJB作为ServiceMix的一部分。

OpenEJB项目创始人之一的David Blevins撰写博文记录了该项目的再生最新发布。InfoQ采访了David以更深入了解OpenEJB 3.0的特性及项目未来的路线图,尤其是它将如何支持EJB 3.1规范。

对企业级Java开发者来说,在EJB中支持对枚举和集合对象的依赖注入意味着什么呢?它是如何帮助EJB组件的设计和开发呢? 

关键在于这使得EJB开发者(或者在Tomcat中使用OpenEJB的Servlet开发者)能真正深入到JavaEE的依赖注入功能,并且使之成为自己的东西。枚举、类和集合是我们所增加的额外的内建类型——我们期待在Java EE 6中也能具备这样的类型。此外,我们支持在应用中通过使用java.beans.PropertyEditor实现对任何你所创造对象的注入。这些增强使你能扩展注入以包含你的对象和资源并且使得Java EE作为一个通用的DI框架具有更好的可用性。

关于在Java EE容器外OpenEJB框架提供了何种测试驱动开发以支持对EJB的单元测试的问题,David谈到了OpenEJB的嵌入式测试功能。

你可以写一个普通的单元测试以调用EJBs,就像其他EJB客户端所做的那样。区别在于容器和EJBs就运行在你单元测试的VM中。我们会对应用的classpath进行调整使之适应于测试用例,这样你就可以通过JNDI查找你的测试用例了。你只需针对本地容器和远程容器分别使用一个不同的InitialContextFactory,然后就可以相同的方式操作一个嵌入式数据库了。通过这种方式你可以测试EJBs的方方面面,没有任何局限性。畅想一下,你可以测试webservice、Stateful bean及扩展的EntityManager,或者测试带有JTA EntityManager的Stateless bean并且测试用例运行于一个事务之内。这也是我们期望在EJB 3.1中能看到的一个特性。

你能详细说明OpenEJB 3.0提供的OSGi支持以及以OSGi包的方式使用OpenEJB产品意味着什么吗?

当前OSGi支持适合使用OSGi平台的人,他们渴望以包的方式增加OpenEJB以获得EJB支持,或者由类似于Apache ServiceMix这样的项目所驱动的人,该项目做的就是提供EJB WebServices支持。OpenEJB可用的含有EJB jars的所有包都将被部署。

OpenEJB 3.0能通过HTTP协议调用EJB,这听起来非常棒。你能否更深入地解释一下该特性及其背后的动因?

其动因就是让人们能绕过防火墙的限制并使Tomcat/OpenEJB用户可以通过一个单一的端口来运行ejbs和servlets。这是由一个Servlet驱动的,你可以将其加到任何应用中,也可以删除它,还可使用SSL等等。最终的目标就是提供RESTful ejb调用。在未来的3.x版本中你会见到它。

Java EE 6会将 EJB 3.1规范作为其一部分。在该版本之后,OpenEJB团队有什么计划以支持EJB 3.1呢?

OpenEJB已经是EJB 3.1预览版的一个不错的来源了,比如这里提到的特性以及在1.0版中推出的WARs中的EJBs特性等。我积极参与了EJB 3.1专家组的工作并且对工作的进程及OpenEJB所做的贡献感到兴奋异常。我们希望能再接再厉并在最终规范发布前提出其他建议如单例及异步beans。

OpenEJB项目对于新特性和未来的增强方面的路线图是什么?

既然这些特性的时间表已经公布出来了,我们期望看到更多EJB 3.1相关的特性以预览的方式呈现出来,如@Singleton和@Asynchronous、没有接口的视图(the no-interface view)。嵌入式支持和Tomcat集成总是在不断被调整和扩展。我们在以下方面一直在不懈努力:集群、CMP/JPA适配器的进一步优化、将EJB 2.x应用转化为EJB 3.0(实际上是根据部署描述符增加了注解)的Eclipse插件、通过备选JAXB实现产生优化的代码改善主要的WebServices性能。

可以从OpenEJB站点下载OpenEJB 3.0。OpenEJB开发团队还提供了很多EJB示例以帮助开发者学习该框架的使用。

查看英文原文:OpenEJB 3.0 Supports DI of Enums and Collections, OSGi and EJB 3.0 features

译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。