Source commit: d632a0bc0662ae616b786f552150a7fabd1cee3e
추가됨
- Ktor
ApplicationCall에 binding된TenantId를 검증된 exact-match resolver로 전달하는
opt-inbluetape4k-exposed-ktor-tenant-jdbc및
bluetape4k-exposed-ktor-tenant-r2dbctransaction adapter를 추가했습니다. JDBC는
애플리케이션 소유 blocking dispatcher를 사용하고 R2DBC는 coroutine-native로 실행하며,
알 수 없는 tenant를 기본 database로 fallback하지 않습니다
(#763). - Spring Data JDBC와 R2DBC가 공유하는 annotation, mapping, query planning, sort 변환을
bluetape4k-exposed-spring-boot-common으로 분리하고 BOM·manual·CI coverage를 등록했습니다
(#729). - Spring Data R2DBC repository에 Reactor 타입 없이 coroutine-native Query by Example과
immutableFluentQueryterminal, projection, paging, slice, coldFlow실행을
추가했습니다
(#643). - Spring Data JDBC
QueryByExampleExecutor.findBy가 closed interface, Kotlin data class,
Java record projection과project/sort/limit/page/count/exists를 SQL로 pushdown하고,
caller-owned transaction에서 한 행씩 소비하는 cursor-backedstream()을 지원합니다
(#642).
변경됨
- batch JDBC/R2DBC repository가 지원 DB 공통
active_keyunique schema와 bounded
unique-conflict recovery를 사용하고, InMemory를 포함한 completion API가 terminal
상태만 저장하도록 계약을 강화했습니다
(#771). - batch Job/Step execution에 owner+version lease renewal과 writer/checkpoint
직전 fencing을 추가하고, capability preflight·redacted structured event·canary
rollout/rollback receipt validator를 제공했습니다
(#768). - Ktor integration을 backend-selective child artifact로 분리하고 dependency allowlist와
generated manifest parity를 fail-closed로 검증하도록 정리했습니다
(#748,
#762). - batch utility의 core·JDBC·R2DBC artifact ownership을 분리하고, 성공적으로 커밋된
chunk 뒤FAILED된 실행의 checkpoint 보존과 재시작 경계를 정렬했습니다
(#746,
#747,
#758). - Caffeine cache repository의 lifecycle coordinator와 backend conformance suite를
공통 경계로 정리했습니다
(#755). - R2DBC Spring Data adapter가 JDBC adapter와
spring-jdbc없이 common SPI만 사용하도록
dependency 경계를 고정했으며, 기존 JDBC public symbol은 descriptor를 보존하는 deprecated
facade로 유지했습니다
(#729). - JDBC QBE terminal이 하나의 matcher compiler와 cardinality 규칙을 공유합니다. 현재
transaction에 연결되지 않은 probe, open SpEL projection, nested/unknown property,
결과 cardinality를 바꾸는 customEntityClass.searchQueryshape는 SQL 전에
fail-fast로 거부합니다
(#642).
버그 수정
- batch 2.0 migration이 active legacy parameter hash를 fail-closed로 차단하고,
H2·MySQL·PostgreSQL preflight/migrate/postflight SQL을 core와 aggregate JAR에
포함하도록 보강했습니다
(#781). - R2DBC Redisson 예외 로그에서 원문과 stack trace가 노출되지 않도록 정리하고,
EntityMapLoader테스트가 테이블을 격리하도록 보강했습니다
(#759,
#760). - CodeQL Gradle 검증을 configuration-cache 환경에서도 strict task로 실행하도록
수정했습니다
(#757). - batch가 성공적으로 커밋한 청크 뒤에
FAILED되어도 마지막 checkpoint를 보존하고,
동일 parameters 재시작이 그 key 다음부터 이어지도록 InMemory/JDBC/R2DBC 완료 갱신과
취소 전파 계약을 정렬했습니다
(#745).
문서화
- Ktor child module의 generated manifest가 실제 모듈 경계와 일치하는지 CI에서 검증하도록
문서 계약을 보강했습니다
(#761).
Contributors
- Sunghyouk Bae sunghyouk.bae@gmail.com
- debop sunghyouk.bae@gmail.com
- dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Full Changelog: 1.12.1...2.0.0