恒泰博远,专家级研发软件定制开发公司,为企业定制营销、办公、管理软件 在线咨询 :
咨询电话:010-82969001

java模板引擎,2014年Webit Script 1.5 发布

来源:http://www.hengtaiboyuan.com 作者:恒泰博远 时间:2014-09-03

[摘要]距Webit Script 第一个版本 0.8 释出以来,第一代 Webit Script 已经有一年整的时间,今天我们发布1.5,作为第一代的最后一个大版本。

距Webit Script 第一个版本 0.8 释出以来,第一代 Webit Script 已经有一年整的时间,今天我们发布1.5,作为第一代的最后一个大版本。

 

为第一代画上一个完美的句号,我们在1.5版本上下了很大工夫,最明显的就是核心jar包体积减少至296.8 KB

 

其实我们真的新加了一些特性:

 

1、lambda 表达式,以及 lambda 风格的 for 循环(详细1  详细2 详细3)

2、可导出模版内函数并在外部执行(详细 )

3、断点调试接入支持(详见 happy-console)

4、resource 支持设置偏移(详见 happy-console)

5、新增脚本内Void 类型,使之不会在使用不当的时候产生输出

6、ALU 优化,并增加对 char 、BigInteger 、 BigDecimal 的支持

 

同时修复了 1.4.2 中出现的一些问题:

 

1、map初始值包含负数key 以及switch 包含负数 case 导致解析失败

2、props 缺失导致的空指针异常

3、特殊情况下 Context.exportTo(map) 的空指针异常

 

体积缩小主要因为以下几个方面:

 

1、大幅度精简内置的 ASM 和 jodd-props

2、lib-assert 移至 tools

3、servlet 模块从核心模块中分离

4、变量池改为线性池,提升了不少性能

5、移除 filter 接口,使用现有的reolver能更好的代替解决问题

6、function/import/include 执行时 使用父context,不再创建新的context

7、其他大量的 流程/代码 的 优化/简化

 

现在说一下升级需要注意的地方:(相对于1.4.2)

 

1、创建Engine 推荐使用Engine.create(..)  代替Engine.createEngine(..),

2、KeyValues,MethodDeclare,Iter,Bag(前称: SimpleBag) 移至lang包,如果用到,需要修改成新的类路径

3、Props精简成了单个类,类路径也从webit.script.util.props.Props改成了webit.script.util.Props

4、asm 模块配形式更改:我们将asm解耦合,之前的‘enableAsm’配置已不再生效,缺省仍然开启ASM,如果需要禁用ASM可在配置文件添加

 

nativeFactory   = webit.script.core.NativeFactory

resolverManager = webit.script.resolvers.ResolverManager

 

注:如果需要,配置之后,可以从核心jar包中移除webit.script.asm

 

5、配置文件更改:我们统一把设置文件和模块配置文件后缀统一叫做*.wim, 缺省配置文件更名成default.wim,default-servlet.wim,需要注意的是 WebEngine 缺省加载文件变更为 /WEB-INF/webpage.wim

6、另外,不再建议使用 this  super,因为我们计划在2.0版本中新增类型声明,它们将会有新的语义

 

第三方支持的变更:

 

1、servlet模块独立出核心,所以你需要额外添加webit-script-servlet.jar(使用maven库的用户不用担心此问题,对于自管理jar的用户的反馈,可能会提供合适的合并的单一jar) 

2、统一缩短了命名,从之前的WebitScript*更名为Webit*, 新的命名例如:WebitRender,WebitResult,WebitRenderFactory

3、对于 jodd madvoc 的支持:我们把3.5之后的支持作为缺省支持,包名跟改为webit.script.support.jodd3