All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, markdownlint, and this project adheres to Semantic Versioning.
- Added
SzUtilities.bootstrapSettings()method to build bootstrap JSON settings for Senzing environment initialization without requiring a database URI, enabling access toSzProductfunctionality. - Added null-checks to existing
SzUtilities.basicSettingsFromDatabaseUri()overloads to fail fast on null URI parameters. - Fixed trailing comma in JSON example in
SzUtilitiesjavadoc. - Added pre-release suffix support to
SemanticVersionfor parsing and comparing versions with-alpha,-beta, and-rcsuffixes (e.g.:"2.0.0-alpha.2.0","2.0.0-beta.3.2","2.0.0-rc.2.1"). Pre-release suffixes are normalized to lowercase.
- Changed
AsyncWorkerPoolto clear busy state in finally block to safeguard against deadlocks onclose(). - Added thread-specific override of debug logging in
LoggingUtilities - Fixed potential deadlock in
ConnectionPoolandPooledConnectionHandlerby making the error handling of failed connections more robust. - Fixed error handling in
PostgreSqlConnectorto prevent leaking of database connections.
- Made the
com.senzing.util.SzInstallLocationsclass public - Minor dependency version bumps
- Added
com.senzing.util.SzUtilities - Added support for connection properties to
com.senzing.sql.Connector - Added support for connection properties to
com.senzing.sql.SQLiteConnector
- Upgraded dependencies
- Added methods to TextUtilities for ranged size of random text generation
- Added date-handling methods to JsonUtilities using standard JSON date strings
- Modified SQLiteConnector to use NOMUTEX open mode to achieve multi-threaded usage, allowing multiple connections to access the same file so long as no connection is used concurrently in multiple threads.
- Upgraded dependencies
- Added methods to LoggingUtilities for StackTraceElement formatting
- Cleaned up compile warnings
- Linting and other minor fixes
- First official V4 beta release
- Upgraded to Java 17 code compatibility
- Upgraded dependencies
- Removed dependencies on Senzing v3.x since this will be used with Senzing v4 tools
- Upgraded
sqlite-jdbcsincegetGeneratedKeys()support was restored - Switched from
nexus-staging-maven-plugintocentral-publishing-maven-plugin
- Updated dependencies:
- Upgraded
junit-jupiterfrom version5.13.4to5.14.0 - Added direct dependency to
commons-lang3version3.19.0to override transitive dependency to version3.17.0fromcommons-configuration2due toCVE-2025-48924 - Upgraded
maven-compiler-pluginfrom version3.14.0to3.14.1 - Upgraded
maven-surefire-pluginfrom version3.5.3to3.5.4 - Upgraded
maven-javadoc-pluginfrom version3.11.2to3.12.0 - Upgraded
central-publishing-maven-pluginfrom version0.8.0to0.9.0
- Upgraded
- Eliminated compile warnings
- Updated dependencies:
- Upgraded
sqlite-jdbcfrom version3.42.0.1to3.50.3.0sincegetGeneratedKeys()support was restored
- Upgraded
- Switched from
nexus-staging-maven-plugintocentral-publishing-maven-plugin - Updated dependencies:
- Upgraded
commons-csvfrom version1.14.0to1.14.1 - Updated
jackson-xxxxdependencies from version2.19.0to2.19.2 - Updated
junit-jupiterfrom version5.13.1to5.13.4 - Upgraded
maven-gpg-pluginfrom version3.2.7to3.2.8
- Upgraded
- Updated dependencies to newer versions:
- Upgraded
commons-configuration2from version2.11.0to2.12.0 - Upgraded
junit-jupiterfrom version5.12.2to5.13.1
- Upgraded
- Updated dependencies to newer versions:
- Upgraded
commons-csvfrom version1.12.0to1.14.0 - Upgraded
icu4jfrom version76.1to77.1 - Upgraded
junit-jupiterfrom version5.11.3to5.12.2
- Upgraded
- Updated dependencies to newer versions:
- Upgraded
icu4jfrom version75.1to76.1 - Upgraded
junit-jupiterfrom version5.11.2to5.11.3 - Upgraded
maven-surefire-pluginfrom version3.5.1to3.5.2 - Upgraded
maven-javadoc-pluginfrom version3.10.1to3.11.1
- Upgraded
- Updated dependencies to newer versions:
- Upgraded
commons-csvfrom version1.11.0to1.12.0 - Upgraded
junit-jupiterfrom version5.10.3to5.11.2 - Upgraded
maven-surefire-pluginfrom version3.3.0to3.5.1 - Upgraded
maven-javadoc-pluginfrom version3.7.0to3.10.1 - Upgraded
maven-gpg-pluginfrom version3.2.4to3.2.7
- Upgraded
- Updated dependencies to newer versions:
- Upgraded
commons-csvfrom version1.10.0to1.11.0 - Upgraded
commons-configuration2from version2.9.0to2.11.0 - Upgraded
icu4jfrom version74.2to75.1 - Upgraded
maven-compiler-pluginfrom version3.12.1to3.13.0 - Upgraded
maven-surefire-pluginfrom version3.2.5to3.3.0 - Upgraded
maven-source-pluginfrom version3.3.0to3.3.1 - Upgraded
maven-javadoc-pluginfrom version3.6.3to3.7.0 - Upgraded
maven-gpg-pluginfrom version3.1.0to3.2.4 - Upgraded
nexus-staging-maven-pluginfrom version1.6.13to1.7.0
- Upgraded
- Added
sqlLeastandsqlGreatestfunctions tocom.senzing.sql.DatabaseType - Updated dependencies to newer versions:
- Upgraded
junit-jupiterfrom version5.10.1to5.10.2 - Upgraded
maven-surefire-pluginfrom version3.2.3to version3.2.5
- Upgraded
- Updated dependencies to newer versions:
- Updated
icu4jto version74.2 - Updated
maven-compiler-pluginto version3.12.1 - Updated
maven-surefire-pluginto version3.2.3 - Updated
maven-javadoc-pluginto version3.6.3
- Updated
- Added
com.senzing.sql.SQLUtilities.UTC_CALENDARto provide a reusableCalendarinstance for working with UTC timestamps in SQL databases for JDBCgetTimestamp()function. - Added additional constructors for
MissingDependenciesException. - Added new functions to
JsonUtilities:JsonUtilities.add(JsonObjectBuilder,String,JsonObjectBuilder)JsonUtilities.add(JsonObjectBuilder,String,JsonArrayBuilder)JsonUtilities.add(JsonObjectBuilder,String,JsonValue)JsonUtilities.add(JsonArrayBuilder,JsonObjectBuilder)JsonUtilities.add(JsonArrayBuilder,JsonArrayBuilder)JsonUtilities.add(JsonArrayBuilder,JsonValue)
- Changed
sqlite-jdbcdependency to version3.42.0.1to avoid the problematic version3.43.x.xwhich carelessly breaks backwards compatibility by removing functionality that has been supported for sixteen (16) years. - Updated runtime and build dependencies.
- Added
getDiagnosticLeaseInfo()method tocom.senzing.sql.ConnectionPoolto allow diagnostic analysis of currently outstandingConnectionleases for determining problems when theConnectionPoolis exhausted.
- Fixed bug in
DatabaseTypeforSQLITEhanding ofsetTimestamp(). - Added functionality to
LoggingUtilitiesto formatStackTraceElementas a stack trace.
- Removed dependency on
ini4jand replaced with Apachecommons-configuration2
- Added
com.senzing.sql.ConnectionPoolclass - Added
com.senzing.sql.SQLUtilitiesclass - Added
com.senzing.sql.DatabaseTypeclass - Added
com.senzing.sql.TransactionIsolationclass - Added
com.senzing.sql.ConnectionProviderinterface - Added
com.senzing.sql.PoolConnectionProviderclass - Added
com.senzing.sql.PooledConnectionHandlerclass - Added
com.senzing.sql.Connectorinterface - Added
com.senzing.sql.SQLiteConnectorclass - Added
com.senzing.sql.PostgreSqlConnectorclass - Added
com.senzing.naming.Registryclass - Modified
com.senzing.util.ZipUtilitieswith new compression methods - Updated dependencies to newer versions:
- Updated ICU4j to version
71.1 - Updated Apache Commons-CSV to version
1.9.0 - Updated Maven Compiler Plugin to version
3.10.1 - Updated Maven Javadoc Plugin to version
3.4.0 - Updated Nexus Staging Maven Plugin to version
1.6.13
- Updated ICU4j to version
- Updated dependencies to newer versions.
- Updated RecordReader to handle surrounding spaces around quoted strings in CSV records
- Updated RecordReaderTest to test for surrounding spaces, leading spaces and trailing spaces for quoted strings
- Added JsonUtilities.parseValue() method
- Updated Apache Commons CSV to version 1.9.0
- Changed usage of CSVFormat to CSVFormat.Builder (in according with v1.9.0)
- Fixed a bug in
CommandLineUtilities.javathat prevented primary options (typically options with no dependencies) from using fallback environment variables.
- Modified
RecordReaderto eliminate functionality pertaining to entity types. - Modified
pom.xmldependency forg2-sdk-javafor version3.0.0or later.
- Added
AsyncWorkerPool.isBusy()function and associated unit tests. - Added
Timers.getElapsedTime()function and associated unit tests. - Minor change to
JsonUtilities.addProperty()andJsonUtilities.addElement()to allow conversion ofSetandArrayvalues to be treated the same asList. It now handles allCollectionvalues the same asListand allArrayvalues as lists as well. - Modified
JsonUtilitiesTestto validate the changes made toJsonUtilities.addProperty()andJsonUtilities.addElement().
- Added
Timers.getElapsedTime(String)function to obtain the time for a specific named timer. - Added
AsyncWorkerPool.isBusy()function to check if a task is currently executing.
- Updates to
pom.xmlto prevent pulling beta versions ofsenzing-sdk-javaversion3.0.0via the Maven dependency range.
- Initial production release with complete unit tests
- Added error checking to
com.senzing.util.Timers - Added
com.senzing.reflect.PropertyReflectorclass - Added primitive/promoted type functions to
com.senzing.reflect.ReflectionUtilities - Renamed JsonUtils to JsonUtilities to be consistent with other utility classes
- Changed version to 2.0.0 for initial production release to indicate
compatibility with Senzing 2.x (i.e.:
com.senzing.io.RecordReaderwill parse records as Senzing 2.x expects them)
- Added
com.senzing.reflect.PropertyReflectorutility class.
- Modified
com.senzing.cmdline.CommandLineOptionto addisSensitive()function with a default implementation based on the naming of the enum
constant being eitherPASSWORDor ending in_PASSWORD. - Changed the semantics of
parseCommandLine()function incom.senzing.cmdline.CommandLineUtilitiesso that it returns theMapdescribing the command-line options and takes an optionalListto populate withDeprecatedOptionWarninginstances if the caller is interested. - Fixed parameters and
throwsclause onCommandLineParser.parseCommandLine()to better matchCommandLineUtilities.parseCommandLine() - Fixed
throwsclause forParameterProcessor.process()so that it now throwsBadOptionParameterException.
- Initial refactoring from
senzing-garage/senzing-api-serverproject - Added many unit tests
- Unit tests still pending before version
1.0.0release are as follows:com.senzing.util.JsonUtilscom.senzing.util.LoggingUtilitiescom.senzing.util.OperatingSystemFamilycom.senzing.util.SemanticVersioncom.senzing.util.ThreadJoinerPoolcom.senzing.util.Timerscom.senzing.util.WorkerThreadPoolcom.senzing.util.ZipUtilities