Releases: MSaifAsif/cqengine-next
Releases · MSaifAsif/cqengine-next
1.0.0
Documentation & Release Management
- nexus-staging-maven-plugin 1.7.0 - Essential plugin for automated Maven Central deployment via OSSRH
Build & Testing
- maven-assembly-plugin 3.6.0 - Creates fat jar with all dependencies (16 MB) in ~5 seconds, full Java 21 compatibility
- Docker-based integration tests - Testcontainers support for OS-independent testing (30 total: 29 passing, 1 skipped)
DockerSQLiteIntegrationTest- 7 tests for SQLite persistence, concurrency, large datasetsDockerDiskPersistenceIntegrationTest- 8 tests for disk persistence, compaction, WAL modeDockerOffHeapPersistenceIntegrationTest- 8 tests for off-heap memory, container limits, concurrent accessDockerCompositePersistenceIntegrationTest- 7 tests for multi-tier persistence (6 passing, 1 skipped)- Tests run in isolated Alpine Linux containers with mounted volumes and memory limits
- Real filesystem I/O, native memory, and multi-tier architecture testing
- Known Limitation:
testCompositePersistence_AllThreeLayersskipped due to StackOverflow when combining DiskPersistence + OffHeapIndex on same primary key (SQLite recursion issue)
License Management
- License headers - Applied "Copyright 2025 Saif Asif" to 13 files that had no existing license header
src/main/java/com/googlecode/cqengine/codegen/MemberFilter.javasrc/main/java/com/googlecode/cqengine/persistence/support/serialization/PojoSerializer.javasrc/main/java/com/googlecode/cqengine/persistence/support/serialization/KryoSerializer.javasrc/main/java/com/googlecode/cqengine/persistence/support/serialization/PersistenceConfig.javasrc/test/java/com/googlecode/cqengine/query/comparative/LongestPrefixTest.javasrc/main/java/com/googlecode/cqengine/query/comparative/Max.javasrc/main/java/com/googlecode/cqengine/query/comparative/Min.javasrc/main/java/com/googlecode/cqengine/query/comparative/SimpleComparativeQuery.javasrc/main/java/com/googlecode/cqengine/query/comparative/LongestPrefix.javasrc/main/java/com/googlecode/cqengine/query/simple/StringIsPrefixOf.javasrc/main/java/com/googlecode/cqengine/query/ComparativeQuery.javasrc/main/java/com/googlecode/cqengine/metadata/KeyFrequency.javasrc/main/java/com/googlecode/cqengine/metadata/AttributeMetadata.java
Changed
Java Version & Compilation
- Java version requirement - Updated from Java 8 to Java 21
- Maven compiler plugin - Updated to 3.11.0 with Java 21 target
- Package namespace - Maven GroupId changed from
com.googlecode.cqenginetoio.github.msaifasif(Java packages unchanged for compatibility)
Release Plugins (2025-12-19)
- maven-source-plugin - Updated from 3.3.0 to 3.3.1 (latest stable)
- maven-javadoc-plugin - Updated from 3.6.0 to 3.10.1 (latest stable, Java 21 compatible)
- maven-gpg-plugin - Retained at 3.2.8 (latest stable)
- maven-release-plugin - Updated from 2.5.3 to 3.1.1 (major version update for modern Maven)
-
license-maven-plugin - Replaced deprecated
maven-license-plugin 1.10.b1with modernlicense-maven-plugin 4.6- Configuration updated to use
skipExistingHeaders=trueto preserve original author credits - New files get "Copyright 2025 Saif Asif", existing files retain "Copyright 2012-2015 Niall Gallagher"
- Email updated to maintainer's contact
- Configuration updated to use
-
License header template - Updated
src/etc/header.txtto use variables (${owner}, ${year}) for dynamic substitution
Dependency Updates (2025-12-17)
- ByteBuddy - Updated from 1.9.10 to 1.14.11 (Java 21 bytecode support, class file version 65)
- EqualsVerifier - Updated from 3.15.4 to 3.16.1 (Java 21 compatibility, fixes class file major version 65 error)
- SQLite JDBC - Updated from 3.42.0.0 to 3.45.0.0 (CVE-2023-32697 security fix, ARM64 Mac support)
- Kryo Serialization - Updated from 4.0.0 to 5.0.0-RC1 (Java 21 support, modern serialization)
- Javassist - Updated from 3.29.0-GA to 3.30.2-GA (latest stable release)
- Testcontainers - Added 1.19.3 for Docker-based integration testing
Fixed
Test Compatibility Issues
- EqualsVerifier compatibility - Fixed "Unsupported class file major version 65" error in
QueriesEqualsAndHashCodeTest - SQLite native library - Fixed ARM64 Mac compatibility (resolved "No native library found for os.name=Mac and os.arch=aarch64" error)
- Lambda type erasure - Fixed "Could not resolve sufficient generic type information" in
DiskSharedCacheConcurrencyTest - ReflectiveAttribute equality - Fixed reflexivity test by suppressing
Warning.REFERENCE_EQUALITYfor intentional field comparison - Docker test logging - Configured SLF4J with Simple Logger to eliminate "Failed to load StaticLoggerBinder" warnings
Removed
Build Configuration
- maven-shade-plugin - Commented out due to infinite loop issue on Java 21, replaced with maven-assembly-plugin
- Shade plugin was hanging indefinitely during dependency analysis phase
- Assembly plugin provides equivalent fat jar creation without relocation (acceptable for most use cases)
Security
- CVE-2023-32697 - Fixed by updating SQLite JDBC from 3.42.0.0 to 3.45.0.0
- Severity: Moderate
- Impact: Potential security vulnerability in SQLite JDBC driver
- Resolution: Upgraded to patched version 3.45.0.0