What's Changed
- Feat/ojp 74 by @labg94 in #177
- Implement Connection Pool Abstraction with Apache Commons DBCP provider by @Copilot in #151
- XA pool implementation: Complete SPI, CommonsPool2XAProvider, Phase 1 full integration, unified configuration, and comprehensive documentation by @Copilot in #192
- Fix XA transaction failure with Spring Boot + Narayana - Session sanitization and flag routing by @Copilot in #194
- Implement unified connection model for XA and non-XA with SessionTracker, separated pool configuration, dynamic pool rebalancing, and dual-condition session lifecycle by @Copilot in #195
- Implement pool disable capability for Non-XA and XA connections by @Copilot in #197
- Add drop-in external libraries folder for proprietary JDBC drivers and libraries by @Copilot in #198
- Complete Implementation: Moving open source JDBC drivers to ojp-libs directory by @Copilot in #200
- Fix SLF4J conflict with Spring Boot and add configurable Logback settings by @Copilot in #213
- Fix transaction isolation state pollution in all connection pools with READ_COMMITTED default by @Copilot in #212
- Refactor StatementServiceImpl: Implement connect() method using Action pattern by @Copilot in #214
- Add comprehensive SPI implementation guide and ADR for Java developers by @Copilot in #199
- Analysis: Do not replace Apache Commons Pool 2 with Agroal for XA connection pooling by @Copilot in #236
- Implement housekeeping features (leak detection, max lifetime, diagnostics) for XA connection pool by @Copilot in #238
- SQL enhancer engine using Apache Calcite - Integration, Validation, Caching with XXHash, and Documentation by @Copilot in #237
- Remove XXHash from SQL Enhancer Engine cache, use original SQL as keys by @Copilot in #241
- Complete Implementation: Query optimization and rewriting in SQL Enhancer Engine with configuration support by @Copilot in #242
- Implement dynamic database schema loader for SQL query optimization by @Copilot in #243
- Add Meterian security scan as separate workflow by @Copilot in #246
- Upgrade protobuf-java to 3.25.8 to fix CVE-2024-7254 by @Copilot in #247
- Fix security vulnerabilities in Netty, lz4, and Apache Commons Lang3 dependencies by @Copilot in #249
- Fix CVE-2025-11226, CVE-2025-58057, CVE-2025-67735, CVE-2025-58056, CVE-2025-55163 by @Copilot in #248
- Fix CVE-2025-67735 and CVE-2025-48924 by centralizing dependency management by @Copilot in #250
- Upgrade dependencies to latest stable versions by @Copilot in #251
- Update Java dependencies to latest compatible versions by @Copilot in #252
- Add Apache Calcite query complexity analysis for slow query segregation by @Copilot in #255
- Implements #229 - Refactor XA transaction handling by introducing XaForgetAction class by @felipestanzani in #256
- Transform Partners section to table with descriptions and links by @Copilot in #244
- Upgrade protobuf-java from 4.33.3 to 4.33.4 by @Copilot in #257
- Add percentile latencies, max latency, throughput, and JVM metrics to PostgreSQL stress tests by @Copilot in #259
- Add second OJP server with SQL enhancer to postgres-test CI workflow by @Copilot in #253
- Remove redundant JDBC driver registration from StatementServiceImpl by @Copilot in #258
- Implement missing SQL enhancer configuration properties and automatic dialect translation by @Copilot in #260
- Specify singleton pattern requirement for StatementService actions with updated Action interface by @Copilot in #265
- Convert XaForgetAction to singleton and document pattern for all Action types by @Copilot in #266
- Document download-drivers.sh requirement before running integration tests by @Copilot in #269
- Implements many issue refactors - Refactor xaSetTransactionTimeout, xaGetTransactionTimeout, xaIsSameRM and readLob by @felipestanzani in #261
- Refactor callResource() to use Action pattern by @matheusandre1 in #272
- Refactor rollbackTransaction() to use Action pattern by @matheusandre1 in #270
- Refactor terminateSession() to use Action pattern by @matheusandre1 in #271
- Refactor commitTransaction() to use Action pattern by @matheusandre1 in #267
- Add ojp-testcontainers module for integration testing by @Copilot in #274
- Add Maven Central publishing support to ojp-testcontainers module by @Copilot in #276
- Address unanswered PR #210 review comments by @Copilot in #277
- Refactor xaStart() to use Action pattern by @matheusandre1 in #278
- Closes Issue 233 - Refactor StatementServiceImpl to utilize Action pattern for LOB creation by @felipestanzani in #279
- Resolve 15 review comments: clarify technical accuracy and remove overstated claims by @Copilot in #282
- Implement automatic session cleanup for abandoned connections by @Copilot in #284
- Resolve Chapter 9 review comments: Fix technical inaccuracies in multinode deployment documentation by @Copilot in #287
- Update eBook chapters with 27+ commits from main branch (f9cc349 → 05c75a6) by @Copilot in #286
- Resolve all 25 review comments in chapter 10 (XA Transactions) by @Copilot in #290
- Remove incorrect property name ojp.xa.pooling.enabled from documentation by @Copilot in #291
- Document ojp.xa.connection.pool.enabled in chapter 10 by @Copilot in #293
- Use virtual threads for XA pool housekeeping (Java 21+) by @Copilot in #289
- Add SQL pattern detection for session affinity (temporary tables, session variables) by @Copilot in #285
- Set OJP Server minimum Java version to 21 by @Copilot in #294
- Add server-side SSL certificate path resolution via URL placeholders with security validation by @Copilot in #296
- Document SSL/TLS certificate path placeholders in Chapter 11 by @Copilot in #299
- Update Chapter 11 to use SSL Certificate Path Placeholders consistently by @Copilot in #300
- Enforce IP whitelisting with audit logging at gRPC layer by @Copilot in #297
- Add environment-specific properties file loading with ojp-{env}.properties convention by @Copilot in #298
- Document environment-aware properties configuration in ebook Chapter 5 by @Copilot in #304
- Add mTLS support for OJP JDBC driver and server communication by @Copilot in #303
- Address chapter 11 review comments - Fix references, update mTLS documentation, and improve diagrams by @Copilot in #301
- Redirect documentation from programmatic to declarative environment configuration by @Copilot in #305
- Address Chapter 11 review comments - Clarify security architecture and implementation status by @Copilot in #307
- Document Apache Commons Pool 2 XA provider and XAConnectionPoolProvider SPI in Chapter 12 by @Copilot in #312
- Upgrade logback to 1.5.25 to address CVE-2026-1225 by @Copilot in #313
- Remove unimplemented and misplaced sections from Pool Provider SPI chapter by @Copilot in #314
- Remove undocumented multinode coordination metrics from telemetry chapter by @Copilot in #315
- Fix incorrect max_rows documentation in protocol chapter by @Copilot in #317
- Move Troubleshooting chapter to appendix, renumber chapters 16-23 by @Copilot in #319
- Correct technical inaccuracies in Chapter 15 development setup documentation by @Copilot in #321
- Issue 268: Test Cleanup by @jenspapenhagen in #325
- Add Chapter 2a: OJP JDBC Driver as Smart Load Balancer vs Traditional Database Proxies by @Copilot in #322
- Fix gRPC channel resource leak in server failover by @Copilot in #326
- Add retry logic for connection-level failures in multinode integration tests and fix session invalidation race condition by @Copilot in #320
- Update CONTRIBUTING.md to enhance clarity by @felipestanzani in #327
- Remove public modifiers from JUnit 5 test methods by @Copilot in #328
- Complete OJP E-Book: All 24 chapters with comprehensive documentation (1,043KB) + ALL Critical Gaps RESOLVED + XA Architecture Fully Integrated + StatefulSet Helm Deployment + Research-Backed Pool Sizing by @Copilot in #210
- Add version tracking to configuration documentation by @Copilot in #330
- Fix SQL Enhancer - Register Comprehensive Calcite Optimization Rules by @Copilot in #332
- [WIP] Fix incorrect SQL generation for PostgreSQL dialect in Calcite by @Copilot in #334
- Updates DB2 installation instructions according to the official DB2 documentation by @felipestanzani in #333
- Document JDBC driver requirement for v0.4.0-beta (JAR and Docker) by @Copilot in #335
- Document SQL enhancer type system limitations, add experimental warnings, and improve test observability by @Copilot in #336
- Sonar Warning Cleanup in Testclasses by @jenspapenhagen in #329
- Add PostgreSQL integration test for SQL enhancer with schema loading and optimization fixes by @Copilot in #245
- Refactor SQL enhancer: separate validation from optimization with async support by @Copilot in #288
- Fix intermittent test failures from ExecutorService leak, XA pool race condition, and deadlock by @Copilot in #339
- Run multinode integration tests 5x for timing confidence via matrix strategy by @Copilot in #340
- Fix error classification logic in multinode integration tests by @Copilot in #341
- Update documentation: JDBC drivers use ojp-libs, not pom.xml dependencies by @Copilot in #346
- Add java.time temporal type support with JDBC driver hang protection by @Copilot in #345
- Use setObject with java.time types in temporal integration tests by @Copilot in #351
- Document JVM parameter configuration for Docker deployments by @Copilot in #355
- Document required JVM parameters for IDE integration tests by @Copilot in #354
- Fix timezone-dependent test failures in Docker across multiple database tests by @Copilot in #353
- Implements Issue 215: Extract StartTransactionAction and refactor StatementServiceImpl by @felipestanzani in #360
- Disable slow query segregation by default by @Copilot in #365
- Add project roadmap by @Copilot in #366
- Circuit Breaker: implement per-datasource isolation via Registry pattern by @youzh00 in #337
- feat: OpenTelemetry distributed tracing with Zipkin/OTLP support (disabled by default) by @Copilot in #364
- docs: update ebook to reflect implemented distributed tracing by @Copilot in #367
- Add OpenTelemetry metrics to connection pools with standardized naming and separate gRPC and pool metrics controls by @Copilot in #318
- Force jackson-core to 2.18.6 to fix async parser DoS (CVSS 8) by @Copilot in #369
- chore: upgrade Java library dependencies to latest patch/minor releases by @Copilot in #370
- Emit SQL execution time, connection queue depth, and connection wait time via OpenTelemetry by @Copilot in #368
- Fix premature server health marking causing excess failures in MultinodeIntegrationTest by @Copilot in #371
- Remove stale Dockerfile.proprietary and update docs to reflect ojp-libs volume-mount driver loading by @Copilot in #372
- Fix race condition in XA pool resize preventing pool expansion after node failure by @Copilot in #373
- Refactor StatementServiceImpl and CallResourceAction; introduce ResultSetHelper and FetchNextRowsAction by @felipestanzani in #362
- Remove
ojp.datasource.nameas a user-configurable property by @Copilot in #376 - feat: Spring Boot starter module for zero-config OJP autoconfiguration by @Copilot in #374
- feat: bridge named-pool settings ({poolName}.ojp.*) from Spring Environment to JVM system properties by @Copilot in #377
- Support named datasource URLs in Spring Boot starter auto-configuration by @Copilot in #378
- Add OJP Champions section with Jether Rodrigues as inaugural champion by @Copilot in #381
- Implements Issue 220: Extract ExecuteUpdate logic into dedicated Action class by @felipestanzani in #384
New Contributors
- @felipestanzani made their first contribution in #256
- @matheusandre1 made their first contribution in #272
- @jenspapenhagen made their first contribution in #325
Full Changelog: v0.3.1-beta...v0.4.0-beta