Commits
Tarun Sukhani authored b25a5aa85ea
fix: per-EMF JCache discovery + release notes (release 1.12.38) Closes the M3 + L4 items from the PF-86 audit. * JPAPlugin.bindJCacheMetrics — now per-SessionFactory rather than a single global iteration of the default Caching.getCachingProvider(). Resolves the cache manager via SessionFactoryImplementor .getServiceRegistry().getService(RegionFactory.class), instanceof- guards on JCacheRegionFactory, and tags every emitted meter with db=<dbName>. Required for multi-tenant SaaS and read-replica setups where many DBs share entity classes (and therefore L2 region names); the previous global path collapsed those into one ambiguous series. Apps without L2, or with a non-JCache region factory (Infinispan, custom), silently fall through with debug-level logging. * releasenotes-1.12.0.textile — expanded the Micrometer section with subsections covering the cache + connection-pool binders shipped in 1.12.34 / 1.12.35 / 1.12.36 (PF-85 / PF-86 / PF-87) and the 1.12.37 multi-DB pool naming + dev-reload tracker rebind. Calls out hibernate.generate_statistics=true as opt-in default (putIfAbsent honors app overrides) and the PF-87 javax.persistence opt-in path for HibernateMetrics on this jakarta-only fork. Positive L2 test coverage requires adding caffeine-jcache to lib-test/ plus a @Cacheable test entity and L2 config to the integration testapp — tracked as a follow-up since the existing testapp has no entities and adding a JCache provider is a separate fixture-design choice. The existing MetricsFunctionalTest verifies the no-L2 path doesn't regress. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>