CommonTemplate任务计划20080212

CommonTemplate任务计划
基准版本:0.8.2
基准时间:2008-02-12

序号 任务描述 类型
1 异常国际化, 将所有异常信息用统一的工具类管理, 并配置到properties文件中. 优化
2 出错位置信息准确性, 当抛出异常时, 应显示准确的出错元素在模板中的行列位置, 并显示出错位置附件的模板内容. BUG
3 错误信息友好性, 抛出来的异常信息应有助于解决错误, 不应该出现底层的无意义信息, 可以通过故意写错模板内容等方式来测试. 优化
4 Context是否应去掉MessageSource和Logger,它们不是共享功能,可直接注册到相应指令中? 疑问
5 对象存储加一个不分级控制的存储空间. 此存储空间在单一Context内有效(非全局), 但不受LocalContext栈的隔离. 优化
6 类元静态函数/属性的调用, 在没有类实例的情况下, 怎么表示类元. 如: ${&com.xxx.XxxUtils.xxx()}, 这里假设用&作为前导一元操作符,并且其isOperandNamed()为true, 求值结果为包实例, 然后重载点号操作符, 直到找到类元. 需求
7 测试JspTagLib的集成方案, 尤其是对上下级关联的Tag测试. 测试
8 加入对jsp2.1的taglib支持, 主要是EL的转变 需求
9 指令单元测试, 完善边界值测试, 提高测试覆盖率. 测试
10 操作符单元测试, 操作符的个数比较多. 急需测试. 测试
11 操作符重构, 操作符的分包, 命名等都不是很规范, 应尽快做一次全面重构. 优化
12 操作符优先级调整及测试, 现在的优先级排列还需斟酌. 优化
13 写一个验证性论坛, 用CT做全部页面, 用CT做代码生成, 用CT做SQL拼接模板. 并做压力测试. 集成
14 写一个Ant脚本, 自动提取EL相关类打成jar包 集成
15 使用Maven发布 集成
16 全面检查序列化, 任何接口都不应继承Serializable, 但要保证整个模板树都是可序列化的. 优化
17 完成.Net版的基础实现, 先从Java版导过去, 再重构. 工作量比较大. 需求
18 使用Spring作为配置工具. 通过<beans>配置完成ConfigurationSettings的组装. 可以写一个转换器, 从现有的properies配置转换过去. 需求
19 不同类型对比时,自动转换类型, 如:char与string对比时, int与float对比时, int与string对比时等. 优化
20 实现XSLT解析, Velocity和FreeMarker都支持对XSLT的解析, CT也考虑实现, 但延后. 需求
21 Html标签属性语法外套优化, 主要是对不合法html标签的容错性的良好支持. 此功能可单独提取, 作为Velocity和FreeMarker等的扩展. 需求
22 完成与AntTask的集成, 可用于代码生成等, 实现:
org.commontemplate.tools.ant.TemplateTask
需求
23 实现热加载国际化信息:
org.commontemplate.standard.i18n.ReloadableResourceBundleProvider
需求
24 实现国际化信息与struts2的集成, 也就是可分包, 分级放置properties文件, 而不是单一的properties文件, 并保证集成的简便性, 如需要, 可重构ResourceBundleProvider接口. 需求
25 写Eclipse/NetBeans的编辑器插件, 可在某Html编辑器插件的基础上扩展. 完成高亮显示, 自动提示. 需求
26 写CommonTemplate.exe, 类似notepad, 可双击打开.ct和.ctl结尾的模板文件(注册表关联), 并调用$test指令所提供的数据进行显示(可调用IE显示). 需求
27 完成properties高亮显示的html过滤, 通用在内容中加入<font color=""></font>实现:
org.commontemplate.standard.directive.filter.highlight.PropertiesCodeFilter
需求
28 完成JS中特殊符的转码.
org.commontemplate.standard.directive.filter.escape.JavaScriptEscapeFilter
需求
29 将StringSequence实现List接口:
org.commontemplate.standard.operator.sequence.StringSequence
需求
30 完成网站的英文版 翻译
31 扩展指南页面内容未同步更新 优化
32 ExpressionConfigurationSettings是否应与ConfigurationSettings合并? 疑问
33 StandardConfiguration重构, 加入: static StandardConfiguration loadStandardConfiguration() 优化
34 是否应默认开启函数调用? 如果开启应可以用AOP的方式禁止调用某些有返回值函数,如:remove*, delete* 疑问
35 代码生成时, 自动去掉块指令所在的空白行. 如: 模板通常会将$if和$end等放在单独的行中, 生成的文本会在指令位置出现空白行, 应实现一过滤器, 自动去掉该空白行. 需求
36 重构异常, 分析ParsingException, RenderingException, EvaluationException等的关系. 优化
37 缓存更新方式, 抽取策略接口, 加入Job线程定时更新缓存策略. 优化
38 将表达式中与Java相同的和不相同的分开描述. 文档
39 拆分util包到子包, 如: standard.util, 尽可能缩小根目录的util包? 疑问
40
用多线程(多核CPU)模拟并发获取模板, 测试并发.
测试
41 通过跟踪内存栈, 记录模板编译后占用内存大小, 以及模板源内容大小, 给出测试结果Excel对照表 . 测试
42 通过函数扩展或属性扩展实现:
四舍五入round, 绝对值abs, 最大值max, 最小值min, 平均值avg 等等
需求
43 是否应支持switch case, while等? 疑问
44 是否应支持变量别名引用alias? 疑问
45 是否应支持重复操作符, 如:str * 2 变成两str,扩展到list * 2, map * 2等 疑问
46 String 操作符未实现功能: split, replace, indexOf, lastIndexOf等.
另外,应加入以某个char为分割符的前后段,
如: "xxx.txt".suffixOf(".")返回txt
"xxx.txt".prefixOf(".")返回xxx
需求
47 加强模板测试, 在test/integration/template/目录下放一个xxx.ctl, 写入模板, 在test/integration/result/目录下放同名的模板结果, 运行test/integration.TemplateTester可以进行自动测试. 另外, 模板结果的获取可以通过integration.OutTester得到, 它将读取模板文件test/integration/out.ctl的内容, 并将解析结果输出到控制台. 测试

你可能感兴趣的:(maven,freemarker,单元测试,velocity,commontemplate)