发行说明5.2

目录

中断更改

Tapestry 5.2中进行了以下更改,如果您的应用程序依赖于更改后的功能,这些更改可能会导致意外行为。在从5.1升级到5.2之前,请仔细阅读此列表。同时检查不推荐的API列表用于非中断性更改。

  • 具有非线程安全的实例变量的页面类必须在方法中创建,而不是声明为实例变量。例如,创建实例变量private final DateFormat format=DateFormat.getDateInstance(DateFormation.MEDIUM,区域设置);在页面中使用它将导致问题,因为DateFormat不是线程安全的。相反,必须在方法中创建DateFormat。请参见发行说明:Tapestry 5.2.0(见下文)。
  • 链接到绝对URI()现在返回绝对URL,其中包括方案、主机名和可能的端口(例如,“http://example.com:8080/myapp/viewproduct/4“),而不是相对URL(例如,”/myapp/viewproduct/4“)。请参阅发行说明:Tapestry 5.2.2(见下文)。
  • 这个标签组件不再输出id:

5.1.0.5中先前有效的代码:

<t:form><t:label for=“search”/>

结合引用id的JavaScript:

jQuery('#search-label').text('这是搜索标签');

5.2的新JavaScript代码:

jQuery('label[for=search]').text('这是搜索标签');
  • ContributeTranslatorSource兼容性已中断。服务“TranslatorSource”现在使用MappedConfiguration而不是Configuration进行配置。参见问题TAP5-1395型
  • 如果使用Form.getDefaultTracker().getHasErrors())的代码在验证成功时假定getDefaultTracher()不为null,则该代码将失败。参见问题TAPS-1401型
  • 用于定义组件库根包的虚拟文件夹可能不再包含斜杠。
  • LibraryMapping的路径前缀可能不再包含斜杠字符。

发行说明:Tapestry 5.2.6

Tapestry 5.2.6是一个维护版本。

修复了Bug

  • [TAP5-1368型]-提供给Tapestry.ajaxRequest的onFailure函数并不总是被调用
  • [TAP5-1546型]-TranslatorSource被错误地注释为@UsesConfiguration,而现在它应该是@UsesMappedConfiguration(截至5.2)
  • [TAP5-1551型]-FormFragment更改可见性/隐藏和删除事件侦听器应调用event.stop()以防止容器片段也被隐藏

所做的改进

  • [水龙头5-1482]-将Prototype升级到1.7/Scriptaculous 1.9.0
  • [TAP5-1538型]-优化IE 7中的客户端URL重建
  • [TAP5-1539型]-优化Tapestry使用的文档扫描。FieldEventManager在实际需要时才定位标签或图标

发行说明:Tapestry 5.2.5

5.2.5版是5.2.4的维护版本。

