- added dependencies string to ConnectionInfo.asJson() output to enable complete serialization support for ConnectionInfo objects, including driver dependency information.
- Allow asJson to include the actual password value when maskPassword is false (was previously always masking the password)
- Fix
ConnectionInfoequality/hash/compare behaviour for unnamed connections and correct password masking for multiline passwords - Improve runtime safety: null/case-insensitive database URL handling, invalid date-range validation, and corrected
LONGVARCHARJDBC mapping - Release/build quality updates:
release.shnow fails on dirty git state, main classes are@CompileStatic, and CodeNarc baseline was tightened (priority 3 violations now 0) - Add regression tests for the above fixes
- Upgrade dependencies:
- Groovy [5.0.3 -> 5.0.4]
- Upgrade dependencies
- Groovy [5.0.1 -> 5.0.3]
- JUnit Jupiter [5.14.0 -> 6.0.2]
- JUnit Platform Launcher [1.14.0 -> 6.0.2]
- Bug fixes
ConnectionInfo.asJson()- Fixed invalid JSON output (was using=instead of:)ConnectionInfo.asJson()- Added proper escaping for special characters (\,",\n,\r,\t)ConnectionInfo.hashCode()- Fixed NPE whennameis null (now returns 0)ConnectionInfo.compareTo()- Now properly throwsNullPointerExceptionwhen comparing with null
- Code quality improvements
- Removed debug
printlnstatement fromSqlTypeMapper - Refactored
SqlUtil.driver()classloader fallback logic for clarity - Removed commented-out debug code from
SqlUtil
- Removed debug
- Build improvements
- Added JaCoCo for code coverage reporting (v0.8.12)
- Added CodeNarc for Groovy static analysis (v3.5.0)
- Documentation
- Completely rewrote README.md with comprehensive examples for multiple databases
- Test coverage
- Added
ConnectionInfoTest(24 test methods) - Added
DataGeneratorTest(7 test methods) - Expanded
SqlTypeMapperTestwith SQL Server and PostgreSQL mapping tests - Expanded
SqlUtilTestwith driver detection and ConnectionInfo usage tests
- Added
- Fix getDriverClassName for h2 in SqlUtil
- throw a RuntimeException when no driver class can be determined for a given url in SqlUtil.
- Fix dependency for h2 for DatabaseProvider.H2
- add methods that does not require driver class name but guesses them based on the url.
- Set the driver class (if unset) when adding a url to connection info
- Add driver dependency info to DatabaseProvider enum
- upgrade gradle to 9.0.1, upgrade test dependencies and plugins
- add getDependencyVersion method to ConnectionInfo
- ensure size in varchar(size) is minimum 1 (was 0)
- Improve support for Derby
- Rename DefaultTypeMapperMapper to DefaultTypeMapper
- Change scope of DefaultTypeMapper from protected to public in order to facilitate testing
- Improve support for Derby, adding a mapper method for converting values when the db does not support it e.g. LocalDate inserts in Derby which must be converted to java.sql.Date for setObject to work.
- Require JDK 21
- Change github repo references from perNyfelt to Alipsa
- Add support for ConnectionInfo as param to Sql factory methods
- upgrade test dependencies and gradle version
- fix bug in determining the DataBaseProvider from a URL
- Add support for handling java.sql.Types and a jdbcType in SqlTypeMapper that returns the Types int corresponding to the Java class
- move Tablesaw stuff to matrix-tablesaw
- add support for getting a db type for a java class
- remove dependency on log4j to slim down the library further and be logging agnostic
- upgrade to jdk17
- add conversions to/from Tablesaw and Matrix
- add wrappers to Gtable for all Table methods returning a Table
- move most of the Normalization code to the Matrix-stats package and adjust accordingly
- upgrade dependencies for groovy, tablesaw, SODS, dom4j
- upgrade transient dependencies with cve issues
- upgrade to groovy 4.0.6
- change groovy dependencies to compileOnly so that consumers of this library can use whatever compatible version of Groovy that they want without conflicts.
- Add TableUtil with support for frequency tables
- Upgrade to Groovy 4.0.4
- Build script fixes
- initial release