tapestry-core 框架的核心,包括所有基本的内置组件。 tapestry-ioc Tapestry IOC 容器。 tapestry-spring-integration 与Spring集成。 tapestry-test Tapestry测试工具集。 Tapestry-hibernate 与hibernate集成。
Tapestry框架的开发由一些无偿的自愿者组成。粗略的时间安排是: 2007年春季早期——前基本组件与特性。这包括所有的form组件,加上BeanEditForm和Grid,还有客户端持久化与其他重要特性。 2007年夏季前——Ajax特性的加入。我们正在寻求与apestry 4.1可比的更易使用的特性。 Hibernate 和 Spring的集成。(由于许可证书的原因可能从Apache中分离出来) 2007年秋季——最终版。 新特性 Tapestry 5是基于全新的代码,开发小组决定把Java Web组件开发提高到一个新的效率上。新版本删掉了Tapestry 4的许多限制。 组件不用再继承基类。 组件类不再是抽象类。组件都是纯粹的简单的POJOs (plain old Java objects)。 Tapestry不再使用XML页面以及组件配置文件。所有配置文件的信息现在都直接用Java annotations写在Java类里。 所有对Tapestry组件模板和类的修改现在都可以立刻反应出来, 不需要任何重启。这将不仅反映在开发中,同样反映在产品中。 快速(Blazing Speed)。 新代码的基本操作要比Tapestry 4快很多。关键代码路径得到简化,反射的使用已经消除。Tapestry 4速度同比于Servlet/JSP应用,Tapestry 5 要更快一些。 目前状况 Maven插件已加入生成组件和参数文档:tapestry-component-report 。 Formos 将加入以支持Tapestry项目,始于运行在Bamboo 上的continuous integration site 。在此感谢Atlassian赠与的Bamboo许可证书。 Howard Lewis Ship 已经开始写Tapestry 5 Tutorial [PDF]。 先前发布的Tapestry 5.0.1,可以通过Maven或download 得到。这一版本功能有限且不稳定,用以收集用户反馈。请发送你的见解到Tapestry邮件列表…所有的都会经常发生改变(因此,我们现在已经着手收拾我们的烂摊子,修改我们要修改的东西)。 你可以在Developer Wiki 中得到一些将来的思路。 你也可以通过Tapestry 5 Screencasts 得到介绍Tapestry 5功能的视频。 第一个Tapestry 5的Maven 原型(项目模板)已经创建: tapestry-simple 。你可以在几秒钟内创建一个新的起始应用环境。 原则一 —— 静态结构,动态行为 Tapestry 从以下几个维度来设计高可伸缩性: Tapestry 应用可以包含多个页面和许多自定义组件。 Tapestry 应用可以包含非常复杂的功能。 可备大型的多个的团队开发Tapestry应用。 Tapestry 应用可以响应大量的并发用户。 Tapestry 存在一个核心的构建策略(静态结构,动态行为)就是服务于以上目标的。 Tapestry 并不需要将页面实例存储在HttpSession中。大部分的情况下,它仅仅存储一些少量的页面的持久化字段值,并非整个页面实例。依赖于这种对HttpSession的使用是Tapestry特别在集群配置下具有高可扩展性的关键。 在一些类似于Tapestry的框架,比如Faces 和 Wicket,页面结构动态性更高,体现在更多的存储代价上(HttpSession中存有更多的数据)。 公用的对内部的 有一个问题一直苦脑着Tapestry 4先前的版本,就是在私有(private)、内部的(internal)APIs和公用的(public)、扩展的(external)APIs上缺乏 清晰的界线(deliniator?)。事实上你的代码得继承自基类对象,但是许多基类对象方法的不可访问性让此问题更是困惑。这也是“Tapestry 陡峭学习曲线”的关键因素。 由于Tapestry 5基于全新的代码,我们可以更好的区分内部的(internal)与扩展的(external)。首先,任何 org.apache.tapestry.internal包下的都是内部的(internal),它是Tapestry的部分实现,就像一个在窗帘后的 人。你不必直接引用这此代码,直接的引用将会给版本升级带来问题,因为内部的(internal)代码不会在版本升级中考虑其向后兼容性。 向后兼容性 Tapestry一直苦于各主要版本的向后兼容性。 Tapestry 5未曾考虑向后兼容Tapestry 4。但是它为向后兼容铺下了基础。Tapestry 5的 API几乎都是基于annotations,你得在类上声明以表示它们是组件,在字段上声明以提供Tapestry来维护它们的状态以及注入资源 (resources)。在方法上声明告诉Tapestry这个方法什么时候以及是否被调用。 Tapestry将会适配你的类,它将通过方法的参数传入值来调用你的方法。不再是生硬的实现已有的接口,Tapestry用annotations所提供的线索及简单的命名约定来适配你的类。 正因为如此,Tapestry将有能力深入改变自己内部代码而不影响你写的应用程序代码。这最终会打破向后兼容的坚壳,给予了一个大的保证,那就是不改变已有应用代码情况下实现版本的升级。 相关资源:Tapestry5教程
