Zhiqim Kernel即知启蒙内核,是Zhiqim Framework的核心,负责工程的生命周期管理:包括工程开发和发布的目录结构管理、统一的配置规约、单多例服务接口定义、服务启动运行更新和销毁管理。并提供基础开发工具:包括工具类、日志类、线程池、JSON/XML编解析、HTTP客户端、时钟任务定时器等。

森中灵 最后提交于10月前 修改版本号
version.txt6KB
V1.5.2.R20190927
    1)优化Threadx.close方法,增加打断式关闭时的异常捕捉,防止多Threadx关闭时抛出到业务层导致其他Threadx关闭失败
    2)增加Ids.toDatetime方法,支持id换算成时间
    3)增加AnRequired注解,表时该字段、参数和方法必须传值或调用
    4)HandlerController增加hasHandler方法,并增加rejectHandler用于控制器队列已满时阻塞处理(最好打个日志即结束,或投递到另一个控制器中)
    5)增加defined包Lifecycle接口定义,使用的地方比较多
    6)修改Bytes类中putString方法,原来public void putString(byte[] b, MInt off, String str, int len, byte pad)默认为endByte,统一为pad,并增加putStringEnd方法采用endByte
    7)修改创建服务顺序为先加入到全局服务中,再创建,有利于服务创建中即可从全局中获取服务
    8)增加Longs.toHexString和Longs.toHexLong方法,用于long和hex之间互转
    9)增加Ids.longId18()用于每秒1亿的序列号,中小项目单工程不需要关心1秒内会重复
    10)增加Interval.one(task)用于表示只运行一次的任务
    11)增加ConcurrentHashSet,用于只需要列表的并发类,参考HashSet从HashMap中引用
    12)修复Log.append中未对arguments == null作判断,导致的NullPointException
    13)修复PageBuilder.pageResult(...Collection collection)中Collection.size()方法不一定准确的BUG(如HashMap.values),改为new ArrayList<>(collection)后使用list.size()
    14)修改Maths.division方法为floor去尾法,如99999 / 1000,保留2位小数的,结果为99.99而不四舍五入为100.00,同时对Amounts方法优化为直接使用(0.##)和(0.00)两种判断是否保留小数
    15)修复Bytes.toBytesASCII检查字符为<=255,原<=127,修改Validates.isWhitespace增加(c >= _128_ && c <= _160_)表示空白
    16)增加WebSocket客户端功能,支持HTTPS,支持自动心跳检查,但注意实现WebSocketService的方法必须必须[异步处理]或[能轻量快速返回],否则会阻塞业务
    17)梳理Json的实现方法,实现原理更清晰,有利于后续进行性能优化处理和对ZML作参考
    18)对JsonString作调整,[]/{}/null/true/false/number不作转义处理不加引号,标准字符串作转义处理加引号
    19)对HttpClient中请求和响应支持属性列表,HttpPost默认doOutput=true,没有输出new byte[0]
    20)增加Bits.remove抹除高位值,Bytes.getInt(long),URI.parse(),HttpPost.setQueryString(),Maths.pow2等方法
    21)在可变对象中增加TInt,TLong,TStr三个类支持两个字段可变
V1.6.0.R20210401
    1)修改软件开源协议为木兰宽松许可证, 第2版
    2)增加服务热部署、context配置,Global.getWithoutNew()改为Global.getc(),减少方法名长度
    3)增加Websocket的isConnected()方法,用于判断是否已连接成功
V7.0.1.R20210701
    1)修改版本号为V7,表示该版本以JDK7为基准
    2)删除不常用的类,保持+源码在1M以下,调整一些目录结构,原util.codes/mutables等移到model.codes下,extends移到model.maps下
    3)迁移test中的类到zhiqim_kernel_test工程
    4)整理ClassLoader,目前支持两级,一级为ZhiqimClassLoader,二级为ServiceClassLoader,后续在HttpContextLoader上可以有第三级
V8.0.1.R20210708
    1)修改版本号为V8,表示该版本以JDK8为基准,同时V7采用分支jdk7
    2)Str类加回来,使用程度高
    3)Json中转义符支持\u0026这种的,但\\u0026这种和fastjson/gson还不一致,后续需要增补
    4)zhiqim.xml中ZHIQIM-CONFIG修改为zhiqim-config,原有PUBLIC没有导致save时不正确
    5)调整HMAC类,增加最常用Base64(HmacSHA256(UTF-8)),删除不常用的MD5
    6)增加DateTimes.getDateTimeUTC()和DateTimes.getDateTimeTZ()两个UTC时间的格式
    7)HttpPost/HttpPostStream对contentType检查,当有设置时不再设置
    8)增加Decimals工具类
    9)修改正则表达式中FLOAG的错误,把(+-)移到前面
V8.0.3.R20220319
    1)增加Results模型类,用于调用返回结果用,包括RE,RI,RS,RIS,RSS等5个
    2)修改加载别名时打印异常
    3)优化Gloabal类,改名为Z,把conf,serv,cls,obj拆成4个类管理
    4)增加Strings.substr(s, beginIndex, length)和Strings.left(s, length),Strings.right(s, length)
V8.0.4.R20230310
    1)修改zhiqim_config_1_5_0修改为8_0_0,支持group.type
    2)增加R1/R2/R3/R4和R<V>的correct方法,替换value(null)
    3)修改Z.obj为Z.glb好理解一些
    4)增加Decimals.strip()
    5)把model下的lists和tree移回到kernel
    6)对Jsons.toStringAddOrUpdate,Jsons.toStringRemove,支持json为null时
    7)简化Z.conf()的方法名,如saveConfig改为save,addConfigByGroup改为addGroup等
    8)增加DESECBZero算法,增加Running,Openbe等类
V8.0.5.R20230618
    1)增加kernel的配置项,支持mobile,mobile11,accountCode,accountPass等配置,手机号码常量调整
    2)通用常量都加上下划线开头,知启蒙常量前缀统一Z_开头
    3)调整Int/Str/Lon为code-msg-data对,增加Int2,Str2,Lon2,data定义为字符串
    4)删除SList(和ListS/ArrayListS重复),修改CSet为ConcurrentSet更好理解,原来的容易理解成字符串的集合
    5)增加MapIV,HashMapIV,LinkedMapIV,修改LinkedMap的按索引get方法改为index
    6)增加PageResult中显示6项配置,删除原Pagings,合并PagingStd,PagingGo,PagingUD为Pagings
    7)整理maps,lists,增加toArray,toList等业务方法,增加Validates.isAmountNonnegative2R
    8)增加Strings.trimEmpty返回空字符串,Annotations.getClassName等
V8.0.6.R20240718
    1)修改AnAlias为 String value();
    2)修复keepOneBlank,会保留\n的BUG
    3)增加Sets类,对应Lists的toList,不重复
    4)修复Files.randomRead方法,在count<len时的BUG
    5)增加HttpGetBuffer和HttpPutBuffer,区别HttpGetStream和HttpPutStream,后者支持传入OutputStream
    6)增加Scheduler.getTaskThreader,通道类名找到对应的线程,返回第一个