router.1.7.4.source-code.changelog.txt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jrouter Show documentation
Show all versions of jrouter Show documentation
jrouter是一个围绕对象方法基于责任链(拦截器)模式设计的开源轻量级Java容器。它专注于方法的映射、调用、拦截和结果处理,采用基于配置和注解的方式来抽取和收集程序中对象的方法(method)以用于路由映射,HTTP控制器,RPC,各种应用等。
JROUTER CHANGELOG
==========================
http://jrouter.net/
Changes in version 1.7.4 (2017-09-06)
* 修正ClassScanner扫描Class时,忽略不存在的Class。
* 新增ActionFilter接口,提供转换自定义注解类至@Action。
* PathActionFactory类新增actionFilter属性,用以加载ActionFilter实现。
* 优化日志(LOG)输出。
* 新增RequestMappingActionFilter测试类,实现@RequestMapping转换至@Action。
* 完善PathActionFactory类actionFilter属性功能测试。
* 更新依赖包slf4j至 1.7.25.
* 更新可选依赖包springframework至 4.3.10.
Changes in version 1.7.3 (2017-01-06)
* 更新版本jrouter 1.7.3, 更新pom.xml.
* ActionFactory/ActionInvocation/ActionProxy抽象化Action调用路径,修改参数String类型为泛型。
* 新增ObjectFactory接口方法getClass(...),提供查找Class类型(原对象可能被代理)。
* 新增AbstractActionFactory抽象基类,方便继承扩展。
* 新增PathActionFactory,废弃DefaultActionFactory。
* 重命名DefaultActionInvocation为PathActionInvocation。
* 重命名DefaultActionProxy为PathActionProxy。
* 更新依赖包slf4j至 1.7.22.
* 更新可选依赖包javassist至 3.21.0-GA.
* 更新可选依赖包springframework至 4.3.4.
Changes in version 1.7.2 (2016-08-04)
* 重命名Proxy接口为Invoker,避免于ActionProxy、AbstractProxy名称歧义。
* 重命名ProxyFactory接口为MethodInvokerFactory。
* 修正jrouter.bytecode.javassist包中的的类名。
* 新增JavassistMethodChecker类,根据底层方法解析匹配指定字符串的方法检查器。
* 配置jrouter.properties新增interceptorMethodChecker属性;检查interceptor方法体,匹配指定的字符串。
* 修改MultiParameterConverter中追加参数匹配算法,同类型参数依顺序匹配。
* 完善测试用例MultiParameterConverterTest。
* 更新依赖包slf4j至 1.7.21.
* 更新依赖包springframework至 4.3.2.
Changes in version 1.7.1 (2016-02-22)
---------------------------------------
* @Action新增value()方法,等同于name(),当仅需要name属性时提供便捷的注解方式。
* 修改@Action的name(),可多个路径映射同一个Aciton。
* 更新ActionInvocation#getActionProxy().getPath()可能返回带参数的动态路径,而非真实调用路径。新增getActionPath()方法,返回Aciton调用的真实路径;
* 更新DefaultActionInvocation,实现getActionPath()方法。
* 修改ActionProxy接口,提供getObject()方法获取原始方法的调用对象(非代理)。
* 完善测试用例SimpleAction、PathTestAction、URLTestAction2。
* 更新依赖包slf4j至 1.7.16.
* 更新依赖包springframework至 4.2.4.
Changes in version 1.7.0 (2015-09-06)
---------------------------------------
* ActionInvocation新增setConvertParameters(...)/getConvertParameters()方法,设置/返回提供给参数转换器的参数。
* 更新DefaultActionInvocation,默认实现setConvertParameters(...)/getConvertParameters()返回自身引用。
* 更新DefaultActionInvocation,invoke(...)和invokeActionOnly(...)方法提供getConvertParameters()参数给转换器。
* 重构ParameterConverter的convert(...)方法,新增Object[] additionalParams参数。
* 废除LastPadParameterFactory,由MultiParameterConverterFactory取代。
* 新增MultiParameterConverterFactory,提供多参数自动映射转换器的工厂类,并默认缓存转换参数匹配的位置。
* 更新DefaultActionFactory,converterFactory属性默认采用MultiParameterConverterFactory实现。
* 删除ThreadContext,不需要线程变量;可由Interceptor替代。并删除相关测试用例。
* 删除DefaultActionFactory的默认不参数构造器,确保子类继承复写。
* 更新DefaultActionFactoryBean,支持泛型方便继承调用。
* 更新DefaultActionFactoryBean,新增createDefaultConfiguration(),setDefaultActionFactoryClass(...),createDefaultObjectFactory(...)方法,方便子类继承复写。
* 新增NotFoundException,标识指定资源不存在时抛出的异常。
* 更新DefaultActionFactory,方法调用时Action、ResultType不存在的情况下抛出NotFoundException。
* 更新DefaultResult的actionForward结果类型名称为"actionForward"。
* 修正测试用例DemoThreadActionContextInterceptor、PathTestAction、PathActionFactoryTest、MultiParameterConverterTest。
* 更新依赖包javassist至 3.20.0-GA.
* 更新依赖包springframework至 4.2.1.
Changes in version 1.6.7 (2015-05-19)
---------------------------------------
* 更新DefaultActionFactory的ActionCache,区分fullPathActionCache和matchedPathActionCache。
* DefaultActionFactory新增buildActionPath(...)方法,提供继承做自定义修改。
* 更新依赖包slf4j至 1.7.12.
* 更新依赖包javassist至 3.19.0-GA.
* 更新依赖包springframework至 4.1.6.
Changes in version 1.6.6 (2014-12-06)
---------------------------------------
* 新增@Dynamic,指示经常需要根据条件创建新对象的接口、类或成员变量。
* 新增ParameterConverter接口,针对底层方法调用参数的转换。
* 新增ConverterFactory接口,生成底层方法调用参数转换器的工厂接口。
* 新增LastPadParameterFactory类,提供追加最后一个参数的转换类及工厂类。
* ActionFactory接口新增getConverterFactory()方法,返回创建方法代理对象的工厂对象。
* ActionInvocation接口新增setParameterConverter()/getParameterConverter()方法,设置/返回Action运行时底层方法参数的转换器。
* ActionInvocation接口新增setResult()方法,设置Action调用完成后将执行的结果对象。
* DefaultActionInvocation新增buildParameterConverterBeforeActionInvocation()方法,通过继承提供在Action调用时传递自定义的参数转换。
* DefaultActionFactory新增converterFactory初始化属性,默认提供LastPadParameterFactory实现。
* 配置jrouter.properties/jrouter.xml文件删除actionInvocationClass属性,添加converterFactory属性。
* 重构AbstractProxy类getMethod()返回底层方法对象,getMethodInfo()返回底层方法的描述信息。
* 废除DefaultActionFactory的actionInvocationClass变量及getActionInvocationClass()方法。
* 废除InterceptorProxy/ResultProxy/ResultTypeProxy的requireAction属性及isRequireAction()方法。
* 完善DefaultActionFactory的converterFactory属性的测试。
* 更新依赖包slf4j至 1.7.7.
* 更新依赖包springframework至 4.1.2.
Changes in version 1.6.5 (2014-02-26)
---------------------------------------
* 加入jrouter.xml配置文件解析错误验证。
* 更新依赖包slf4j至 1.7.6.
* 更新依赖包springframework至 4.0.2.
Changes in version 1.6.4 (2013-08-22)
---------------------------------------
* 更新Configuration,新增afterActionFactoryBuild(...)钩子方法。
* 更新DefaultActionFactoryBean,修改configurationClass类的注入为Configuration对象的注入,与spring更好的集成。
* 更新依赖包javassist至 3.18.0-GA.
* 更新依赖包slf4j至 1.7.5.
Changes in version 1.6.3 (2013-03-03)
---------------------------------------
* 更改DefaultActionFactory添加重复项时输出警告信息为抛出异常。
* 更改DefaultActionFactoryBean新增通过bean及class查找/过滤加载组件。
* 更新依赖包javassist至 3.17.1-GA.
Changes in version 1.6.2 (2012-10-05)
---------------------------------------
* 新增@Ignore,略过所注解方法不做处理。
* @Namespace新增autoIncluded属性。标识是否自动加载public/protected方法,默认不自动加载。
* 修正JavassistProxyFactory类创建代理类方法的返回值处理。
* 更新依赖包slf4j至 1.7.1.
* 更新依赖包logback至 1.0.7.
Changes in version 1.6.1 (2012-08-06)
---------------------------------------
* 新增AopAction类,对应"aop-action"标签属性。
* Configuration类增加parseAop方法,实现对"aop-action"标签的解析。
* 新增AopActionBean类,并于DefaultActionFactoryBean中添加对AopAction的属性配置。
* jrouter-1.6.xsd中去除"aop-interceptor-stack"标签。
* 新增对"aop-action"的测试用例。
* 更新依赖包slf4j至 1.6.6.
* 更新依赖包logback至 1.0.6.
Changes in version 1.6.0 (2012-05-02)
---------------------------------------
* 新增Proxy接口,针对底层方法调用的增强。
* 新增ProxyFactory接口,生成底层方法代理的工厂接口。
* ActionFactory接口中新增getProxyFactory()方法,获取生成底层方法代理的工厂接口。
* 新增bytecode.javassist包,提供基于javassist的字节码增强。
* 更新pom.xml,引入javassist-3.16.1-GA(可选的)。
* DefaultActionFactory新增bytecode初始化属性,提供default基于反射和javassist选项。
* 调整DefaultActionFactory类proxyFactory初始化属性。默认使用javassist增强;若无javassist包引入,则默认使用java反射。
* DefaultProxy类新增Proxy变量,提供底层方法调用的增强。
* DefaultProxy类的invoke(...)方法,捕获所有的Exception封装为InvocationProxyException抛出。
* 调整Injector类的injectAction(...)方法,指定路径的Action的属性包含其类属性。
* 修正InvocationProxyException,新增getSourceInvocationException()方法返回最初的InvocationProxyException。
* 修正DefaultActionFactory的invokeAction(...),抛出异常栈中最初的InvocationProxyException。
* 新增jrouter.properties,jrouter-1.6的ActionFactory初始化属性配置。
Changes in version 1.5.4 (2012-04-02)
---------------------------------------
* jrouter-1.5.xsd,标签去除原有include属性,新增includeExpression和excludeExpression属性,匹配过滤扫描类。
* 引入AntPathMatcher,路径匹配工具。
* 新增ClassScanner,类扫描工具。
* 重构Configuration。配置扫描工具(ClassScanner)属性替换原有包含(scanComponents)/排除(excludePackages)属性。
* 重构DefaultActionFactoryBean。配置扫描属性setClassScannerProperties替换原有setScanPackages和 setClassScannerProperties。
* 修正jrouter-1.5.xml。
* 修正测试配置文件jrouter_autoscan.xml、jrouter-spring_autoscan.xml。
Changes in version 1.5.4-M1 (2012-03-03)
---------------------------------------
* 增强DefaultProxy的invoke(Object...)方法,支持变长参数。
* 引入spring-test的测试包,改进与springframework集成的测试。
Changes in version 1.5.3 (2012-02-02)
---------------------------------------
* 修改StringUtil类,新增isBlank和isNotBlank进行空白值判断。
* 新增LRUMap类,替换DefaultActionFactory原有actionCache的缓存类型。
* 更新Injector的putClassProperties(...)和putActionProperties(...)方法。
* 基于容器启动后数据的一致性,删除DefaultActionFactory的多个set方法。
* 新增DefaultActionFactory类的构造函数(java.util.Map),初始化属性。
* 修改Configuraation的加载方法;修改DefaultActionFactoryBean的加载方法。
Changes in version 1.5.2 (2012-01-02)
---------------------------------------
* 重构Configuration类,新增方法buildActionFactory()替代getFactory()。
* 重构DefaultActionFactoryBean类,更好的与springframework集成。
* 更改jrouter-spring.xml内容结构。
Changes in version 1.5.2-M2 (2011-12-24)
---------------------------------------
* 更新依赖包logback至 1.0.0.
* 修改DefaultActionFactory的路径分隔符PATH_SEPARATO为成员变量pathSeparator,默认值仍为'/',不能为' '。
* jrouter.xml中可设置""的属性pathSeparator值。
* 修正PathTree的添加节点方式,默认覆盖节点原有的值。
* 修正DefaultActionFactory添加Action的方法addAction(DefaultActionProxy ap)。
* 新增Injector的putClassProperties(...)和putActionProperties(...)重载方法。
* 新增Configuration的加载配置load(...)重载方法。
* 修改jrouter-1.5.xsd,新增""标签。
Changes in version 1.5.2-M1 (2011-10-02)
---------------------------------------
* 更新DefaultActionFactoryBean,新增scanPackages、excludePackages属性配置,自动扫描类并添加为组件。
* 更改StringUtil方法"isNull(...)"为"isEmpty(...)";"isNotNull(...)"为"isNotEmpty(...)"。
Changes in version 1.5.1 (2011-09-03)
---------------------------------------
* 新增接口jrouter.ActionProxy。
* 调整类jrouter.impl.ActionProxy名称为jrouter.impl.DefaultActionProxy,并实现ActionProxy接口。
* 新增ClassUtil工具类,扫描class文件。
* 新增CollectionUtil集合工具类。
* 修改AbstractProxy的方法"getMethodInfo()"为"getMethod()"。
* 调整SpringObjectFactory,可设置springframework属性注入的策略"autowireMode",默认"byName"。
* 新增@Parameter注解类。
* @Action新增parameters,可配置Action初始化参数的键/值(多值)集合。
* 通过ActionProxy接口的getActionParameters、getActionParameter、getActionParameterValues方法获取@Action的parameters。
* jrouter-1.5.xsd中新增"component-scan"元素。
* jrouter-1.5.xml中新增" "标签,根据包名自动搜索和加载组件。
* Configuration中新增处理" "标签方法。
Changes in version 1.5.0 (2011-08-06)
---------------------------------------
* 新增ObjectFactory对象工厂接口。
* ActionFactory中新增getObjectFactory()方法返回创建对象的工厂对象。
* DefaultActionFactory中新增objectFactory变量,并提供默认的对象工厂。
* 新增SpringObjectFactory,提供与springframework的集成;由springframework的工厂对象创建新的对象实例。
* 更新DefaultActionFactoryBean,提供ObjectFactory对象的注入,默认为SpringObjectFactory的实现。
Changes in version 1.5.0-SNAPSHOT (2011-07-30)
---------------------------------------
* 新增jrouter.impl.DefaultProxy类,统一处理调用代理方法时的异常。
* 新增Injector工具类处理简单的属性值注入。
* 原有jrouter.xml变更为jrouter-1.4.xml。
* 新增jrouter-1.5.xml配置结构及jrouter-1.5.xsd结构。新增标签;新增属性标签值注入。
* 调整DefaultActionFactory的变量名"actionsCache"为"actionCache"。
* 调整DefaultActionFactory,Action调用结果的路径信息中包含':'可省略Action中的@Result(name = "*"...)。
* DefaultActionFactory新增"invokeUndefinedResult(...)"扩展方法,处理未匹配的结果字符串。
* 新增接口ActionFactory的"addResults(Object obj)"和"getResults()"方法。
* DefaultActionFactory中新增全局结果对象集合results。
* jrouter-1.5.xml更新结果类型标签替换原有,新的标签代表配置全局结果对象。
* 更新Configuration,默认加载jrouter-1.5.xml;不再适配原有jrouter.xml。
* 更新DefaultActionFactoryBean,新增results属性集合,配置全局结果对象集合。
* 更改DefaultActionFactory中路径后缀extension的处理方式,默认截断'.'之后的字符。
* jrouter-1.5配置文件,标签新增子标签,配置指定路径Action的属性注入。
* Injector更新属性注入的方式,主要属于Action所属对象的属性注入。
* 更新ActionFactory接口,去除部分接口方法。
* 更新Configuration中xml配置的处理方式。
* @Action中添加interceptors,可配置指定的拦截器集合。
* @Namespace中添加interceptors,可配置指定的拦截器集合。
* 修改DefaultInterceptorStack中空拦截栈的名称"defalut"为"empty"。
* 修改DefaultResult中空结果类型的名称"default"为"empty"。
Changes in version 1.4.6 (2011-05-23)
---------------------------------------
* @Action无需强制指定name,默认为"",DefaultActionFactory判断为""则设置为其标注方法的名称。
* 新增Action路径全匹配,可使用@Result(name = "*")做字符串结果的非完全匹配。
* DefaultActionFactory类新增"invokeResult(...)"扩展方法处理非完全匹配;默认提供"type:location"格式的路径解析处理。
* DefaultActionFactory类新增"invokeObjectResult(...)"扩展方法。
* DefaultActionFactory类新增"createActionInvocation(...)"扩展方法;默认生成新的DefaultActionInvocation实例。
* DefaultActionFactory类新增actionInvocationClass调用参数限制变量及其"setter"和"getter"方法,修正"createActionProxy(...)"和"createResultTypeProxy(...)"方法。
* jrouter.xsd中新增 特殊常量定义。
* jrouter.xml中新增 元素。
* 更新DefaultActionFactoryBean,新增"setActionInvocationClass(...)"。
* 更新DefaultActionFactoryBean,废弃"setClassName(String className)"变更为新增的"setActionFactoryClass(String actionFactoryClass)"方法。
* 更新jrouter-spring.xml配置文件。
* 更新DefaultActionFactory路径分隔符"PATH"变量名称为"PATH_SEPARATOR"。
* 删除DefaultActionFactory的"afterPathCreation(String path)"方法,更改名称为"addExtension(String path)"。
* 新增Action的树结构路径PathTree实现。可使用诸如@Action(name="/*/*/*...)"或@Action(name="/{v1}/{v2}/*...)"的匹配路径。
* 新增树结构路径PathTreeMap实现,适配Map接口。
* DefaultActionInvocation类新增"actionPathParameters"变量,返回调用Action时路径匹配的键值映射。
* 更新DefaultActionFactory的actions集合,"getActions()"返回树路径结构的Map映射。
* 新增DefaultActionFactory中Action路径与代理对象的映射缓存,并控制缓存的最大数目,"getActionsCache()"返回缓存的对象。
* 更新DefaultActionFactoryBean,新增"setActionCacheNumber(...)"。
* bugfix,更正@Action的scope为"PROTOTYPE"时拦截器和结果对象的NPE错误。
Changes in version 1.4.5 (2011-04-08)
---------------------------------------
* 废除接口ActionInvocation中的"setResult(Result result)"方法。
* 修正ActionProxy中拦截器集合变量名称interceptorStack为interceptors,同时修改其"setInterceptors(...)"和"getInterceptors()"方法。
* 新增InvocationProxyException异常类。
* 更新DefaultActionInvocation、ActionProxy、InterceptorProxy、ResultTypeProxy的"invoke(...)"方法,改抛出JRouterException为InvocationProxyException。
* 更新DefaultActionFactory的"invoke(...)"方法。捕获InvocationProxyException异常后,重新封装源异常信息后抛出。
* 修正DefaultResult内置"forward"结果类型的处理方法"actionForward(ActionInvocation invocation)"。
No version 1.4.4 (2011-04-08)
---------------------------------------
Changes in version 1.4.3 (2011-02-01)
---------------------------------------
* jrouter.xsd中新增 特殊常量定义。
* 新增Action路径的后缀名称设定。jrouter.xml中新增 元素。
* DefaultActionFactory类新增extension变量及其"setter"和"getter"方法。
* DefaultActionFactory类新增afterPathCreation(String path)扩展方法;默认添加Action生成路径的后缀名称。
* Configuration类增加"afterActionFactoryCreation(ActionFactory> factory)"扩展方法,用于ActionFactory特点子类对象的初始化配置。
* 新增与springframework集成包,新增DefaultActionFactoryBean类。
* 新增jrouter-spring.xml配置文件。
* 删除ActionContext类,改名为ThreadContext类。
Changes in version 1.4.2 (2011-01-03)
---------------------------------------
* 更新并修正DefaultActionFactory中"createActionProxy(...)"方法,去除生成Action路径首尾的''和'/'。
* StringUtil中增加"trim(String src, char sep)"方法。
* jrouter.xsd中新增 常量定义。
* jrouter.xml中新增 元素,允许引入xml配置文件。
* 更新Configuration类处理 机制。
Changes in version 1.4.1 (2010-12-05)
---------------------------------------
* 更新ActionProxy、InterceptorProxy、ResultTypeProxy的方法"invoke(...)"发生异常时封装异常本身,"getCause()"可能为null导致异常信息丢失。
* 更新DefaultActionFactory的方法"invoke(...)"发生异常时封装异常本身,"getCause()"可能为null导致异常信息丢失。
* 删除InvokeException类,更新JRouterException;所有用到的InvokeException改为JRouterException。
* 更新ActionInvocation和DefaultActionInvocation的"invoke(...)"和"invokeActionOnly(...)"方法,由抛出Exception改为抛出jrouterException运行时异常。
Changes in version 1.4 (2010-10-01)
---------------------------------------
* 支持Maven。
* 重写并规范pom.xml文件。
* 更新@Namespace的value为name,使用@Namespace(name="...")。
* 添加线程变量工具ActionContext的"remove()"方法。
* 更新ActionProxy的方法"getNewInstance()"为"getInstance()"。