14、2018-11-10 tianyubing,版本:3.2.3 (1).增加文件上传的路由层文件发送的支持,剔除了文件上传情况下的http的数组发送支持。 (2).由于路由通讯文件发送的异步发送文件大小受限,managersvr工程调整为同步路由模式。 (3).修改核心包microservice-3.2.2.jar,调整为microservice-3.2.3.jar。 (4).增加cache对redis的集群模式的支持:miniframe-cache-3.0.1.jar。 redis.properties增加配置项目: #-------------------------------------------------------------------- #集群节点host:port,多个节点逗号分隔 cluster=false spring.redis.cluster.nodes=192.168.48.28:7000,192.168.48.28:7001,192.168.48.28:7002,192.168.48.29:7000,192.168.48.29:7001,192.168.48.29:7002 spring.redis.cluster.max-redirects=5 #-------------------------------------------------------------------- 13、2018-10-21 tianyubing,版本:3.2.2 (1).对http代理进行全方位的测试,对http代理进行全部组解包后再代理的处理过程,支持转发路由的全逻辑拦截处理; (2).对http通讯层bug进行修改,对兼容性处理进行优化;支持EasyUi的请求的全部处理模式; (3).修改工具包中,提高系统的兼容性,对部分空处理进行优化兼容处理; (4).增加了培训录像:快速开发和部署;managersvr的单独部署和managersvr和nginx组合部署; (5).修改了MyDailyRollingFileAppender获取ip方法为UtilTools.getInetAddress()。 12、2018-10-13 tianyubing,版本:3.2.1 (1).对http客户端调用的ClientTransmeter接口实现增加了post方法,以便自由调用,目的是方便客户端报文格式自定义和转换 可以UtilTools包工具: bean <-> map <-> json <-> xml 的工具转换实现各种http的自定义通讯。 public byte[] post(String url,byte[] bytes) throws CommException; 实现类: 1、异步模式:com.miniframe.httpclient.HttpAsyncClient,只有http模式 2、同步模式:com.miniframe.httpclient.HttpClient,支持http和https单向 3、同步模式:com.miniframe.httpclient.HttpSslClient,只https双向, 多个需要多套证书,需要在applicationContext-service.xml中定义多个。 使用方法: 三个:httpClient/httpAsyncClient/httpSslClient 选择一个合适的Bean调用即可: ClientTransmeter clientTransmeter = new HttpAsyncClient(); // 或者 UtilTools.getBean("httpAsyncClient"); 直接调用clientTransmeter.post方法发送和接收字节。 (2). 调整缺省的通讯模式,将缺省交易编码放到uri和部分通讯字段放到交易头上配置注释掉了 1、缺省通讯模式,交易码不放置到uri上 2、缺省注释掉了放置到httphead上传递的字段。 打开以上注释的配置项: 1、服务器端配置: 需要将applicationContext-service.xml中httpTransService的相关配置项打卡 配置的注释项目如下: 说明: 对于微服务,利用头上获取字段,可以获取,nginx和haproxy等代理服务放置到头上的客户端ip或客户端证书的dn等无法直接获取的字段 为程序的特殊参数传递打开特殊的传递通道。请注意灵活使用。 2、客户端通讯配置: 系统设计->通讯设计->通讯接口->httpclientApater(客户端适配器).csv的 code2uri:设置为true打开,支持uri放置上 clienthttpHead:设置放置到头的字段 serverhttpHead:设置从httphead头上获取的字段 (3). com.miniframe.microservice-3.2.1修改 1、将中的批处理包:microbatch-3.0.0.jar删除 2、将数据库模型“system(系统模型).erm”删除。 如果configsrc中springcfg的applicationContext-database.xml删除, 系统可以脱离数据库直接运行不含数据库的工程。 目的,是为了便于项目的最大的变化,打造一个0工程包,这样依赖最少。 (4). com.miniframe.microdemo-3.2.1修改 1、microdemo是一个例子工程,删除了批处理多余的包。 2、更新了microservice-3.2.1.jar核心包。 3、将中的批处理包:microbatch-3.0.0.jar删除 (5). com.miniframe.managersvr-3.2.1修改 1、managersvr-3.2.1是一个内部管理的例子工程,增加了批处理包microbatch-3.0.0.jar。 microbatch-3.0.0.jar包,是批处理配置化管理的完整实现,数据库模型参见:quartz(跑批模型).erm 数据库脚本参见工程的04-batch.sql,建立库表,系统的model生成时不要增加SYS_TIMERCONFIG表, 因为SYS_TIMERCONFIG的model已经打包在microbatch-3.0.0.jar,并且包含了sqlmap的配置,直接增加jar 即可。 所以,microbatch-3.0.0.jar也给出了一个业务封装的标准模式,只依赖数据库表,jar独立发布。 至于microbatch-3.0.0.jar的源代码,可以参见com.miniframe.batch-3.0.0工程源码包。 2、更新了microservice-3.2.1.jar核心包。 (6). 增加了com.miniframe.batch-3.0.0的源码工程,配合内管的例子使用。 (7). com.miniframe.managerdoc-3.2.1只修改了版本号,没有做调整。 后面,将给出前端html代码生层的视频,做管理类0代码开发实例,稍后给出。 11、2018-09-24 tianyubing,版本:3.2.0-扩展系统cache,全面支持redis的cache,脱离捆绑特定cache的弊端,由于使用例spring-cache扩展,可用于生产,支持万级并发 (1). 将ibatis的cache抽象从ehcache分离,产生miniframe-cache-3.0.0.jar工程包。 (2). ibatis-2.9.0.jar升级到ibatis-2.9.1.jar。 (3). microservice-3.1.9.jar升级为microservice-3.2.0.jar。 (4). nettyr全面升级到netty-all-4.1.29.Final.jar。 (5). 增加jar的依赖包:jedis-2.9.0.jar,spring-data-redis-1.8.15.RELEASE.jar,spring-context-support-4.3.18.RELEASE.jar, spring-data-commons-1.13.15.RELEASE.jar,spring-data-keyvalue-1.2.15.RELEASE.jar。 (6). 进一步简化cache.xml配置,在minicore.propertie使用cache的定义,增加redis配置redis.properties,同时deployecfg的部署配置也同样调整。 (7). UtilTools修改用户cache操作方法: a.获取用户缺省cache的值:getUserCache(String key) b.存放用户缺省cache数据:putUserCache(String key, Object obj) c.删除用户缺省cache数据:removeUserCache(String key) d.清除用户缺省cache数据:clearUserCache() (8). tilTools新增通用cache操作方法: a.获取用户缺省cache的值:getCache(String cacheName, Object cachekey) b.存放用户缺省cache数据:putCache(String cacheName, Object cachekey, Object object) c.删除用户缺省cache数据:removeCache(String cacheName, Object cachekey) d.清除用户缺省cache数据:flushCache(cacheName) 10. 2018-09-03 tianyubing,版本:3.1.9-支持xml报文 (1). spring的配置文件applicationContext-comm-null.xml通讯空包,把它的schema从互联网获取,修改为本地spring-schema-4.3.18.RELEASE.jar内获取。 (2). 为了支持xml2json,json2xml,增加了org.json包,microservice-3.1.9.jar需要依赖org.json,当前最新版本为:json-20180813.jar。 (3). 增加了Map转换为Bean的list识别,map节点可以Bean属性定义转换为List单记录,以便支持xml2bean时,单记录转换为List的问题。 (4). 支持xml报文通讯,格式和json对应,要求节点符合javaBean属性规范要求,节点首字母小写,xml节点顺序无关,支持list和map嵌套。 (5). 修改gson的整型转换过程中自动转换为浮点型的问题,尝试注册类型处理类模式未能成功,修改gson-2.8.5的源代码,发布为:gson-2.8.5-1.jar以示为自扩展修改。 (6). 通讯配置修改: 1. 模板修改 -- 系统设计->通信设计->通讯接口->build->xmlTemplate.vm 增加了“transType”作为通讯报文类型 2. 模板修改 -- 系统设计->通信设计->通讯接口->httpclientApater(客户端适配器).csv 增加了“transType”作为通讯报文类型,设置xml为xml格式,其它或不设置为json格式。 3. com.miniframe.microdemo-3.1.9工程的调整为xml报文格式,请参考,其它为json格式。 4. 服务器端的报文格式为自适应,客户端为http提交或json提交返回为json,提交为xml返回为xml。 (7). minicore.properties增加了,xmlhead和xmlroot字段,xmlhead或xmlroot表示没有指定头或没有根节点,以对xml通讯做细致的定制。 9. 2018-08-31 tianyubing,版本:3.1.8 (1). 增加了缺省数据库的查询,增加,删除,修改的事务完整性。 (2). 增加了缺省数据库的查询,增加,删除,修改和easyui的http提交的兼容性,将偏移量修改为当前页page,将页行数修改rows,返回总行数为total,返回记录列表为rows,保证和easyui的兼容性。 (3). 增加了基于easyui的管理端的实现,实现交易登录,登出,修改密码,密码重置等登录相关交易,并且在前处理中进行了登录验证实现。 (4). easyui的管理端代码,通过nginx实现动态和静态分离,并且给出例子工程,删除了原工程的日志处理部分并且内管中日志的查询和管理应用功能被移除。 (5). 基于3.1.8实现了,批处理交易的定义和管理,增加了microbatch-3.0.0.jar基于quartz-2.2.3.jar的实现,microbatch-3.0.0.jar和内置的数据库ddl的sql, 运行04-batch.sql建立表后,加入microbatch-3.0.0.jar到即可运行,microbatch是对批处理的管理和运行的扩展,完整性由批处理交易业务逻辑实现。 (6). 调整了postgresql数据确定为最终版本postgresql-42.2.4.jar。 (7). 调整com.miniframe.microservice为独立的完整的空工程,删除了demo部分,便于新建定制工程。 (8). 调整com.miniframe.microdemo的例子代码,保持和microservice-3.1.8.jar的兼容性,便于原有例子工程的学习。 (9). 调整ehcache.xml和ehcache_cluster.xml数据库cache的配置。 (10). 调整Spring的依赖为4.x的最终版本为4.3.18。 (11). 由于部分插件的需要将开发环境调整为j2ee环境,需要更新eclipse为j2ee开发环境。 8. 2018-08-07 tianyubing,版本:3.1.7 (1). 增加系统类加载等运行时异常的处理,对异常进行全面截获和异常处理。 (2). 消除系统异常后,ctx.channel().close();关闭管道,系统自动再次重新运行应用的问题。 (3). 增加了httpclient通讯过程中的keepalive的处理,避免系统长时间占用通讯连接的假死现象,对ConnManager增加了closeIdleConnections(keepAlive, TimeUnit.MILLISECONDS);。 时间和keepalive的时间相同,缺省不支持keepalive,keepalive的时间影响是否启用keepalive功能,对于高并发系统建议关闭,设置为0。 (4). 修改microservice-x.x.x.jar为microservice-3.1.7.jar (5). 修改了build.xm文件的版本号为3.1.7。 7. 2018-08-03 tianyubing,版本:3.1.6 (1). 修改microservice-x.x.x.jar为microservice-3.1.6.jar,修改系统异常中的交易码参数未传递的情况 (2). 修改了build.xm文件。 (3). 修改了microservice工程模板和microdemo不一致的问题。 6. 2018-07-30 tianyubing,版本:3.1.5 (1). 修改microservice-3.1.4.jar为microservice-3.1.5.jar (2). 修改了build.xm文件。 5. 2018-07-27 tianyubing,版本:3.1.5 以下部分和开发平台的开发项目管理相关,还是具有一定的必要性,核心代码没有任何更改, 从工程化的需求出发的,sql模板部分根据项目的库表结构可以自行修改模板。 (1)、增加了数据库定义中的标准数据生成sql执行的数据加载语句。 增加:标准数据/build/sqlTemplate.vm (2)、增加了系统菜单管理模块以及sql生成的数据加载语句。 增加:系统菜单 (3)、增加了系统模块的交易sql生成模板,目的为交易的权限管理生成sql加载语句。 增加:系统模块/build/sqlTemplate.vm (4)、修改系统生成代码核心包 修改:系统设计/lib/designer-3.0.0.jar为designer-3.1.4.jar; 修改客户端代码生成的bug。 4. 2018-07-24 tianyubing,版本:3.1.4 (1)、对系统错误管理进行规划 BaseException,是基类基本功能全部实现,其它异常扩展,全部继承此基类。 BusinessException,为业务错误时,由程序员抛出。 CommException,通讯异常,主要包括客户端连接,路由的连接的通讯客户端连接性异常。 DataBaseException,为数据异常,数据库操作,的数据类异常使用,由封装性代码,或框架性数据错误抛出。 系统通用错误信息进一步扩展,增加了交易码参数或路由uri的参数,以方便错误迅速定位: 0000000 = 系统交易调用成功! EB00001 = 通讯格式错误,请参见通讯规范! EB00002 = 系统交易[{0}]无此功能或交易未注册! EB00003 = 系统数据校验异常,异常信息:[{0}]. EB00004 = 系统交易[{0}]处理错误! EB00005 = 系统交易[{0}]通讯处理错误! EB00006 = 系统请求[{0}]路由通讯处理错误! EB00007 = 系统交易[{0}]数据处理错误! EB99999 = 系统心跳健康检查错误! (2)、对通讯协议进行扩展,客户端通讯连接或路由连接支持 a、普通连接方式,支持http和https单向连接方式。 客户端:com.miniframe.httpclient.HttpClient 路由端:com.miniframe.httpproxy.HttpRouteProxy b、客户端的异步连接池方式连接,只支持http的普通连接方式 客户端:com.miniframe.httpclient.HttpAsyncClient 路由端:com.miniframe.httpproxy.HttpAyncRouteProxy c、https双向通讯,支持客户端证书连接服务器的ssl通讯模式 客户端:com.miniframe.httpclient.HttpSslClient 路由端:com.miniframe.httpproxy.HttpSslRouteProxy 3. 2018-07-23 tianyubing,版本:3.1.3 (1)、对jasperreports进行字体和包调整,调整为jasperreports-6.6.0.jar,字体见configsrc目录。 目前字体增加了宋体,其它中文字体支持,自行添加支持ttf字体以及自定义字体。到此大家可以从官网下载最新的设计器进行设计报表了。 下载地址:https://community.jaspersoft.com/project/jaspersoft-studio 下载版本:根据自己的操作系统,自行确定,系统目前封装的是6.6.0为最高版本。 2. 2018-07-17 tianyubing,版本:3.1.2 (1).修改了microservice-3.x.x.jar,ibatis-2.9.0.jar包 (2).增加了poi-3.6.jar包 (3).后处理和错误处理接口修改 为了方便业务处理,将ErrorProcessFlow,NextProcessFlow交易执行的后的后处理部分接口做了修改, 接口将上送和回送的Map全部作为入口参数,前处理由于没有返回Map依然保留不变。 (4).修改了build.xml文件,增加了execel的文件处理包poi。 (5).增加了数据库缺省交易调用的操作例子,例子是java模式编写,但是支持json的操作,也支持http键值对的操作 对于存在嵌套比如list或map节点的值得情况,http的get参数化,使用"."作为节点分割,比如:record.abc.ab,record.abc.cd等, 数组字段重复发送key和value即可。 (6)、系统设计->通讯接口模板修改 modelTemplate.vm修改增加了,http的kv提交模式的“.”分割的解析,处理了转换为数组或Map, 并且增加了支持http的web参数化提交一个“.”分割的多个Map和List的嵌套模式,也就是只支持类和List的无限嵌套的解析。 (7)、类型自动转换 map到bean的转转换,涉及的数据类型不同的相互之间的转换,apache的beanUtil不能处理日期类型的转换,增加了Date类的处理,其它基础类型系统自动转换未见异常。 (8)、增加文件下载的处理 是否存在文件下载,主要取决于服务的返回,系统提供方法:UtilTools.setReturnFile();设置用户文件返回的内容。 HttpServerTransFile("测试文件.png", baos),要求服务给出文件名称“fileName”和文件Buffer“ByteArrayOutputStream”由系统统一完成下载文件的回写工作。 其它情况不变,异常抛出异常回写json,而无文件回写,目前这是文件下载类支持的统一方案。 (9)、交易码的特殊表达 HM0001.png 交易码的获取会获取最后的URI,当最后的URI存在类似“.png、.jpg、.docx等”文件后缀时,系统获取“HM0001”作为交易码,将获取“.png”等作为文件下载的文件类型, 系统也将此文件后缀作为需要下载的标志,UtilTools.getDownFileType()方法获取下载的文件的类型,以便交易服务处理参考。 (10)、增加了kaptcha-2.3.2.jar包,生成验证图片,并且保存在userCache中。 具体例子参见:com/miniframe/verification/VerificationTest (11)、增加jasperreports-3.7.6报表功能,增加的jar有iText-2.1.7.jar,iTextAsian-1.0.jar,jasperreports-3.7.6.jar jfreechart-1.0.12.jar系列包。目前使用版本较低,原因是因为此版本较小,功能也比较完整。 具体开发手册和使用手册,参见官方网站。 (12)、增加了http服务代理功能,修改了applicationContext-service.xml,minicore.properties(增加了通讯错误资源的配置) microservice-3.1.2.jar包内的错误资源文件修改。 。。。。。 (13)、增加了文件服务器nginx的配置例子具体见com.miniframe.microdemo-3.1.2的html页面。 对html的页面Form提交以及文件提交进行了测试,代理没有实现cookie的代理转发,其它post和get模式全部实现。 1. 2018-07-12 tianyubing 版本:3.1.0 (1).增加了交易服务类的扫描功能,可以自动注册,删除了 (2).applicationContext-trans-register.xml或者说applicationContext-register.xml的配置文件 (3).当然也删除了此文件生成的模板文件,此文件无需再生成,减少系统配置文件,增加智能化。 (4).自此实现交易的独立开发和部署,意味交易服务类可以打包成jar,增加到工程中,系统无需更改直接提供了交易服务。