我想在Dan Allen在JSFSummit上的所有优秀内容之后,添加一些我自己的内容,但都是从组件库的角度。在像JSFSummit这样的会议上发言的一个非常好的事情是,你知道参与者将会是知识渊博的,并且很可能已经在使用JSF。这意味着演讲者可以真正地讨论他们主题的细节。例如,我在RichFace 组件工具箱的演讲能够向用户展示RichFaces的一些高级组件和功能,包括代码示例和演示(排除那些残酷的演示神灵)。JSFSummit和NFJS做得很好的一点是会议的时长,90分钟我们可以真正地覆盖很多内容。
组件库为您服务
在JSFSummit上,有很多优秀的展示,其中包括几个顶级JSF组件库的负责人。有来自ADF Faces的Andy Schwartz,来自ICEFaces的Ted Goddard,来自PrimeFaces的Cagatay Civici,以及代表RichFaces的我 都出现在这张难得的照片中!。你可能认为由于我们在技术上都有竞争项目,这可能会有些棘手。我很高兴地说这并不是事实。
我们所有人以及JSR-314(JSF 2.0)专家小组进行了许多富有成效和启发性的讨论。其中一些是在会议酒店提到的Thirsty Fish酒吧的深夜进行的,其他是在午餐时间、会议室,甚至在一些演讲中。正如Dan所说,演讲者和与会者之间没有障碍,很多时候我们会参加彼此的演讲。这有时会引发一些对话,开始听起来更像专家小组会议而不是演讲。这通常涉及如何将XYZ功能或行为集成到下一个版本的规范中。最好的事情是,每个人都参与了,并表达了自己的观点。
关于各个组件库的讨论之一是证明了JSF 2.0的一个基本理念和目标。那就是组件库之间的互操作性,以便开发者在需要时可以组合组件库。我对这个话题非常感兴趣,并推动不同的库合作开发一个联合示例应用程序。也许我们可以从RichFaces中抽取一个数据表,从IceFaces中抽取一个树,从ADF中抽取一个菜单,从PrimeFaces中抽取一个可折叠的面板。这类应用程序真的可以做很多事情。一方面,它将为开发者提供证明和示例,表明JSF 2.0组件库确实可以协同工作。另一方面,它将帮助我们所有人排除规格说明中开发者可能会遇到的问题。
这一点不应该被低估。RichFaces在其4.0版本的开发过程中已经发现了一些需要“解决”的项目。这些问题代表了一些实现领域,可能会导致组件库无法协同工作,或者也可能指出规范中需要更多定义的领域。要查看这些项目的列表,请查看我们的维基页面。我将给出这些问题中的一个例子,以便您可以尝尝味道
JSF 2.0现在内置了Ajax支持,它应该充当组件库使用的一个核心Ajax桥。这个实现有一个非常简单的与之相关的队列。RichFaces从3.3.X版本开始就有自己的高级队列功能,我们希望将其带到RichFaces 4.0中。我们如何在不覆盖核心队列和踩到其他组件库的脚跟的情况下做到这一点?已经讨论了一些选项,例如允许开发者选择一个遵循定义合同的单一队列实现,以便用户可以根据需要切换实现。这类似于JSF 1.2,那时您可以插入自己的视图处理器,即Facelets。另一个讨论的选项是有一个核心实现,但在请求轮到队列时,它会完全控制其行为。
不用说,这并没有完全解决,但它让你尝到了融合这一切所需的努力。不过,如我上面所说,让我印象深刻的是,组件库领导者、EG成员以及RI团队的Jim Driscoll都愿意共同努力找到解决方案。最终,这将导致更好的JSF以及相应的组件库
迁移策略至关重要
显然,一个热门话题是JSF 2.0的支持,更具体地说,用户如何从早期版本迁移到新版本。这在我参加的几乎每一场讨论JSF 2的演讲或会议中都出现了。用户需要一个稳定的迁移路径,以便利用他们过去的努力,同时继续前进。甚至有一个专门讨论迁移的演讲,由Kito Mann发表,题为升级到JSF 2。
一些让开发者感到惊讶的事情是,尽管JSF 2.0具有向后兼容性,但大多数组件库在不做某些修改的情况下无法支持JSF 2.0。对于RichFaces来说,这是因为为了实现JSF 1.2的一些高级功能,我们需要与JSF的一些核心API和内部进行交互。这意味着当JSF 2.0出现,一些API发生变化时,就会产生问题。RichFaces团队一直在为此寻求解决方案,并为我们的用户提供迁移策略。
我们目前正在开发RichFaces 3.3.3版本,该版本将为3.3.X分支带来JSF 2.0的兼容性。我们很快就会发布该版本的测试版,并希望在明年年初推出最终版本。随着这个版本的发布,用户可以开始将他们的应用程序迁移到JSF 2.0容器和环境中。更新自己的代码,并开始尝试JSF 2.0。需要注意的是,这个版本更多的是关于兼容性。您可以使用JSF 2.0运行现有的应用程序,但这个版本将不会利用JSF 2.0的新特性和功能。这需要等待RichFaces 4.0。
RichFaces 4.0正在并行开发中,我们已经有了一个4.0.0.ALPHA1版本。这个版本将真正利用和推动JSF 2.0的功能。这包括新的行为、事件和组件,以及一个易于使用的组件开发套件。我们希望继续推动标准,并开始原型化将来在另一个JSF版本中标准化的功能。我们目前正在计划在初夏发布4.0.0版本,但在此期间将有许多中间版本。
所以您可能会问自己,如何从RichFaces 3.3.3升级到4.0.0?我们正在制定这个细节,但请放心,我们会使其尽可能容易。这肯定包括一个迁移指南,包含逐步说明。我们可能还会有一个兼容性桥接器,这将使迁移更加容易。
感觉良好
我在JSFSummit上感觉非常好,有很多事情让我感到兴奋。一方面,对于住在纽约的人来说,12月份去奥兰多是一个不错的地方参观。更重要的是,我离开时对JSF技术和社区感到非常积极。我认为JSF 2.0是一个非常好的版本,结合了RichFaces这样的组件库,以及EE6中的其他功能,如CDI和Bean Validation,使应用程序堆栈难以竞争。我对RichFaces的未来也非常兴奋,以及我们拥有一个伟大的社区和开发者。
感谢所有出席的人,以及所有在那里的演讲者和专家组成员!!
[javaserverfaces.org [RichFaces项目网站] [下载] [RichFaces Twitter]