limax-5.16-b4709 (2021/03/31) 1. Revise the location loading method of the PKIX system to ensure that the drive letter of the windows file system is correctly supported. 2. limax.js correctly supports CBean as the key of the associative container. Unfortunately, limax.lua has no way at all. Lua itself does not support using a table as a key, and stringify is the only option. 3. Auany supports trustall mode, transforming auany into a fully dynamic sessionid allocator, a manager of stateless service clusters. 4. Correctly process websocket 0-length packet. limax-5.16-b4696 (2020/09/22) 1. Allow to close the keepalive between switcher and endpoint. 2. limax.android uses Android Studio to manage projects 3. minor bug fix limax-5.16-b4671 (2019/09/24) 1. Guarantee the compatibility for jdk1.8 and above. 2. Fix minor bug. limax-5.16-b4665 (2019/07/25) 1. Reorganize the auany configuration file to make it easy to close certain modules. 2. Adjust the Makefile file of NDK version. 3. Fix minor bug. limax-5.16-b4623 (2019/06/21) 1. Fix the URL special character problem in the http request path. For example, if the file name has a space, when tracking this problem, the java.net.URI has the following semantic flaws: URI uri0 = URI.create("/abc%20%E9%94%99%E8%AF%AF"); URI uri1 = new URI(null, null, "/abc error", null); URI uri2 = URI.create(uri1.toASCIIString()); System.out.println(uri0.equals(uri1)); System.out.println(uri0.equals(uri2)); Obviously, uri0, uri1, uri2 all point to the same path, but the first line outputs false and the second line outputs true. 2. Add limax.util.Promise.java to simplify asynchronous process management, consistent with the Promise functionality provided after ES6, as described in the javascript manual. 3. Provide a simplified version of au. limax-5.16-b4613 (2019/05/22) 1. Add the createAlarm method for limax.io.net.NetTask to allow more Alarm timers to be created for the current nettask. 2. Change the priority and the implementation of flow control of HTTP/2. The egress mode is changed to ingress mode. At the same time, similar to HTTP/1.1, the request is processed in units of connections, which ultimately reduces the server memory overhead. Add the flow control window parameters consistent with HTTP/1.1. (The egress method relies on the peer window announcement to try the best efforts to fill the send buffer. Combined with the use of memory mapping, it can achieve very good performance when dealing with large files. File data will not enter user space at all, and there is no substantial heap requirement for large data block transmissions.. However, when HTTP/2 runs in TLS mode, multiple users access the same file, and the file data will be encrypted into multiple different versions, generating a large number of heap requirements, so the advantages of memory mapping no longer exist. The result is that in TLS mode, it is impossible to prevent malicious clients from notifying huge windows and accessing huge files to cause memory overflow.) 3. Unify the alarm behavior of WebSocket in HTTP/1.1 and RFC8441 two modes. 4. Add the congestion timeout configuration, constrain the sending behavior in all modes, and close the connection as soon as the congestion times out. 5. Adjust the limax.http.HttpHandler interface, replace the postLimit method with the censor method, and support more flexible and controllable upload review. 6. Add a cancel method for limax.http.Exchange that allows the server to terminate the network connection as soon as it detects malicious behavior. 7. The release time of the Server-Sent Events object is clarified by the onClose message. (Whether it is a network accident, or actively perform done method, the onClose guarantees to schedule only once). 8. Change limax.http.HttpExchange.async(DataSupplier) to limax.http.HttpExchange.async(HttpHandler handler) for better conceptual consistency. 9. Update relative manuals and examples. limax-5.16-b4576 (2019/04/25) 1. Fix the limax.netio.NetTask semantic issue caused by the previous update. Even if there is no startup message, the shutdown message must be allowed to indicate that the client connects is aborted, otherwise it will affect the re-connection. 2. Add the method limax.http.DataSupplier.async(); and limax.http.HttpExchange.async(DataSupplier); to support asynchronous handle, refer to the example ExampleHttpServer.java. limax-5.16-b4572 (2019/04/16) 1. Remove limax.zdb.TTableCacheNull. 2. Add a cancel method to limax.net.io.NetTask that allows the application to actively shut down the network connection (relative to the passive shutdown function installed via resetAlarm). 3. The error handle configuration of the http server is promoted to the virtual host layer. The virtual host can configure its own error handle. limax-5.16-b4565 (2019/03/26) 1. Remove the HashExecutor.schedule of the previous release, which is easy to misuse. 2. The three methods startup, process, and shutdown of limax.net.io.NetProcessor guarantee strict serial scheduling. 3. Add the execute method for limax.net.io.NetTask to allow network input to be simulated in the case of nettask activity (once shutdown, the execute task is ignored) 4. Add the limax.http package, provide http service framework, support HTTP/1.1 (compatible with HTTP/1.0), HTTP/2, WebSocket, Server-Sent Events, update related manuals 5. All http services in the limax framework are replaced with limax.http implementation, replacing com.sun.net.httpserver limax-4.16-b4450 (2019/02/22) 1. Fix limax.zdb.TRecord.tryMarshalN to remove the window between marshal0 and delete changed records. 2. Fix a window problem that the data collection result was empty in the case of asynchronous mode. 3. Add the schedule method for limax.util.HashExecutor, which is suitable for multi-event triggering the same command. If the command can aggregate all events, this method can be used to eliminate unnecessary command scheduling. limax-4.16-b4431 (2019/01/25) 1. Expand limax.net.io, add asynchronous mode, allow coexistence with poll mode, support SSL, support flow control; add asynchronous attribute to all Manager configuration, the default is that false means to use poll mode; update related manual. 2. limax.util.transpond, which provides transparent proxy support based on limax.net.io. limax-4.16-b4332 (2018/12/20) 1. Increase support for JDBC connection pool, better handle recoverable SQLException such as database server disconnection, deadlock, and operation timeout. Please refer the manual appendix "JDBC connection pool". 2. All code suitable for using the JDBC connection pool, are updated to the above implementation, including zdb, auany, and testmonitor. It is safe to remove the autoReconnect configuration in the mysql url. 3. Fix the issue that even if turn on the zdbVerify configuration, it can not correctly check the misuse of the read lock, and optimize the lock check mode. limax-4.15-b4301 (2018/11/27) 1. Adjust the implementation of limax.provider.ViewDataCollector.MutableCollector to avoid outputting empty status collection field update information and eliminate unnecessary View events. 2. Adjust the implementation of limax.key.ed.Transformer, the encoder and the decoder all return limax.codec.ByteArrayCodecFunction for better application consistency. Enhance the ability of the simple version of Transformer, allow external data timeouts to be supported by configuring the fragment portion of the URI, and update the relevant manual. 3. The server configuration element JmxServer adds optional attributes username and password, and update related manuals. limax-4.15-b4279 (2018/10/30) 1. Adjust the TemporaryView close timing to prevent the bind data push before the unbind action occurs after closing, preventing the script client throw a null exception. limax-4.15-b4275 (2018/09/27) 1. JSON.stringify, the control characters except for \b\t\n\f\r are output in Unicode mode to ensure browser compatibility. limax-4.15-b4273 (2018/08/22) 1. Add zdb cache preload configuration, update relevant manuals. 2. minor bug fix. limax-4.15-b4269 (2018/07/21) 1. Complete QrCode codec support, add Java and C99 decoder. Single file implementation without any dependency is easy to integrate project. Update relavant manuals. 2. Pc and android version of QrCode Decoder Demo. 3. java.util.LockEnvironment.java strictly detects the waiting state to avoid false reporting for read lock deadlocks. 4. Fixed a state issue caused by repeated logins in a multi-Provider application environment. limax-4.14-b4210 (2018/06/20) 1. Simple QrCode encoding support (Java, C#, C99, Javascript) 2. minor bug fix limax-4.14-b4198 (2018/04/24) 1. Added support for dynamic XBeans and updated relevant manuals. 2. Native JSON/Lua, greatly improve performance, keep the pure Lua version. When require, detects the presence of the Native version. If exists, use the Native version. 3. Simplify JSON/C++, cancel wide-character versions. Use UTF8 as convention. Like JSON/Lua, Unicode characters encoded in \uHHHH are converted directly to UTF8. Update relevant manuals. 4. minor bug fix. limax-4.13-b4139 (2018/03/17) 1. LimaxKey, add the certificate login method, support third-party organizations to sign certificates for their users to log in to the Limax operating environment, replace traditional third-party authentication, and update relative manuals. limax-4.12-b4101 (2018/01/31) 1. Add support for ProviderLogin, which allows that the Endpoint sends the intialization data to Provider after the auany authenticates and initiates Provider-Session, and update the relative manuals. 2. Add the source codes related to ScriptEngineHandle in the framework of data exchange between Providers, and update the relevant manuals. 3. Generate the more refined source code in View/Bind/Clip. 4. For Auany, add the mysql implementation for PayLogger and AccountLogger, which allows to record the account information and bill information. Provide the convenience for bill statistics. 5. The Switcher reports the disconnection status of Provider to Auany, and Auany provides more refined service status information. 6. All Endpoint.loadServiceInfos implementation provide the method which supports the extra query parameter additionalQuery, which provides the convenience for Auany preposing proxy web server to implement the service status information filter. 7. Reconstruct Endpoint login mode, provide LoginConfig class, clearly support all kinds of login modes, modify the relevant demo, and modify the relevant manuals. 8. The initial support for the client certificate login mode. 9. minor bug fix. limax-4.11-b4019 (2017/12/19) 1. Add a data exchange framework between the Providers based on the client-side tunnel, and update the relevant manuals. 2. View/Bind, remove meaningless TOUCH output, and reduce the client processing load. limax-3.11-3994 (2017/11/22) 1. Add support for external data encoding to provide basic guarantee for data exchange between trusted systems, and update relevant manuals. limax-3.10-b3981(2017/10/24) 1. minor bug fix (rfc2118 update length. The bug does not affect the existing applications) limax-3.10-b3979(2017/09/22) 1. Add a decentralized Key distribution system, and update the relevant manual. limax-3.9-b3926(2017/08/23) 1. Complete PKIX support, improve the operating tools, and update the relevant manual. limax-3.8-b3907(2017/07/25) 1. Added limax.pkix package to provide basic support for PKIX. limax-3.8-b3840(2017/6/27) 1. Through the client tunnel, provide the basic support for data exchange between Providers. Each language client version framework is fully implemented, and the server supports basic SharedKey mode. limax-3.8-b3825(2017/4/25) 1. The node.js compliant framework provides an alternative implementation of HTTPS and TLS/SSL modules. 2. minor bug fix. limax-3.8-b3791(2017/3/21) 1. Add native Java version node.js compatible framework to extend the interoperability with external systems, and update the relevant manuals. 2. zdbtool/convert, batch submit, improve performance. 3. minor bug fix limax-3.7-b3709(2017/1/17) 1. Add CLR/Javascript(SpiderMonkey), which supports the interoperability between C# and Javascript, and update the relevant manual. 2. Add Javascript/C# ScriptEngineHandle, and update the relevant manual. 3. Add limax.util.ReflectionCache, provide a unified interface for scripting systems to access C# objects, and meanwhile improve performance. 4. minor bug fix limax-3.5-b3669(2016/12/20) 1. Add javascript/C++ (SpiderMonkey) ScriptEngineHandle, which could use javascript to develop the client. Update the relevant manual. 2. Enhance the CLR/Lua. Add LuaFunction type, which allows the C# code to call Lua funtions through delegation way; adjust the type conversion rules when Lua access C#, except for the bool and string types according to the traditional rules, the others converts according to the C# specification and strictly catches the conversion exception; cancel the cachelimit setting for the Lua's classes' construction function and simply the concept; the Lua object provides the name method which names the following eval for debugging purpose. Update the relevant manual. 3. minor bug fix. limax-3.5-b3619(2016/11/23) 1. Add the support to the minimalist mode client, and update the relevant manual. 2. Enhance the GlobalId service, support the static configuration and runtime configuration to the GlobalId request timeout, clear the server lock through resetting the connection to avoid the deadlock issue caused by the timeout. 3. minor bug fix. limax-2.5-b3603(2016/10/25) 1. Add CLR/Lua, support the interoperability between the C# and Lua, and update the relevant manual. 2. Add the virual machine parameter limax.net.Engine.intranetKeepAliveTimeout, which performs the KeepAlive detection between internal network servers, and the default value 0 means closing the detection. This is used to deal with some unreliable cloud environments. 3. minor bug fix. limax-2.4-b3594(2016/9/23) 1. Add the client-side caching support to the script system dictionary.sessionStorage could be simply used in HTML5, please reference the demo/chatroom/javascrip/chatroom.js. In the embedded mode (js/java, lua/c++), when creating the script engine handle, the implementation of the client own DictionaryCache interface need be supplied, and the lru is recommended. 2. Add the creation method of each script engine handle which provides the providers list, and overrides the providers list configured in the script definition. 3. Remove the secureip configuration of the Switcher by directly using the virtual machine parameter limax.net.secureIp to set the external network ip in the DNAT environment. 4. Adjust the generation way of the server-side ViewManager.java to avoid a single file exceeding the 64k limitation and causing the javac failure. 5. minor bug fix. limax-2.4-b3523(2016/8/24) 1. The C++ version provides the lightweight WebSocket client support, which is only compatible with the WebSocket server coming from the Limax. 2. minor bug fix limax-2.4-b3512(2016/7/28) 1. Add the Limit element into the configure file, which allows the multiple ServerManager to share the same access limitation. 2. Resolve the MacOS compatibility issue of the IPEndPoint/C++. limax-2.4-b3506(2016/6/28) 1. Extend the ProviderManager interface, providing the close method with kick reason and the default is ErrorCodes.PROVIDER_KICK_SESSION. Be careful that the custom reason should not be chosen within the system ErrorCodes and the negative numbers are recommended. In particular, if the onDuplicateTransport throws the exception, the ErrorCodes.PROVIDER_DUPLICATE_SESSION is used. 2. Ignore the exception output come from the bind operation on a closed view. limax-2.4-b3502(2016/5/25) 1. Fully support the JSON, refer the appendix "The JSON support" of the limax manual for the detailed information. 2. Increase the lua/fastscript mode, which accelerates 40% compared with the lua/script mode, however the lua performance is still far less than the javascript. 3. Extend the tools, provide the limax.util.HttpClientService, which is convenient to connect multiple Http servers, to avoid that a failure of a server effects the application performance; provide the zdb lock inspection tool, which is accessed through java -jar limax.jar jmxtool lockenv way. 4. minor bug fix limax-2.3-b3441(2016/4/25) 1. Adjust the JSON implementation of the Java and C#, parse/stringify is reversible; the booleanValue, intValue, longValue and doubleValue, are implemented according to the js type conversion, except that the exception is thrown instead of returning NaN. For example, if(json_obj.booleanValue()) is exactly equivalent to the if(json_obj) of the js. 2. Adjust the behavior of the lua/variant and is more consistent with the behavior of the lua/script. 3. Adjust the int64 string encoding in the script environment. The lua5.3 completely supports the int64. Within int53 in the js is interpreted as the Nunmber, and the int53 above is interpreted as the String, to avoid the loss of the precision. 4. minor bug fix. limax-2.3-b3414 (2016/3/22) 1. Improve the ZDB deadlock detection, and support the deadlock detection to the read lock. 2. Add the configuration option, and support the deployment of the Switcher under the DNAT environment. 3. minor bug fix limax-2.3-b3361 (2016/1/18) 1. Expand the concept of the View, support the sending of the status data, and optimize the large-scale data set broadcast. Please refer the manual for the detailed information (Application Development/Advanced Characteristic). 2. Adjust the Bind semantics, use the key to directly bind the table, the bind field defined by the xml is the subscription of the value of the bound table. 3. The Auany provides the application configuration management, publishes the server's status information to the application client, allows the Provider to publish the private information of the application, and addes and maintains the application configuration without restart the Auany. Please refer the manual for the detailed information (appendix 3) 4. minor bug fix limax-1.2-b3139 (2015/11/23) 1. The Auany supplies the credential account system, supports the sub-account, the temporay subtenancy of the account, and the transference of the account. 2. In the implementation of all the supported clients,add the capability of the http download in order that the application dynamically loads the configuration information. 3. json.lua 4. minor bug fix limax-1.1-b3044 (2015/10/28) 1. edb, transactional addTable, removeTable 2. zdb, experimentally add the Duration ability to make the zdb completely support the ACID property of the transaction. 3. The PVID is updated to 24 bit and the protocol is updated to 8 bit. Support the client to dynamically configure PVID. 4. codec, enhance the support to the JSON. The client version supports the JSON decoding, and the server version supports the JSON coding and decoding. 5. minor bug fix. limax-1.1-b2863 (2015/9/23) 1. onManagerInitialized setup GloablView resource is reasonable, so early init GlobalView is acceptable. 2. value of lua table can't be nil. limax.lua fixed. limax-1.1-b2856 (2015/9/22) 1. Simplify edb locks. limax-1.1-b2846 (2015/9/19) 1. Add payment framework, integrate Simulation gateway and AppStore gateway. 2. Improve edb backup/recover, reduce dependency of filesystem and underlying disk. 3. minor bug fix. limax-1.0-b2784 (2015/8/18) 1. init version