已修复Bug

  • TAP5-1372型-BaseURLSource使用getLocalPort()而不是getServerPort(

所做的改进

  • TAP5-1040型-允许打印HTML5 doctype
  • TAP5-1208型-在开发模式中,Tapestry应该将字段和参数值“隐藏”到实例变量中,以帮助调试
  • TAP5-1346型-修复新网站上的断开链接

发行说明:Tapestry 5.2.4

版本5.2.4替换版本5.2.3,它在快速启动原型中的版本号不正确。

所做的改进

  • TAP5-1394型–Tapestry IoC代理中缺少方法参数注释

发行说明:Tapestry 5.2.3

修复了Bug

  • TAP5-1204型–tapestry-core JAR包括一些已编译的Groovy测试脚本
  • TAP5-1326型–ConcurrentBarrierTest中的错误
  • TAP5-1327型–Tapestry IOC依赖于SLF4J 1.5.6,它与Hibernate 3.6不兼容(依赖于1.6.1)
  • TAP5-1328型–如果只提供了参数,而没有提供onSuccess处理程序函数,Tapestry.ajaxRequest()将失败
  • TAP5-1330型–注入样式表的位置从5.1更改为5.2
  • TAP5-1332型–在多区域更新中,如果在客户端上找不到引用的区域,Tapestry将停止更新区域,不会出错
  • TAP5-1334型–@Decorate注释的Id属性应该是可选的
  • TAP5-1345型–支持的区域设置名称只能以小写形式识别

所做的改进

  • TAP5-929型–为TestableResponseImpl实现sendRedirect()
  • TAP5-1333型–Zone应实现一个接口BodyElement,该接口扩展ClientElement并提供body属性
  • TAP5-1341型–改进页面测试设施
  • TAP5-1342型–为元素和文档提供查找元素的便捷方法

发行说明:Tapestry 5.2.2

现在可以从Link对象生成绝对URL;绝对URL包括URL方案、主机、端口号(如果需要)以及完整的路径。这在许多情况下都很有用,例如在生成可能通过电子邮件发送给最终用户的URL时。

的语义链接到绝对URL()方法发生了变化;在以前的版本中,它返回了一个完整的URL(即以前导斜杠开头),该方法通常用于生成Ajax回调URL。从5.2.2开始,它将生成一个绝对URL(如上所述)。在大多数情况下,您应该更改调用的代码至绝对URL()打电话给到URL()相反;因为Tapestry不再“优化”URL,这也适用于Ajax情况。

部署的Tapestry应用程序通常在防火墙后面运行,关于传入主机名和端口的可用请求信息通常不准确(它表示从防火墙服务器到应用程序服务器的私有请求,而客户端使用到防火墙服务器的公共请求)。使用绝对URL时,您可能希望覆盖BaseURLSource服务,以提供反映应用程序部署的准确值。

修复了Bug

  • TAP5-708型–Element.forceAttribute使用元素的命名空间来匹配属性。
  • 水龙头5-709–Element.attribute(String name,String value)添加已经存在的元素
  • TAP5-804型–Element#addClassName可以创建额外的新“class”属性
  • TAP5-921型–对于不直接实现方法的抽象类,PropertyAccess不会公开接口中定义的属性
  • 水龙头5-1287–一些服务需要通知它们已被重新加载,以便它们可以清理外部依赖项
  • TAP5-1293型–符号常量中的空格。SUPPORTED_LOCALES导致区域设置不持久
  • TAP5-1294型–验证宏在@Validate注释中使用时不起作用
  • TAP5-1297型–@Pattern的客户端验证已中断
  • 水龙头5-1303–除非表单包含验证字段,否则将无法将表单链接到区域
  • TAP5-1304型–使用PropertyShadowBuilder构建服务时,如果属性为null,则需要立即发生异常(而不是NullPointerException)
  • TAP5-1309型–使用MultiZoneUpdate时,Tapestry将清除引用的区域

所做的改进

  • TAP5-538型–添加工具以选择性地禁用焦点切换触发的验证,同时保留表单提交验证
  • TAP5-874型–即使在不安全的页面上,表单组件也应该能够呈现安全的URL
  • TAP5-1272型–新注释@Decorate和@Advise,以识别装饰或注释服务的方法
  • TAP5-1291型–使用新方法扩展链接以生成绝对URL(包括方案、主机名等)
  • TAP5-1295型–简化链接或表单与(封闭)区域的连接
  • TAP5-1298型–BeanBlockContribution应分为两个子类:EditBlockContrabution和DisplayBlockContrribution
  • TAP5-1300型–定义一个特殊的CSS类以防止客户端表单正常提交(对于Ajax用例)
  • TAP5-1306型–Link:addParameterValue(String,Object)的其他方法,使用ContextPathEncoder将对象值编码为字符串
  • 丝锥5-1314–SeleniumTestCase应公开底层CommandProcessor,以允许执行Selenium接口未定义的命令
  • TAP5-1315型–允许单个SeleniumTestCase在不配置Selenium Launcher的情况下运行

新增功能

  • TAP5-1299型–通过JVM系统属性禁用实时服务重新加载的选项

已完成的任务

  • TAP5-1317型–将Hibernate依赖项升级到最新版本Hibernate3.6.0.Final

发行说明:Tapestry 5.2.1

Tapestry的早期版本试图通过在适当的地方创建相对URL来“优化”URL。不幸的是,这也导致了Ajax请求本身的问题,因为Ajax要求的基本URL与封闭页面的基本URL不同。无论如何,此功能已被删除,所有URL现在都是完整的URL(它们以前导斜杠开始,并包括上下文路径和描述页面的附加路径、页面激活上下文等)。

作为此更改的一部分内部的RequestPathOptimizer服务已被删除。

修复了Bug

  • TAP5-710型-关于“资产的使用:和上下文:直接从模板文件引用资产”的文档有错误(参见TAP5-214)
  • TAP5-752型–Tapestry bin下载包括许多由于许可问题而不应存在的库
  • TAP5-770型–PageLoaded注释中的小文档错误
  • TAP5-818型–Tapestry在读取和更新属性和属性表达式时应正确支持JDK 1.5泛型
  • TAP5-1004型–X-Tapestry-ErrorMessage可能导致HTTP响应拆分
  • TAP5-1011型–当使用@PageActivationContext并提供no-args激活事件处理程序时,该处理程序可能调用得太早
  • TAP5-1118型–使用Ajax更新向现有表单添加Upload组件在IE中失败,IE仍会发送application/x-www-Form-urlencoded编码的请求
  • TAP5-1123型–ApplicationStateManager中的文档不太正确:创建SSO时,它使用完全注入机制,而不一定使用no-args构造函数
  • TAP5-1177型–在部分页面更新请求中,如果服务器返回内容的空字符串,客户端将保持原样,而不是清除
  • TAP5-1188型–重构实时重加载服务实现的基类可能会导致神秘的NoSuchMethodError异常
  • TAP5-1192型–IE 8在从元素中清除JavaScript事件处理程序时抛出异常,因为它们被销毁
  • TAP5-1201型–PageResponseRenderer.render()应调用RequestGlobals.storeActivePageName(String pageName)
  • TAP5-1222型–如果访问的字段名称与组件字段的名称匹配,则访问组件代码内非组件对象的公共字段可能会导致TransfomationException
  • TAP5-1228型–需要配置tapestry.alias-mode符号,这使得启动注册表进行单元测试变得很困难
  • TAP5-1229型–Tapestry二进制/源代码发行版不包括所有模块
  • TAP5-1230型–SeleniumTestCase.assertFieldValue()应在失败时调用writeErrorReport()
  • TAP5-1232型–将服务id(作为字符串)恢复到服务装饰器方法中,以实现适当的向后兼容性
  • TAP5-1235型–加载页面出错时,Form组件和活动页面之间的交互可能会出现问题
  • 水龙头5-1241–设置响应的内容长度应自动禁用响应压缩
  • TAP5-1244型–Tapestry组件和mixin应转换为使用JavaScriptSupport,而不是RenderSupport
  • TAP5-1246型–Tapestry应该使用SQLException.getNextException()深入到“根本原因”
  • TAP5-1254型–decorateComponentEventLink事件名称拼写错误
  • TAP5-1258型–Maven快速入门原型在pom.xml中放置了错误的版本
  • TAP5-1260型-文件“资产”,“资产担保”部分已过时
  • TAP5-1261型–Tapestry不仅将事件处理程序添加到表单组件中,还将其添加到简单表单中
  • TAP5-1264型–MarkupRenderer(和PartialMarkupReender)过滤器的排序可能会导致ClientBehaviorSupport和心跳信号之间的错误交互
  • TAP5-1265型–将快速入门原型的描述更改为“Tapestry 5快速入门项目”
  • TAP5-1269型–方法上应允许使用注释@FactoryDefaults,以便与@Contribute注释一起使用
  • TAP5-1277型–当编写JSON对象和数组作为响应时,Tapestry错误地调用了PrintWriter.flush(),而不是close()
  • TAP5-1279型–导入作为堆栈一部分的JavaScript库应导入整个堆栈,而不是单个库(以利用JavaScript聚合)

所做的改进

  • TAP5-363型–Cookbook:使用Tapestry提供servlet-container错误页面
  • TAP5-1233型–如果类包含受保护或包私有方法,则服务实现类的实时重新加载会导致IllegalAccessError
  • 丝锥5-1236–添加方法Response.disableCompression()(以避免使用内部全局键)
  • TAP5-1245型–将Tapestry JSON支持分解为一个独立的模块
  • TAP5-1250型–添加对从Iterable创建Flow的支持(不仅仅是Collection和object数组)
  • TAP5-1256型–失败的Selenium断言应捕获屏幕截图(以及当前页面HTML)
  • TAP5-1266型–以多种方式更新快速启动原型

新功能

  • TAP5-910型–Cookbook:将新枚举定义为组件参数,并为其添加string->enum类型强制

已完成的任务

  • TAP5-1240型–将Hibernate依赖项升级到3.5.4-Final
  • TAP5-1267型–删除“优化”生成的URL的代码,因为不可能总是知道基本URL是什么
  • TAP5-1270型–将EasyMock依赖项升级到3.0版

发行说明:Tapestry 5.2.0

Tapestry 5.2.0比之前的稳定版本5.1.0.5快一年了。在大多数情况下,升级是非常直接的,但请仔细阅读下面的注释。

实时服务重新加载

Tapestry5.2.0扩展了Tapestry将Java代码实时重新加载到服务层的概念。在大多数情况下,应用程序的服务实现现在将无缝地实时重新加载。请参阅常见问题解答有关实时重新加载的其他说明。

不再合并页面

这是Tapestry 5.1到5.2的巨大变化;Tapestry不再池化页面实例。它创造了每个页面的实例(根据支持的区域设置)。Tapestry重写组件类,以便所有可变状态都存储在每线程HashMap中。这将大大减少Tapestry的内存占用,尤其是在负载严重的站点上。

此更改使线程之间共享对象变得更容易,当对象不是线程安全的时,这会产生问题。例如:

有效部件代码(5.1)
@注入私有语言环境;private final DateFormat format=DateFormat.getDateInstance(DateFormation.MEDIUM,区域设置);公共字符串getCurrentTimeFormatted(){return format.format(new Date());}

在上述代码中,5.1以下,DateFormat对象未在线程之间共享,因为每个线程将使用包含页面的不同实例进行操作。在5.2中,最后一个字段跨线程共享,这是一个问题,因为DateFormat不是线程安全的。代码应重写为:

5.2版更新
@注入私有语言环境;公共字符串getCurrentTimeFormated(){DateFormat format=DateFormat.getDateInstance(DateFormation.MEDIUM,区域设置);tapestry.page-启用了工具return format.format(new Date());}

如果这些问题很难解决,请记住,作为临时解决方法,您可以通过设置tapestry.page-启用了工具在您的配置

服务Id注入

在Tapestry的早期版本中,假定String类型的构造函数参数是服务id。在许多情况下(例如使用@Value或@Symbol注释),需要使用@Inject注释对参数进行注释。

从5.2.0开始,此功能不再存在(这是一个非向后兼容更改但实际上对任何人都没有影响)。String类型的参数将进行正常注入;您可能希望对其使用@Value或@Symbol,否则会看到错误“No service implements java.lang.String”。

Igor做了一个更改,在某些情况下注入一个裸字符串作为服务id;它可能是装饰方法。这需要适当记录。

转换器源

TranslatorSource的配置类型已在中更改不相容的方式:从无序集合到映射集合;这是为了支持对Tapestry的内置翻译器。这将破坏有助于TranslatorSource服务配置的现有模块类。

资产

Tapestry5.2中的资产操作方式发生了一些变化。

用于定义组件库根包的虚拟文件夹可能不再包含斜杠。虚拟文件夹是贡献给ComponentClassResolver服务的LibraryMapping对象的pathPrefix属性。

现在,每个LibraryMapping都会自动转换为ClasspathAssetAliasManager服务的匹配贡献。此前,图书馆鼓励一位作者为这两项服务捐款。LibraryMapping的路径前缀现在也被禁止包含斜杠字符。

现在很有必要配置应用程序版本号:所有资产都通过包含应用程序版本号的URL公开;在以前的版本中,每个库都可以配置自己的版本号。这意味着,更改库版本和其他任何内容都不需要更改应用程序版本号。

ClassTransformation API更改

用于实现组件元编程的ClassTransformation API已经过重写,目的是使类转换更容易实现,同时消除对Javassist库的依赖。这只是值得注意的先进的已实现ComponentClassTransformWorkers(在ClassTransformation API上操作)的用户。

许多现有API已被弃用一些弃用的方法现在是非功能性的。不推荐使用的方法将在Tapestry 5.3中删除。

这代表着API操作方式的转变;以前ComponentClassTransformWorkers中的大部分逻辑都是根据Javassist构建的:向现有方法添加新的字节码。新的API改变了这一点,现在的工作方式是添加新字段、使用回调初始化这些字段、为访问字段提供回调以及为方法添加建议。

模板分析器返回SAX

Tapestry不再使用StAX解析器解析组件模板,它已恢复使用普通SAX解析器。这一更改减少了Tapestry的依赖性数量,是实现与GoogleAppEngine兼容的一块垫脚石。

修复了Bug

  • TAP5-266型–在渲染阶段注释和命名约定之间发生冲突时,应以显式注释为准
  • TAP5-707型–如果区域更新过快,则更新后的区域上仍有黄色突出显示
  • TAP5-711型–提交组件:使用图像参数可防止触发所选事件
  • TAP5-714型–Ajax请求的单引号编码错误
  • TAP5-715型–TypeCoercer.explain错误地报告了从基元类型强制到包装类型的计划
  • TAP5-719型–组件LinkSubmit不起作用
  • TAP5-728型–使用@Validate注释时,分隔约束的逗号周围的空格会导致运行时异常
  • TAP5-734型–Tapestry教程文档引用了旧的archtype命令
  • TAP5-747型–包含方法调用的属性表达式,反过来引用属性会导致关于“根”的虚假错误
  • TAP5-748型–仅使用t:id而不使用类型或@component注释定义组件时为NPE
  • TAP5-749型–FormFragment和LinkSubmit组件创建一个隐藏字段,其id以“:hidden”结尾
  • TAP5-750型–Tapestry不应尝试使用GZip闪存电影(.swf文件)
  • TAP5-755型–URL重写文档包含一个由于缺少返回值而无法编译的示例
  • TAP5-759型–DefaultNullFieldStrategy#replaceFromClient()的文档关于返回的内容是错误的
  • TAP5-765型–包含的JavaScript库在Ajax部分更新响应中未正确唯一
  • 水龙头5-767–在计算小数时,PropertyConduitSourceImpl应使用英语语言环境(而不是默认语言环境)
  • TAP5-769型–JavaScript聚合在具有不同JS要求的多个页面上可能效率低下
  • TAP5-774型–订单计数时初始化JavaScript需要帮助
  • TAP5-779型–CLONE-Linksubmit在设置了Zone参数的表单中不起作用
  • TAP5-786型–页面加载包中的异常消息应本地化
  • TAP5-787型–AbstractIntegrationTest的“assertTextPresent”只检查第一个值
  • TAP5-788型–如果提交的作业多于THREAD_POOL_MAX_SIZE,ParallelExecutor服务将引发RejectedExecutionException
  • TAP5-796型–表单组件生成无效的xHtml:不应有“name”属性
  • TAP5-812型–输入验证文档错误地显示了在成功事件处理程序方法中发生的验证
  • TAP5-813型–用户指南的组件呈现页面不是由maven生成的
  • TAP5-815型–资产调度器允许webapp中的任何文件可见并可下载
  • TAP5-823型–关于呈现阶段方法的不兼容返回类型的消息具有误导性
  • TAP5-824型–Javasisst 3.9.0.GA在中央存储库中不可用
  • TAP5-830型–当任何实现ApplicationContext的对象都足够时,SpringModuleDef不必要地将存储在上下文中的对象类型硬编码为ConfigurableWebApplicationContext
  • TAP5-834型–BaseOptimizedSessionPersistedObject无法与Tomcat和Jetty一起正常工作
  • TAP5-837型–prototype1.6.0不支持ie8
  • TAP5-839型–Tapestry应忽略模块类中的(公共)合成方法
  • TAP5-856型–MetaDataLocatorImpl.findMeta(String,String,Class)不检查贡献的默认值-中断SECURE_PAGE贡献
  • TAP5-868型–无法将验证事件侦听器附加到调色板(或其他<select>字段)
  • 水龙头5-871–在Windows上生成组件引用失败
  • TAP5-881型–Tapestry的定制Blackbird实现对每个请求发送可疑的cookie值
  • TAP5-894型–修复部分标记DocumentLinkerTest.stylesheet_link()
  • TAP5-896型–为ResourceDigestGenerator的配置提供“属性”文件扩展名
  • TAP5-898型–BeanModel方法重新排序、包含和排除应返回BeanModel<T>(而不是BeanModel<?>)
  • TAP5-908型–Blackbird控制台不应向请求添加Cookie
  • TAP5-913型–与PropertyExpressionLexer相关的堆栈大小过大异常
  • TAP5-919型–使用偶数个参数调用MarkupWriter.element()会引发ArrayIndexOutOfBounds异常,这对于省略属性名称或值来说不是一个有用的异常
  • TAP5-923型–向Spring Beans注入Tapestry服务完全没有文档记录
  • TAP5-936型–Tapestry wiki链接指向除en以外的其他语言环境的无链接
  • TAP5-937型–LinkImpl在传递到构造函数时无法正确处理参数
  • TAP5-940型–区域应触发心跳事件
  • TAP5-943型–事件处理程序方法的文档应详细说明返回true或false
  • TAP5-944型–当ValueEncoder无法将id转换为实体时,它应包装基础类型强制异常以描述输入和预期输出类型
  • TAP5-945型–PerthreadManagerImpl中不必要且严重的锁争用
  • TAP5-947型–提交组件的默认名称“submit”中断javascript函数submit()
  • TAP5-959型–返回页面实例、页面类或页面名称的Ajax事件处理程序方法应该会导致客户端重定向到该页面,但如果URL有查询参数,则在IE7或IE8中不起作用
  • TAP5-961型–当URL重写规则更改呈现链接的路径(组件事件或页面呈现)时,与原始链接关联的所有查询参数都将丢失
  • TAP5-962型–错误组件包括一个@Environmental for FormSupport,但不使用它
  • 抽头5-964–由于session-persisted对象的toString()中存在NPE,因此无法呈现异常报告
  • TAP5-974型–PageCallback应标记为@ImmutableSessionPersistedObject注释
  • TAP5-987型–在某些情况下,您可以调用Form.recordError(),表单仍将触发成功(而不是失败)事件
  • TAP5-1001型–在未正确定义为Tapestry库命名空间的命名空间中定义组件时出现乱码异常消息
  • TAP5-1018型–对应用程序根路径的请求忽略ComponentRequestFilter的
  • TAP5-1019型–数字格式错误消息的法语翻译
  • TAP5-1020型–修复tapestry-hibernate/src/site/apt/userguide.apt中的输入错误:HibernateTransactionAdvisor应为hibernate Transaction Advisor
  • TAP5-1030型–将Logger注入非服务对象(作为构建服务配置的一部分创建)应该可以工作,但不能
  • TAP5-1031型–在组件呈现之前调用getClientId()时,来自任何组件的NPE
  • TAP5-1034型–如果页面具有激活上下文,则对组件事件链接使用URLRewriteRules将失败
  • TAP5-1042型–URLRewriting导致传入请求路径混淆,导致优化的相对URL不正确
  • TAP5-1043型–当类型为Calendar的属性为null时,PropertyDisplayBlocks会导致NullPointerException
  • TAP5-1047型–@IncludeJavaScriptLibrary和@IncludeStylesheet可能会错误计算组件子类中的资源
  • TAP5-1052型–指南的组件类页面应该更加具体,只有组件类才会出现在页面、组件等中。
  • TAP5-1054型–无法将空字符串作为appName传递给PageTester
  • TAP5-1057型–日历组件中的XSS漏洞
  • TAP5-1060型–在IE8中,由于客户端JavaScript错误,应该使用Ajax提交的表单会触发整页请求
  • TAP5-1067型–创建的组件构造函数可能使用太多参数
  • TAP5-1068型–RenderSupport.addScriptLink(String)已弃用并删除,无需替换
  • 水龙头5-1069–Tapestry POM应仅引用Apache Nexus存储库,而不是Tapestry.formos.com存储库
  • TAP5-1074型–@QueryParameter注释使用TypeCoercer将请求参数字符串转换为方法参数值,它应该使用ValueEncoder
  • TAP5-1075型–当模板包含对未知组件的引用时,将报告新的UnknownValueException,但不再报告位置,这使得确定错误发生的位置变得更加困难
  • TAP5-1076型–当服务实现可重新加载时,它不会立即加载
  • TAP5-1080型–由于@Secure注释,从HTTP重定向到HTTPS时页面激活上下文丢失
  • TAP5-1086型–如果索引页面不可用,本地化根路径请求将导致404错误
  • TAP5-1088型–将模型参数与BeanEditor或BeanEditForm的添加参数组合在一起时,<class name>的Bean编辑器模型已经包含属性<property name>的属性模型
  • TAP5-1090型–删除实时重新加载的类可能会导致非描述性的“Parameter url was null”异常
  • TAP5-1096型–如果绑定了Zone的id参数,那么clientId属性应该返回该值,即使在Zone呈现之前
  • TAP5-1100型–在ajax请求中,如果页面是页面池中的新页面或服务器重新启动,则模板正文不会呈现
  • TAP5-1105型–BeanModelSource应该将公共字段识别为属性,但没有
  • TAP5-1106型–Tapestry.ajaxFailureHandler的Ajax签名不正确。请求onException回调
  • TAP5-1109型–更新表单中的多个区域会创建异常的空文本字段
  • TAP5-1110型–Tapestry保留了组件类转换的详细描述,导致内存泄漏
  • 丝锥5-1116–由于ByteArrayOutputStream正在同步,因此在使用压缩资产和虚拟资产时发生实时锁定
  • TAP5-1120型–无法覆盖TranslatorSource服务的默认Translator贡献
  • TAP5-1124型–FormEventManager.setSubmittingElement(element)创建type=“input”的输入元素
  • TAP5-1128型–HTML开始注释序列中添加了空格,无法添加IE条件注释
  • TAP5-1130型–当表单包含具有默认id的Select组件时,LinkSubmit组件不起作用
  • TAP5-1136型–回收弱引用时来自UpdateListenerHub的java.lang.UnsupportedOperationException
  • TAP5-1137型–通过部分页面更新向页面动态添加JavaScript库在Safari和Chrome中似乎并不一致
  • TAP5-1138型–ClassTransformation否决了一系列方法,然后引用了不存在的替换方法
  • TAP5-1141型–当对象的toString()返回null(应该强制为false)时,从任意对象到Boolean的类型强制将NPE
  • TAP5-1145型–通过MarkupWriter仅将文本(或原始文本)写入文档会导致[空文档],而不是实际文本
  • TAP5-1147型–IE下的Ajax更新泄漏大量内存
  • TAP5-1154型–未为Select组件调用ValidationDecorator.insideField
  • TAP5-1156型–仅当存在映射类时,才自动为Hibernate实体提供ValueEncoder
  • TAP5-1158型–从失败的Selenium断言中捕获的HTML无法存储在Windows上的正确位置
  • TAP5-1161型–Tapestry 5.1似乎与Spring 3不兼容
  • TAP5-1166型–ClassPropertyAdapterImpl应跳过静态字段
  • 抽头5-1182–javax.management阻止在GAE上部署Tapestry应用程序
  • TAP5-1185型–升级到最新的Javassist版本以避免LocalVariableTable异常(尤其是在Google App Engine上)
  • TAP5-1198型–用户定义的激活事件处理程序似乎在@PageActivationContext提供的事件处理程序之前*执行,从而无法进行防御编码
  • 抽头5-1203–使用@Contribute注释无法与标记注释一起正常工作
  • TAP5-1207型–id为“id”的表单控件组件(如TextField)可能会混淆form DOM对象的客户端逻辑
  • TAP5-1209型–与有贡献的服务一起使用的标记注释应适用于方法(以及字段和参数),以与@Contribute兼容
  • TAP5-1210型–Internet Explorer中使用表单从EventLink进行多区域更新失败
  • TAP5-1211型–链接提交在IE 7模式下中断
  • TAP5-1216型–ValueEncoderSource未定义@UsesMappedConfiguration注释
  • TAP5-1223型–名称“JavaScript”应使用大写字母“S”,但在某些类和接口名称中不一致
  • TAP5-1224型–当使用“contribute”方法为服务提供服务时,方法名称中的服务id现在与服务id匹配,区分大小写(应该不区分大小写)
  • TAP5-1262型–日历组件中的XSS漏洞(适用于5.1.0.x)
  • TAP5-1282型–表单组件生成无效的xHtml:不应有“name”属性-应用于5.1

所做的改进

  • TAP5-69型–添加注释@Contribute,以允许对服务贡献器方法进行任意命名
  • TAP5-88型–添加对保加利亚语言环境的支持
  • TAP5-179型–如果TriggerFragment mixin可以反转其逻辑,即在关闭复选框时使片段可见,那么它将更加有用
  • TAP5-247型–将所有Tapestry 5配置键移动到常量类
  • TAP5-335型–提供对服务实现类注释的访问
  • TAP5-424型–允许组件库为全局应用程序目录贡献额外资源
  • TAP5-632型–属性名称(在属性表达式中)应该能够读取或更新公共变量
  • TAP5-674型–易于实现页面回调机制
  • TAP5-678型–允许在生产模式下禁用blackbird
  • TAP5-685型–允许建议和装饰由tapestry-ioc模块定义的服务
  • TAP5-713型–将模板解析器更改为不使用StAX,因为它(尚未)与Google App Engine兼容
  • TAP5-760型–表单事件“validateForm”的名称很难看,应替换为更简单的名称“validate”
  • TAP5-762型–将Selenium依赖项升级到1.0.1版
  • 水龙头5-764–Hidden应支持ClientElement并支持非正式参数。
  • TAP5-777型–Tapestry应确保以确定性顺序应用mixin。
  • TAP5-783型–tapestry应通过注释标记哪些注释是特定于组件的,哪些注释是更通用的
  • TAP5-789型–为java.util提供bean和显示块。日历
  • TAP5-790型–为Hibernate实体提供ApplicationStatePersistenceStrategy
  • TAP5-803型–ProgressiveDisplay应包括Block类型的只读正文属性,就像Zone一样
  • TAP5-807型–当您将页面的激活上下文作为EventContext时,PageRenderLinkSource应添加其他方法来创建链接
  • TAP5-810型–改进@Persist注释的文档
  • TAP5-811型–布局组件文档对目录结构不是很清楚
  • TAP5-814型–包括一个图表,显示传入请求如何通过不同的管道、过滤器和调度器
  • TAP5-826型–ActionLink文档缺少将对象数组用作模板内上下文的选项
  • TAP5-859型–在堆栈跟踪中,与类的第1行关联的任何行都可能是合成方法,应归类为“不感兴趣”
  • TAP5-863型–Tapestry.ajaxRequest在执行额外操作时不足,例如添加查询参数
  • TAP5-884型–为tapestry.js引入一个符号
  • TAP5-887型–使用键和值初始化JSONObject的更简单方法
  • TAP5-889型–提供流畅的API以满足供款订单约束
  • TAP5-904型–在运行集成测试时使用Selenium.showContextualBanner()
  • TAP5-905型–Tapestry应支持Java可接受的全部Unicode字符作为属性名
  • TAP5-912型–验证java.util类型的属性。集合为空时,集合应失败
  • TAP5-914型–自动构建Java bean(如会话状态对象)时,代码应使用OperationTracker
  • TAP5-915型–应该可以覆盖组件消息目录
  • TAP5-917型–当tapestry.production-mode为false时,不要设置Expires标头
  • TAP5-927型–无法将Scala用于Tapestry IOC模块
  • TAP5-948型–内置机制,用于识别自引用链接和/或事件/呈现请求
  • TAP5-958型–将Tapestry的prototype.js内置副本升级到1.6.1版本
  • TAP5-963型–允许访问应用程序包中的静态资源(css、js、jpg、jpeg、png、gif)
  • TAP5-965型–将EasyMock依赖项升级到2.5.2版
  • TAP5-967型–ObjectLocator.autobuild可以通过允许描述对象的消息的覆盖更有用
  • TAP5-971型–FormFragment组件应包含一个参数,以控制表单提交中是否包含不可见的内容
  • TAP5-978型–提供页面池设置的远程管理
  • 抽头5-979–表单组件应更加小心验证跟踪器,以确保除非需要,否则不会创建会话
  • TAP5-993型–重组ComponentClassTransformWorkers以开始远离Javassist
  • TAP5-994型–字段自动调焦应通过Tapestry.init完成,而不是使用$函数
  • 抽头5-1000–自动构建类时,应在跟踪输出中标识要使用的构造函数
  • TAP5-1014型–关于标记注释的保留策略缺失或错误的消息具有误导性
  • TAP5-1015型–为事件处理程序方法提供一个新的返回类型,该方法将在不重定向的情况下触发特定页面的呈现
  • TAP5-1023型–(5.2.0-SPNAPSHOT Maven依赖项)用tapestry-hibernate-5.2.0-yyyyMMdd.hhmmss-?生成的tapestry-hibernate-5.2.0 jar?。jar>tapestry-hibernate-5.2.0-SNAPSHOT.jar,而所有其他jar都使用-5.2.0-SNAPSHOT
  • 抽头5-1024–Submit组件应允许其事件触发的事件处理程序方法返回值
  • TAP5-1033型–将硒依赖性升级到1.0.3
  • TAP5-1036型–如果有一种方法可以让提交者再次运行单独的集成测试,那就太好了
  • TAP5-1037型–重写URLRewriter集成测试以使用新的SeleniumTestCase,而不是弃用的AbstractIntegrationTestSuite
  • TAP5-1038型–重写实时重新加载集成测试,以使用新的SeleniumTestCase,而不是弃用的AbstractIntegrationTestSuite
  • TAP5-1046型–更改Tapestry客户端JavaScript,使tapx/Confirm组件更易于实现
  • TAP5-1050型–添加API以防止特定服务实现被实时重新加载
  • TAP5-1055型–在将后处理属性文件滚动到组件消息之前,为其提供挂钩
  • TAP5-1061型–当Zone组件发送Ajax请求进行客户端更新时,它应该传递一个额外的查询参数来标识Zone的客户端id
  • TAP5-1077型–将符号值从bean定义合并为属性值
  • TAP5-1085型–ExceptionReporter应配置为默认情况下将更多Tapestry生成的类(用于方法和字段访问以及方法建议)标记为隐藏
  • TAP5-1091型–CLONE-LinkSubmit组件的处理程序方法应接受上下文
  • TAP5-1094型–创建用于访问IoC符号的绑定前缀“symbol:”
  • TAP5-1112型–处理属性表达式中的数组类型
  • TAP5-1126型–添加一个新的验证器“none”,用于重写@Validate注释
  • TAP5-1127型–Submit和LinkSubmit组件的文档应确定在循环中应取消延迟
  • TAP5-1129型–LinkSubmit应最少呈现(并作为<span>标记),然后填写客户端的详细信息
  • TAP5-1132型–在确定配置的实体类型的行数时,HibernateGridDataSource应将Projections.rowCount()的结果分配给java.lang.Number
  • TAP5-1135型–提供一种方便的方法来构建和启动注册表
  • 水龙头5-1150–在org.testng之间重构出一个新的基类。断言和org.apache.tapestry5.ioc.test。非模拟相关测试的TestBase
  • TAP5-1152型–TypeCoercer应包含一个方法,公开它将用于给定源和目标类型的强制
  • TAP5-1153型–在开发模式下,Tapestry应精确打印JSON内容
  • TAP5-1155型–部分页面呈现Ajax响应中的JavaScript初始化应不加引号
  • TAP5-1157型–Tapestry.init()期间的客户端异常应通过控制台捕获和报告
  • TAP5-1165型–更好地利用OperationTracker来识别请求期间(尤其是页面构建期间)发生的事情
  • TAP5-1170型–删除将服务id自动注入到String类型的参数中
  • TAP5-1174型–提供向客户端发送错误响应的ComponentEventResultProcessor
  • TAP5-1197型–使用将其结构与可变状态分离的共享页面实例消除页面池
  • TAP5-1225型–使用最新的Groovy/GMaven版本并修复tapestry-core POM中的GMaven配置

新功能

  • TAP5-52型–添加显示单个字段验证错误的错误组件
  • TAP5-56型–Tapestry应支持IE条件样式表
  • TAP5-86型–添加对“取消”提交按钮的支持(绕过客户端验证)
  • TAP5-103型–提供对mixin中组件参数的访问
  • TAP5-138型–将Zone参数添加到Select组件
  • TAP5-152型–添加@Translate注释以定义要与bean属性一起使用的转换器的名称(而不是按属性类型查找)
  • TAP5-156型–将参数的@QueryParameter注释添加到事件处理程序方法
  • TAP5-226型–添加注释@SessionAttribute以将字段映射到特定会话属性
  • 水龙头5-680–Tapestry应提供mixin,以确保呈现ClientElement的客户端id
  • TAP5-692型–T5应从包含组件的.properties文件中选取要应用于字段的验证器。
  • TAP5-801型–添加Trigger组件以在渲染期间触发组件事件
  • TAP5-895型–Tapestry/JSR-303集成的跟踪问题
  • TAP5-951型–为使用Selenium进行测试创建更灵活的API,允许多个测试用例共享一个Selenium/SeleniumServer/Jetty实例
  • TAP5-966型–TapestryFilter应该能够向注册表添加其他模块,以适应不同的测试(或其他)执行配置
  • TAP5-1013型–服务实现的实时类重新加载
  • TAP5-1028型–Validator宏:将多个通用验证器组合成一个术语
  • TAP5-1035型–在使用无效密钥访问命名值的地方,Tapestry应该更好地报告可能的名称(使用HTML列表,而不是长的逗号分隔字符串)
  • TAP5-1056型–应用程序全局消息目录应可注入到服务中
  • TAP5-1064型–扩展PropertyAccess以了解Scala样式的属性(与JavaBean使用不同的命名约定)
  • TAP5-1065型–在开始/结束渲染时生成事件的非视觉混合(有助于生成匹配的JavaScript)
  • TAP5-1079型–活动类重新加载应扩展到代理对象(例如从ObjectLocator.proxy()
  • TAP5-1084型–最初在表单内呈现的区域应支持表单内的更新
  • TAP5-1095型–LocalizationSetter服务应将支持的区域设置作为区域设置列表和SelectModel公开
  • TAP5-1097型–新注释:@HeartbeatDeferred,用于标记应在当前心跳结束时执行的组件方法
  • TAP5-1098型–提供新的SelectModelFactory服务,可以根据对象和属性名称自动构建标准的SelectModel
  • TAP5-1099型–介绍负责处理页面激活的公共服务
  • TAP5-1121型–提供注释以支持在组件或页面方法调用后自动丢弃持久字段
  • 抽头5-1159–为页面和组件模板自定义搜索位置的简单方法
  • TAP5-1190型–新的页面级事件,用于“装饰”组件事件和页面呈现链接

已完成的任务

  • TAP5-11型–CookiesImplTest指定的域cookie中的域没有前缀。(点)
  • TAP5-556型–修复TranslatorSourceImplTest
  • TAP5-756型–将ioko-tapestry-commons添加到相关项目列表中
  • TAP5-819型–从所有子模块中删除特定于ide的文件并将其添加到svn:忽略
  • TAP5-969型–Method AbstractField.createDefaultParameterBinding()应弃用
  • TAP5-976型–将Spring依赖项升级到3.0.0.RELEASE版本
  • TAP5-1081型–删除5.2.0原型中的表单引用
  • TAP5-1087型–将TestNG依赖项升级到版本5.12.1
  • TAP5-1134型–将Hibernate依赖项升级至3.5.2
  • TAP5-1195型–将注释@QueryParameter和@QueryParumeterMapped(都是在5.2.0中引入的)重命名为更多助记符名称