AceQL HTTP Release Notes Introduction ------------ AceQL HTTP is a secure framework of REST like HTTP APIs that allow to access to remote SQL databases over HTTP from any device that supports HTTP. AceQL HTTP is provided with three client SDKs: - The AceQL C# Client SDK allows to wrap the HTTP APIs using Microsoft SQL Server like calls in their code, just like they would for a local database. - The AceQL Client JDBC Driver allows to wrap the HTTP APIs using Java and JDBC calls in their code, just like they would for a local database. - The AceQL Python Client SDK allows SQL calls to be encoded with standard unmodified DB-API 2.0 syntax. Security has been taken into account from the design: it is allowed to specify and code strong security rules in order to protect the databases. AceQL HTTP is licensed through the Business Source License 1.1. (https://github.com/kawansoft/aceql-http/blob/12.2/LICENSE.TXT) AceQL HTTP Version 12.2 - 21-Feb-2023 ------------------------------------- What's New: - BlobUploadConfigurator contains now the getMaxBlobLength() method. This allows fixing a Blob upload size limit in order to avoid a DOS attack aimed to saturate the AceQL server. - The new LimitsInfo API allows the future versions of client SDKs to retrieve limits info defined on the server side. How-to usage will be updated in user documentation of C# SDK, JDBC Driver, and Python SDK. - Tomcat base libraries have been upgraded to 9.0.71 for reliability and performance reasons. AceQL HTTP Version 12.1 - 06-Dec-2022 ------------------------------------- What's New: - Tomcat base libraries have been upgraded to 9.0.70 for reliability and performance reasons. - PostgreSQL base libraries have been upgraded to 42.5.13 for security reasons. Bugs fixed: - An Oracle database stored procedure that returns a SELECT would in some special cases support only one IN or IN / OUT parameter. This has been fixed. - Minor Javadoc errors have been fixed. AceQL HTTP Version 12.0 - 21-Nov-2022 ------------------------------------- - AceQL HTTP license has been changed from GNU Lesser General Public License version 2.1 to the Business Source License version 1.1 (BSL 1.1). The client SDKs (C#, Java, and Python) will remain using Apache licensing. - AceQL HTTP base code is now unique. There is no more code difference between different Editions/Plans, but only licensing rights. This simplifies a lot of code maintenance and allows all users to benefit from all features and updates. - Firewall management includes a new operational mode. This allows automatic recording of white lists. See the user documentation. - The StatementNormalizer class has been rewritten with all string and numeric values replaced by question marks. This allows both powerful white list checks and easy recording of white lists. See user documentation and StatementNormalizer Javadoc at: https://tinyurl.com/statementNormalizer. - All logging is now done using SLF4J in order to allow one to choose its preferred logging implementation. See org.kawanfw.sql.api.server.logging package content. Default implementation uses Logback (https://logback.qos.ch). - Default logging may be fully configured using only properties files. This is much easier and does not require any Java code writing & deployment. Of course, it's still possible for advanced users to write and deploy their own SLF4J Java implementation. - Client IP detection has been enhanced by also testing X-FORWARDED-FOR header value. - The new HealthCheck API allows the future versions of client SDKs to retrieve server memory info. How-to usage will be updated in user documentation of C# SDK, JDBC Driver and Python SDK. - SqlFirewallManager interface: the method allowExecute has been removed, because it was confusing in its naming and the real need for use was not strong enough. - DefaultSqlFirewallManager, the default SqlFirewallManager interface implementation, has been removed. The need for use was not strong enough and would complicate SqlFirewallManager implementations with cumbersome & not real necessary inheritance architecture. (All SqlFirewallManager implementations have been thus retrofitted and do not refer any more DefaultSqlFirewallManager.) - DefaultUpdateListener, the default UpdateListener interface implementation, has been removed. The need for use was not strong enough and would complicate UpdateListener implementations with cumbersome & not real necessary inheritance architecture. - DefaultSqlFirewallTrigger, a default SqlFirewallTrigger implementation that did nothing and would slow down the software, has been removed. - DefaultUserAuthenticator, a default UserAuthenticator implementation that did nothing and would slow down the software, has been removed. - DefaultRequestHeadersAuthenticator, a default RequestHeadersAuthenticator implementation that did nothing and would slow down the software, has been removed. - The Maven maven-source-plugin is now used to build the runnable jar and the sources jar. - Tomcat base libraries have been upgraded to 9.0.69. - Auth0 library has been upgraded to 4.2.1 in order to upgrade automatically Jackson base libraries to 2.13.4 for security reasons. - PostgreSQL library has been upgraded to 42.3.7 for security reasons. AceQL HTTP Version 11.1b - 22-Jun-2022 (Linux/Unix only) -------------------------------------------------------- Bugs fixed: - The new June 22, 2002 Unix/linux installer aceql-http-11.1b.run replaces the previous aceql-http-11.1.run because of a jar generation bug that would sometimes make the software fail when running the Enterprise Edition. AceQL HTTP Version 11.1 - 15-Jun-2022 ------------------------------------- - Default values of ThreadPoolExecutor creation have been changed in the conf/aceql-server.properties file (ThreadPoolExecutor Section). - 1) The Queue used is now an always empty java.util.concurrent.SynchronousQueue in order to completely avoid queuing SQL orders, as we don't know how long they will run. Filling a Queue, especially a large one, could block waiting users when a long SQL order is processed. Now, per default, a new Thread is systematically created if a SQL request needs one for execution. - 2) keepAliveTime is now 60 seconds. - 3) For Community Edition: A message warning displays at startup if the ThreadPoolExecutor properties values in the used aceql-server.proprties file are not the same as the new values. - 4) For Enterprise Edition: A message warning displays at startup if the "workQueueClassName" property value is not "java.util.concurrent.SynchronousQueue" and if the "capacity" property value is > 100. - Core Threads (corePoolSize value) are now all pre-started per default. This ensures that client users feel the lowest latency possible when their client app calls SQL statements. This default behavior may be ignored, see User Documentation. - Enterprise Edition: at server startup, the remaining days and expiration date of the current license is displayed/ - Maven is now used - instead of Ant - to build the deployed runnable jar and sources jar. AceQL HTTP Version 11 - 10-Jun-2022 ----------------------------------- What's New: - Software has been divided into a Community (free & open source) and an Enterprise version. See www.aceql.com/pricing and user documentation for more info. - StatementNormalizer creation. See Javadoc. - TCL calls are not any more firewalled because of unnecessary implementation complexity and because it's globally useless. - The DenyTclManager SqlFirewallManager has thus been suppressed because TCL calls are not any more firewalled. - Add DenyOnBlacklistManager & AllowOnlyOnWhitelistManager. - DenyExecuteUpdateManager has been renamed to less ambiguous name DenyDatabaseWriteManager. - runIfStatementRefused() has been moved from SqlFirewallManager interface to new SqlFirewallTrigger interface. - New SqlFirewallTrigger.runIfStatementRefused() implementations: BanUserSqlFirewallTrigger, BeeperSqlFirewallTrigger, JdbcLoggerSqlFirewallTrigger, JsonLoggerSqlFirewallTrigger. - Add UpdateListener calls to batch methods. - DefaultPropertiesPasswordManager: the properties_password_manager.properties file must now be located in the same directory of the aceql-server.properties file. - Tomcat base libraries have been upgraded to 9.0.64. - PostgreSQL base libraries have been upgraded to 42.3.3 for security reasons. - Gson base libraries have been upgraded to 2.8.9 for security reasons. AceQL HTTP Version 10.2 - 07-Feb-2022 ------------------------------------- What's New: - New LdapUserAuthenticator properties are defined in aceql-server.properties: ldapUserAuthenticator.securityAuthentication & ldapUserAuthenticator.securityProtocol. - Tomcat base libraries have been upgraded to 9.0.58. - Postgresql base libraries have been upgraded to 42.3.2. Bugs fixed: - SqlEvent.toString() and ClientEvent.toString() would not display correctly parameter values. This has been fixed. AceQL HTTP Version 10.1 - 04-Jan-2022 ------------------------------------- What's New: - The new JdbcUserAuthenticator allows the client-side to authenticate using a JDBC query against a SQL table. See JdbcUserAuthenticator Javadoc and User Guide. - The new ServerQueryExecutor allows future versions of C#, Python, and Java JDBC Driver client versions to call a server Java program that returns a ResultSet. See ServerQueryExecutor Javadoc for more info. This will be fully documented later in the future client versions to be released in January 2022. AceQL HTTP Version 10.0 - 21-Dec-2021 ------------------------------------- What's New: - The CsvRulesManager now reload all rules if the CSV is updated. - The new CsvRulesManagerNoReload SqlFirewallManager implementation works the same as CsvRulesManager, but prohibits the reloading of the rules if the CSV file is updated. - SqlActionEvent has been renamed to SqlEvent and moved to org.kawanfw.sql.api.server package. - SqlEvent has a new parameter getter: isMetadataQuery(). - SqlEvent.getParameterStringValues() allows to get the list of parameters object values casted to string. - The SqlFirewallManager APIs have been refactored to limit the number of parameters to some methods. The new SqlEvent class is used for this. - Tomcat base libraries have been upgraded to 9.0.56. Bugs fixed: - org.kawanfw.sql.api.server.StatementAnalyzerUtil was public instead of hidden. This has been fixed. AceQL HTTP Version 9.0 - 02-Dec-2021 ------------------------------------ What's New: - The new UpdateListener interface allows to define listeners and thus actions to trigger when a database is updated. - The new /get_database_info API allows client side programs to easily get all info about the remote database and the remote JDBC Driver. Bugs fixed: - A default Java icon instead of the AceQL icon was displayed in one of the message window. This has been fixed. - StatementAnalyzer was missing the isInsert() method. This has been fixed. AceQL HTTP Version 8.2 - 06-Nov-2021 ------------------------------------ What's New: - The new Logger format provided by DefaultDatabaseConfigurator.getLogger() includes now trailing date/time. - DefaultDatabaseConfigurator: Multi-line log messages are now per default flattened into one line log entry/message. This may be changed by overriding DefaultDatabaseConfigurator flattenLogMessages boolean value. See code. - PropertiesEncryptor class call is now done using a Windows bat or Linux Bash. See Server Installation and Configuration Guide. Bugs fixed: - sqlFirewallManagerClassNames split on comma separated class names could fail. This has been fixed. AceQL HTTP Version 8.1 - 19-Oct-2021 ------------------------------------ What's New: - Tomcat base libraries have been upgraded to 9.0.54. Bugs fixed: - StatementAnalyzer.isWithSemicolons() would always return false. This has been fixed. - Spaces were not supported around commas in sqlFirewallManagerClassNames array in the aceql-server.properties files. This has been fixed. - sqlFirewallManager.runIfStatementRefused() would not set the values of parameter List parameterValues on some SQL calls. This has been fixed. - A SELECT containing a column named FULLTEXT induced request rejection by any SqlFirewallManager implementation. The bug is due to an external Java library code. This has been temporarily fixed by replacing FULLTEXT occurrences by _FULLTEXT_ when checking the SELECT. AceQL HTTP Version 8.0 - 01-Sep-2021 ------------------------------------ What's New: - AceQL Server may be run in stateless mode. See conf/aceql-server.properties comments the AceQL Manager Servlet Section & User Documentation. - Core has be changed to support INSERT and UPDATE calls in batch mode from C# Client SDK, Java Client JDBC Driver, and Python Client SDK. - The garbage collectors thread for the abandoned/unclosed JDBC Connections has been suppressed in order to simplify the architecture. Cleanup is now done using a Tomcat JdbcInterceptor class implementation. This eliminates the need for a dedicated background thread. - Tomcat base libraries have been upgraded to 9.0.52. - Waffle library has been upgraded to 3.0.0. AceQL HTTP Version 7.2 - 15-Jun-2021 ------------------------------------ What's New: - Savepoints are now fully supported. See API documentation. Corresponding JDBC calls will be implemented in the next version of the AceQL Client JDBC Driver. - The new provided DenyTclManager (SqlFirewallManager implementation) allows to deny TCL (Transaction Control Language) calls. AceQL HTTP Version 7.1 - 07-May-2021 ------------------------------------ What's New: - Output speed of SELECT calls has been improved. - Commons IO Apache library has been upgraded to 2.7. Bugs fixed: - Properties were not displayed in the correct order on the console at server startup. This has been fixed. AceQL HTTP Version 7.0 - 20-Apr-2021 ------------------------------------ What's New: - The new PropertiesPassworManager interface allows to define a password for encrypting property values in the aceql-server.properties file. - Tomcat embedded version has been updated from 8.5 to 9.0 (9.0.45). - The Windows user interface design uses now a more modern Look and Feel. - The Windows user interface supports now the dark mode. Bugs fixed: - Ugly embedded Tomcat messages/logging on startup have been disabled. - DefaultPoolsInfo debug mode was true per default. This has been fixed. AceQL HTTP Version 6.4 - 16-Feb-2021 ------------------------------------ What's New: - Java start parameters values have been changed to -Xms256M -Xmx4096M for Linux version. - Tomcat base libraries have been upgraded to 8.5.63. AceQL HTTP Version 6.3 - 05-Dec-2020 ------------------------------------ What's New: - In addition to UserAuthenticator, the new RequestHeadersAuthenticator interface provides an alternate or supplementary authentication mechanism. RequestHeadersAuthenticator implementation allows to check the HTTP request headers sent by the client side, and thus to grant or forbid access to the AceQL Server. - Tomcat base libraries have been upgraded to 8.5.60. AceQL HTTP Version 6.2 - 17-Nov-2020 ------------------------------------ What's New: - The new session.timelifeMinutes property in aceql-server.properties file allows defining the session lifetime of client users without any programming. - In SessionConfigurator interface and dependencies: the getSessionTimelife() method has been renamed to getSessionTimelifeMinutes() for the sake of clarity. Bugs fixed: - JwtSessionConfigurator.verifySessionId(String sessionId) and DefaultSessionConfigurator.verifySessionId(String sessionId) would not verify correctly session expirations. This has been fixed. AceQL HTTP Version 6.1 - 24-Oct-2020 ------------------------------------ What's New: - Default Java memory configurations are now -Xms256m -Xmx4096m on both Windows and Linux in order to support a heavy load. - Most base libraries have been upgraded to the latest version. AceQL HTTP Version 6.0 - 19-Sep-2020 ------------------------------------ What's New: - Java vendor and version are displayed at server startup. - JDBC Statement.execute() calls are now supported. - Statement.setMaxRows(int) is now supported when called by a Java client. - The aceql-server.properties model file contains now documentation on testOnBorrow & validationQuery attributes and how to ensure that the JDBC Connection Pool will still accessible after the restart of the SQL engine in use. - Implement server side JDBC metadata calls. This will allow the Client Java SDK to be plugged as a real JDBC Driver. (The AceQL JDBC Driver is work in progress). - Add /get_catalog and /get_schema API. - Included PostgreSQL Driver has been updated to 42.2.5. - Tomcat base libraries have been upgraded to 8.5.58. Bugs fixed: - An SQLException could be swallowed during a transaction (autocommit off). This could lead to subsequent errors when trying to re-use the Connection in some db engines such as PostgreSQL. (org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block). This has been fixed: Connections in autocommit off are now always rollbacked in case of SQLException. - Columns were in lowercase when sent to the client. This has been fixed. - Empty string SQL parameters ("") were refused by the AceQL Server. This has been fixed. AceQL HTTP Version 5.1 - 03-Aug-2020 ------------------------------------ What's New: - The new API WebServerAPI.isServerRunning() has been added. - An error message is displayed if an attempt of calling more than one AceQL instance in the JVM is detected. - NullPointerException throws are replaced by Objects.requireNonNull(). This makes easier for API users to debug NullPointerExceptions. - Tomcat base libraries have been updated to 8.5.57 because of security requirements. Bugs fixed: - Remote client Windows authentication calls could stop the server. This has been fixed. - The database schema download could fail for SQL Server. This has been fixed. AceQL HTTP Version 5.0.4 - 04-Jul-2020 -------------------------------------- What's New: - Some base libraries have been updated. - The conf/aceql-server.properties includes now an example of the usage of the Tomcat JDBC Pool removeAbandoned & removeAbandonedTimeout properties. Bugs fixed: - nvarchar, nchar, ntext would not support NULL values. This has been fixed. AceQL HTTP Version 5.0.3 - 15-Jun-2020 -------------------------------------- What's New: - Windows interface signals when the user tries to reopen the app instead of redisplaying it from the taskbar. - Tomcat base libraries have been updated to 8.5.56 because of security requirements. Bugs fixed: - Float values could be rounded. This could be a problem for Python client SDK. This has been fixed. WINDOWS VERSION ONLY - AceQL HTTP Version 5.0.2b - 25-Apr-2020 --------------------------------------------------------------- What's New: - Support for Java 13 and 14. It is highly recommended to upgrade to this AceQL version on all Windows installations using Java > 8. AceQL HTTP Version 5.0.2 - 22-Apr-2020 -------------------------------------- What's New: - Javadoc has been enhanced for the UserAuthenticator interface and for the provided implementation classes. - Special chars (in escaped format) are now supported in LDAP Distinguished Names. Bugs fixed: - The schema produced by the db_schema_download API would not include correctly the database tables with MS SQL Server. This has been fixed. AceQL HTTP Version 5.0.1 - 10-Apr-2020 -------------------------------------- Bugs fixed: - SELECT calls with more than 20Kb output could randomly fail because of a bug in Glassfish javax.json JSON parser that inserts a \r\n at each 20Kb output. This has been fixed by calling JsonGenerator.flush() on each SQL row dump. AceQL HTTP Version 5.0 - 08-Apr-2020 ------------------------------------ What's New: - The software has been rewritten to allow quick start & standard usage without any coding and without code injection: standard but complete configuration may be done entirely by defining values in the aceql-server.properties file. Sophisticated firewalling can be done through a CSV File without any coding. Advanced usage is still possible through code injection using Java classes. - The new authentication architecture allows to plug-and-play existing built-in authentication classes without any coding or code injection, just by defining values in the aceql-server.properties file. This version provides default authentication against a LDAP server, against a SSH Server, against a Windows Server and against a Web Service. Your own legacy authentication usage is nonetheless supported through code injection with Java classes. - The aceql-server.properties file has been reorganized and simplified. - JSON parser javax.json has been updated to 1.1.4. Tomcat base libraries have been updated to 8.3.53 because of Security requirements. AceQL HTTP Version 4.1 - 13-Feb-2020 ------------------------------------ What's New: - The new CsvRulesManager SqlFirewallManager implementation allows to fine control access to SQL tables without any Java programming. Rules are declared in a CSV file that is loaded at server startup. Rules are checked for each incoming SQL call. See the User Guides & Javadoc for more info. AceQL HTTP Version 4.0 - 15-Jan-2020 ------------------------------------ What's New: - SQL firewalling is now done through the SqlFirewallManager interface. SqlFirewallManager concrete classes may be chained to easily add new rulesets. This also allows to properly isolate and reuse firewalling code. Default built-in implementations are provided for an easy startup without any coding. - The new metadata API allows downloading a remote database schema in HTML or text format, to get a remote database main properties, to get the list of tables, and to get the details of each table. It also allows wrapping remote tables, columns, indexes, etc. into easy to use provided Java, C# and Python classes in the client SDKs: Table, Index, Column, etc. HTML and text schemas are rendered with SchemaCrawler (www.schemacrawler.com). The metadata API allows exposing more easily the databases along with the schemas, without any need to communicate, maintain or synchronize separated documentation for the API users. Users are thus autonomous to explore the metadata and schema of the exposed databases. - StatementAnalyzer has been retrofitted with an external heavily used and highly supported SQL parser (JSqlParser library - https://github.com/JSQLParser/JSqlParser). - Tomcat base libraries have been updated to 8.5.50 (Security requirements). - AceQL HTTP requires now Java 8 or higher. AceQL HTTP Version 3.2.2 - 16-Sep-2019 -------------------------------------- Bugs fixed: - DECIMAL SQL type passed from client side was ignored. Thus has been fixed. - DATE, TIME, TIMESTAMP could be malformed when called from a stored procedure this has been fixed. What's new: - Update Tomcat base libraries to 8.5.45 (Security requirements). AceQL HTTP Version 3.2.1 - 10-aug-2019 --------------------------------------- Bugs fixed: - aceql-server -stop was returning -1 exit code instead of 0. It could cause a problem when using CI tools like Jenkins. This has been fixed. AceQL HTTP Version 3.2 - 23-apr-2019 ------------------------------------ What's new: - Update Tomcat base libraries to 8.5.40 (Security requirements). AceQL HTTP Version 3.1 - 24-dec-2018 ------------------------------------ What's new: - destroy() call has been added to main servlet ServerSqlManager for clean shutdown of ThreadPoolExecutor without warnings. Bugs fixed: - HttpServletRequestHolder could in rare cases collide request parameters from concurrent clients. This has been fixed. AceQL HTTP Version 3.0 - 17-dec-2018 ------------------------------------ - AceQL open source / Community Edition now supports all main database vendors. - Main servlet is now async for better reliability and performances. - DatabaseConfigurator.allowStatementAfterAnalysis method has been renamed to allowSqlRunAfterAnalysis for the sake of clarity. - Uses newest Tomcat 8.5.35 embedded libraries for security reasons. - Update other misc Maven dependencies. AceQL HTTP Version 2.1 - 18-jun-2018 ------------------------------------ What's new: - This version now supports stored procedure calls from client side. See you preferred AceQL client SDK for usage. - Server could crash in case or RuntimeException. These runtime exceptions are now caught. - Windows version is now fully 64 bit. AceQL HTTP Version 2.0 - 28-feb-2018 ------------------------------------ What's new: - Server allows to create new Connection without re-authentication. - It is now possible to create and use from client side more than one Connection on the same database. - Stateful mode is now the main and only mode. This simplifies the software architecture, the user documentation and ease of used for developers. - DatabaseConfigurator.getConnectionMaxAge() has been removed because of duplicate usage. (Same kind of value can be set when defining Connection pool whatever pool system is used). - DefaultSessionConfigurator: getSessionTimelife() is now 0 (infinite session lifetime) instead of 12 hours. - Connections Store cleaning has been completely rewritten. A cleaning thread is regularly launched instead of a permanent thread. - Use last Tomcat 8.5 librairies (v. 8.5.28). WINDOWS VERSION ONLY - AceQL HTTP Version 1.0 - 27-dec-2017 ----------------------------------------------------------- What's new: - Java 9 is now fully supported on Windows. AceQL HTTP Version 1.0 - 20-dec-2017 ------------------------------------ What's new: - Java 9 is now fully supported on Linux. - DefaultDatabaseConfigurator.getConnectionMaxAge() returns now 0 for consistency with other APIs. - Dependencies have been updated. - As Beta period is expired, AceQL HTTP Professional requires now a 30-day license key. Bugs fixed: - Setting DatabaseConfigurator.getConnectionMaxAge() to 0 was not taken into account by internal code. This has been fixed. PRO EDITION ONLY - AceQL HTTP Version 1.0-beta-5.2 - 31-oct-2017 ---------------------------------------------------------------- What's new: - Beta period has been extended to November 10, 2017. WINDOWS VERSION ONLY - AceQL HTTP Version 1.0-beta-5.1 - 20-sep-2017 -------------------------------------------------------------------- What's new: - An item menu has been added in Help Menu to display Release Notes. - Standard Mode: useless & annoying Tomcat red warnings messages are not anymore displayed at server startup. - Jar icons are displayed. AceQL HTTP Version 1.0-beta-5 - 13-sep-2017 ------------------------------------------- What's New: - The signature of DatabaseConfigurator.login method has been changed and has 2 more parameters: database and ipAddress. This allows implementation code to know to which database the client wants to connect and to get IP address of client if necessary for security reasons. - Thus, the previous 1.0-beta-4 DatabaseConfigurator implementations are not compatible with this 1.0-beta-5 version: the login method signature must be changed. - The org.kawanfw.sql.api.server.util.HttpServletRequestStore and org.kawanfw.sql.api.server.util.ServerInfo have been suppressed. The methods were useless. - The Tomcat dependencies have been updated to in order to use last 8.5.20 version. - The property sslConnector.keyAlias must now be defined for SSL activation. This is imposed by Tomcat version 8.5.20. - Windows version: the JDBC Drivers installation is now done with a "Browse" or paste/copy of files. Bugs fixed: - Windows version: the console could display warnings and hang. This has been fixed. - Miscellaneous Javadoc errors. AceQL HTTP Version 1.0-beta-4 - 04-sep-2017 ------------------------------------------- What's New: - In aceql-server.properties files: database is now the prefix for all properties (instead of being the trailer in previous versions.) - Windows version has now a clean installer and all configuration is done through a provided Window interface. - Windows: Server run may be configured as a Windows service. Configuration & start/stop is done through the provided Windows interface. - Linux: AceQL HTTP Web Server run may be configured as an /etc/init.d service. A documented and ready to use script is provided. - It is now possible to add servlets that can interact with JDBC pools when server is running. See conf/aceql-server.properties file. - A default servlet is provided for JDBC pools query and update while server is running. See conf/aceql-server.properties file. Bugs fixed: - The bound Web port was not correctly released at AceQL server stop for reuse in the same JVM. This has been fixed. - There was a missing carriage return line feed after execute_update and execute_query APIs. This has been fixed. AceQL HTTP Version 1.0-beta-3 - 17-jul-2017 ------------------------------------------- What's New: - AceQL uses now embedded Tomcat version 8.5. - ConnectionStore has been cleaned & simplified (no more Map to store if a Connection is Stateless/Stateful). AceQL HTTP Version 1.0-beta-2 - 07-jul-2017 ------------------------------------------- What's New: - Server Result Sets were dumped into an intermediary file. Result Sets are now dumped directly on servlet output stream. Bugs fixed: - A SQLException logging message could throw an Exception. This has been fixed. AceQL HTTP Version 1.0-beta-1 - 27-jun-2017 ------------------------------------------- What's New: - First release.