Change Log

From JDBWC Database Driver
Jump to: navigation

JDBWC Changelog

v1.0.0-4 beta

Since v1.0.0.3beta

  • Communication layer changed from being powered by Apache-HttpClient 3.1 (legacy) to Apache-HttpClient 4.0.1.
  • Host connection can use any valid port in the range [1-0xfffe]. Non standard port use may incur up to 7ms delay per query (100 queries = +0.7 of a second).
  • Added support for 1 proxy server.
  • Added optional connection parameters:
    • timeout
    • nonVerifiedSSL
    • proxyUrl
  • Added 2 more debug levels.
  • Trimmed down the exception classes to only those currently required by the driver.
  • Added support for un-validated server-side SSL.
  • Added transparent gzip support for incoming data (from server-side going to JDBC side).
  • Added JDBC Fatal Server-Side Error handling.
  • Lots of work on MySql DatabaseMetaData and ResultSetMetaData.
  • New ResultSetMetaData backend v3. Uses a connection resource-economic approach, is faster and suitably accurate. Works with any SQL that produces a MySQL resultset including SHOW and EXPLAIN.
  • Rewrote and fine tuned the MySQL Types class (handles most of the type juggling between MySQL and Java.sql).
  • Added a static metadata feed class for the java.sql metadata classes.
  • Better handling of null and empty values by the drivers underlying data type. This versions uses a new implementation better suited to SQL data.
  • Completed numerous (previously un-implemented methods) in the core implementation classes.
  • Simplified connection parameters (reduced amount of params by including more information in the remote url's.
  • The Driver is now compatible and very functional in the following SQL clients.
    • SQL Workbench - build 108
    • DB Visualizer - Free 7.0.6
    • SQuirreL SQL Client 3.1
  • Changed main server file to look for the config/local folder rather than a host named localhost (this is usually for testing setups).
  • Updated valid parameter key strings for com.jdbwc.Driver
  • Migrated connection param verification and setup to the Driver class (from the connection class).
  • Updated javadocs.
  • Improved JDBWC test class.
    • Implemented the new optional parameters in connect() method.
    • Implemented a test code block for demonstrating the use of Driver.getPropertyInfo() (un comment to use it).
    • Improved the main() method with time taken display and the ability to run the test in loops for reliability and stress testing.
    • Test main() can accept one external parameter (int) to trigger multiple passes.
  • Added NotImplemented exceptions to all methods that are not yet full implemented. Added an additional message for clarity and to make finding the cause of these exceptions easier.
  • Minor improvements to the Ant build file.
  • The following improvements were back ported from v1.0.0-5:
    • Fixed java.sql.Driver.getPropertyInfo() so it works properly with SQL Client software and exposes all parameters accepted by the driver.
    • Dropped the version number from the compiled data-handler.jar's name to eliminate the need to update classpaths if the package changes.
    • Added better ResultSetMetadata support for the mysql extension. The mysqli extension has always had good support.
    • Added a variable to expose improved sql extensions to the driver so the appropriate processing can take place. MySQLi is currently the only improved extension Im aware of.


v1.0.0-3 beta

Since v1.0.0.2_2beta

  • Replaced the server-side with a new OOP based PHP5 system.
  • Removed reliance on Apache authentication and replaced it with a driver based authentication system. Makes installation and management easier. Authentication encryption is based on a randomised SHA256 hash (+ 16 MD5 chars). 1 for the username, 1 for the password and one for the db-credentials.
  • Improved session handling. Server-side session can be stored as files or sqlite.
  • Added server-side logging.
  • Improved server-side error handling.
  • Added optional connection parameters:
    • debugLogger
    • debugLevel
    • useDummyAgent
  • Implemented debugging in JDBC side.
  • Added 4 debug levels.
  • Replaced the old cumbersome exception handler with a lightweight system tailored to suit this driver.
  • Updated drivers javadocs.
  • Fixed the Postgres ParameterMetaData functionality for PreparedStatement.
  • Fixed a bug in Driver.getPropertyInfo()
  • Minor fixes to DatabaseMetadata (query) classes for MySql and PostgreSql 8.x.x.
  • Improved JDBWC test class.
    • Replaced hardcoded database names with a class variable.
    • Increased use of ResultsetMetaData.
    • Implemented ParameterMetaData testing.
    • Implemented the new optional parameters in connect() method.
  • Added deprecated annotations to deprecated methods in the implementation (for methods deprecated from the JDBC specs).


v1.0.0-2_2 beta

  • Major Changes:
    • none this time round. See also: 3-Improvements
  • Bug Fixes:
    • Fixed time based ResultSet methods:
      • getDate(...)
      • getTime(...)
      • getTimestamp(...)
      • sql.NULL values now return java.null as do empty time based values.
    • Updated ResultSet getBoolean(...) methods to accept:
      • TRUE or FALSE,
      • YES or NO,
      • ON or OFF
      • 1 or 0
    • This allows for variances in the way booleans are commonly stored across database platforms. This falls outside of the rules for MySql and Postgres but in the big picture should make shifting boolean data between unknown databases less likely to break.
    • Fixed minor type safety warnings in (This class performs some of the drivers exception handling tasks in a simmillar fashion to MySql Connector-J by MySql/Sun).
    • Fixed Connection.isClosed() not working.
    • Creating a new Connection by passing the Driver a Properties file now works as expected.
      • Connection Propetrty keys:
        • url (website url EG: [In this case, the "admin" folder at should contain the 'web' folder "jdbwc"])
        • port (server port number. https is usually 443 and plain-text is usually 80)
        • user (apache username for 'web' folder "jdbwc")
        • password (apache password for 'web' folder "jdbwc")
        • databaseName (Database name)
        • databaseUser (Database username)
        • databasePassword (Database password)
  • Improvements:
    • Binaries have been compiled with JDK 1.6.0_10-b33
    • Made the Driver parameter keys more consistent with conventional jdbc naming conventions.
    • Minor Code Clean up in the Connection implementation.


v1.0.0-2_1 beta

  • Major Changes:
    • a) The drivers core data-type (abstract DataHandler) has been migrated to an external .jar file allowing developers to directly access and use it in thier projects. The DataHandler implementations are self contained. Two DataHandler implementations have been provided: * ListArray (Uses ArrayList's based on java.util.List) * HashArray (Uses HashMap's based on java.util.Map)
  • Bug Fixes:
    • Fixed ResultSets dropping trailing void values from rows in results causing thoses rows to be skipped during processing due to the field count mismatch. This bug was also causing some unusual behavior with the metaData methods, which often rely on ResultSet's to operate correctly.
    • Void and NULL values are both handled better. Special characters in ResultSets are also handled better during transit. This is particularly important for data like html formatting characters and punctuation symbols in text. Further improvements will be made to this aspect before a full release. c) Turned debugging output off by defaut and added an [optional] parameter to the JDBC URL to activate debugging mode if required.
  • Improvements:
    • Performance tweaks in the core data-type, Statement methods and some of the driver utility methods. Improved synchronized block locking in the abstract DataHandler implementations and some of the core driver areas (mainly statement and resultMetaData). Fixes and performance tweaks were also made to the serverside scripts in some areas mentioned above and the batch query handling areas.


v1.0.0-2 beta

Initial public release