revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5 === public top-level type references outside defining file === 0 CommitAmbiguityProxy :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/failure/CommitAmbiguityProxy.java 0 PostgreSqlContractExtension :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/postgresql/PostgreSqlContractExtension.java 1 EntityExposureCondition :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/EntityExposureCondition.java src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaArchitectureRules.java:39: .should(new EntityExposureCondition()) 1 EntityMappingCondition :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/EntityMappingCondition.java src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaArchitectureRules.java:51: .should(new EntityMappingCondition()) 1 JpaQueryAssertions :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertions.java src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:17: private final JpaQueryAssertions assertions = new JpaQueryAssertions(); 1 TenantScopedRepositoryPredicate :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/TenantScopedRepositoryPredicate.java src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaArchitectureRules.java:92: .that(new TenantScopedRepositoryPredicate()) 2 DurationMillisConverter :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/mapping/DurationMillisConverter.java src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/mapping/DurationMillisConverterTest.java:14: private final DurationMillisConverter converter = new DurationMillisConverter(); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/mapping/MappingEntity.java:58: @Convert(converter = DurationMillisConverter.class) 3 FetchExpectation :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/FetchExpectation.java src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:104: assertThat(FetchExpectation.batched(5).matches(measurement)).isTrue(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:108: new QueryName("order.detail"), measurement, FetchExpectation.none())) src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertions.java:46: QueryName queryName, QueryMeasurement actual, FetchExpectation expected) { 3 MigrationContractRunner :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationContractRunner.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlBaseStreamUpgradeIntegrationTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.migration.MigrationContractRunner; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlBaseStreamUpgradeIntegrationTest.java:163: private static MigrationContractRunner runner(DataSource dataSource) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlBaseStreamUpgradeIntegrationTest.java:164: return new MigrationContractRunner(dataSource, LOCATION, new FlywayValidationGate()); 3 QueryPlanAssertions :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertions.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:8:import dev.caskeleton.adapter.outbound.persistence.testkit.queryplan.QueryPlanAssertions; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:33: private final QueryPlanAssertions assertions = new QueryPlanAssertions(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:14: private final QueryPlanAssertions assertions = new QueryPlanAssertions(); 4 CountingDataSource :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/jdbc/CountingDataSource.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformEntityManagerSupport.java:4:import dev.caskeleton.adapter.outbound.persistence.testkit.jdbc.CountingDataSource; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformEntityManagerSupport.java:34: *

The data source is wrapped in a {@link CountingDataSource} so JDBC batch executions are src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformEntityManagerSupport.java:63: DataSource dataSource = new CountingDataSource(support.dataSource(), batchCounter); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/jdbc/CountingJdbcBatchCounter.java:14: *

Installed by {@link CountingDataSource}, which wraps the driver's statements. 4 EntityStateProbe :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbe.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.lifecycle.EntityStateProbe; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:50: var probe = new EntityStateProbe(entityManager); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:71: var probe = new EntityStateProbe(entityManager); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbeTest.java:25: private final EntityStateProbe probe = new EntityStateProbe(entityManager); 4 PostgreSqlExplainRunner :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/PostgreSqlExplainRunner.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.queryplan.PostgreSqlExplainRunner; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:31: private static PostgreSqlExplainRunner runner; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:38: runner = new PostgreSqlExplainRunner(support.dataSource()); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:79: PostgreSqlExplainRunner.normalize( 6 PagedChild :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/PagedChild.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.fetch.PagedChild; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:39: jpa = JpaPlatformEntityManagerSupport.open(support, PagedParent.class, PagedChild.class); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:45: paged.addChild(new PagedChild("child-" + parent + '-' + child)); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/PagedParent.java:46: private List children = new ArrayList<>(); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/PagedParent.java:67: public List children() { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/PagedParent.java:77: public void addChild(PagedChild child) { 7 FetchPaginationExpectation :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/FetchPaginationExpectation.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.fetch.FetchPaginationExpectation; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:65: var expected = FetchPaginationExpectation.hibernate74PostgreSql(PAGE_SIZE); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:130: var expected = FetchPaginationExpectation.hibernate74PostgreSql(PAGE_SIZE); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/FetchPaginationExpectationTest.java:15: var expected = FetchPaginationExpectation.hibernate74PostgreSql(20); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/FetchPaginationExpectationTest.java:24: assertThat(FetchPaginationExpectation.hibernate74PostgreSql(20).maxRowAmplification()) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/FetchPaginationExpectationTest.java:26: assertThat(FetchPaginationExpectation.hibernate74PostgreSql(1).maxRowAmplification()) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/FetchPaginationExpectationTest.java:33: assertThatThrownBy(() -> FetchPaginationExpectation.hibernate74PostgreSql(0)) 7 JpaReleaseGate :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/release/JpaReleaseGate.java src/config/jpa/release-registry.json:10: "The gate list existed twice more — a static List in JpaReleaseGate and a hard-coded matrix in", src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaDocumentationContractTest.java:5:import dev.caskeleton.adapter.outbound.persistence.testkit.release.JpaReleaseGate; src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaDocumentationContractTest.java:50: for (String gate : JpaReleaseGate.required()) { src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseManifestTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.release.JpaReleaseGate; src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseManifestTest.java:45: for (String gate : JpaReleaseGate.required()) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/release/JpaReleaseManifest.java:25: * JpaReleaseGate} and a hard-coded matrix in the workflow — with nothing connecting any of them to src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/release/JpaReleaseManifest.java:152: return gates.containsAll(JpaReleaseGate.required()); 7 MigrationSnapshot :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationSnapshot.java src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenarioTest.java:24: assertThat(MigrationSnapshot.empty().startingVersion()).isEmpty(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenarioTest.java:41: assertThatThrownBy(() -> new MigrationSnapshot("", "", "")) src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenario.java:26: String name, MigrationSnapshot snapshot, Consumer invariant) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenario.java:62: return new MigrationScenario("empty", MigrationSnapshot.empty(), dataSource -> {}); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenario.java:82: MigrationSnapshot.upToVersion("previous-release", location, previousVersion, seedSql), src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenario.java:98: MigrationSnapshot.upToVersion("oldest-supported", location, oldestVersion, seedSql), src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationContractRunner.java:79: private void restore(MigrationSnapshot snapshot) { 9 IdentityEntity :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/id/IdentityEntity.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.id.IdentityEntity; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:67: JpaPlatformEntityManagerSupport.open(support, BATCH_SIZE, IdentityEntity.class)) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:73: entityManager.persist(new IdentityEntity("row-" + index)); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:106: JpaPlatformEntityManagerSupport.open(support, IdentityEntity.class)) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:111: IdentityEntity entity = new IdentityEntity("first"); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/hibernate/batch/HibernateBatchConfigurationGuardTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.id.IdentityEntity; src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/hibernate/batch/HibernateBatchConfigurationGuardTest.java:21: assertThatThrownBy(() -> guard.validate(profile, IdentityEntity.class)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/hibernate/batch/HibernateBatchConfigurationGuardTest.java:34: assertThat(guard.usesIdentityGeneration(IdentityEntity.class)).isTrue(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/hibernate/batch/HibernateBatchConfigurationGuardTest.java:42: guard.validate(profile, IdentityEntity.class); 9 JpaAuditMechanismRule :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaAuditMechanismRule.java src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:103: dev.caskeleton.adapter.outbound.persistence.testkit.arch.JpaAuditMechanismRule src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:115: dev.caskeleton.adapter.outbound.persistence.testkit.arch.JpaAuditMechanismRule src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:117: dev.caskeleton.adapter.outbound.persistence.testkit.arch.JpaAuditMechanismRule src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaAuditMechanismRuleTest.java:5:import dev.caskeleton.adapter.outbound.persistence.testkit.arch.JpaAuditMechanismRule; src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaAuditMechanismRuleTest.java:26: JpaAuditMechanismRule.bulkUpdateViolation( src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaAuditMechanismRuleTest.java:36: JpaAuditMechanismRule.bulkUpdateViolation( src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaAuditMechanismRuleTest.java:46: JpaAuditMechanismRule.bulkUpdateViolation( src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaAuditMechanismRuleTest.java:55: JpaAuditMechanismRule.bulkUpdateViolation( src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaAuditMechanismRuleTest.java:64: JpaAuditMechanismRule.bulkUpdateViolation( 9 QueryPlanExpectation :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanExpectation.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:9:import dev.caskeleton.adapter.outbound.persistence.testkit.queryplan.QueryPlanExpectation; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:63: plan, QueryPlanExpectation.estimateOnly(10.0d).withDiskSortForbidden()); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:76: QueryPlanExpectation.estimateOnly(10.0d) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:24: plan, QueryPlanExpectation.estimateOnly(10.0d).withDiskSortForbidden())) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:35: () -> assertions.assertMatches(plan, QueryPlanExpectation.estimateOnly(10.0d))) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:45: assertThatCode(() -> assertions.assertMatches(plan, QueryPlanExpectation.estimateOnly(10.0d))) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:57: plan, QueryPlanExpectation.estimateOnly(10.0d).requiring("Index Scan"))) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:70: plan, QueryPlanExpectation.estimateOnly(10.0d).withDiskSortForbidden())) src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertions.java:13: public void assertMatches(NormalizedPlan plan, QueryPlanExpectation expected) { 10 CountingJdbcBatchCounter :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/jdbc/CountingJdbcBatchCounter.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformEntityManagerSupport.java:5:import dev.caskeleton.adapter.outbound.persistence.testkit.jdbc.CountingJdbcBatchCounter; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformEntityManagerSupport.java:40: private final CountingJdbcBatchCounter batchCounter; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformEntityManagerSupport.java:43: SessionFactory sessionFactory, CountingJdbcBatchCounter batchCounter) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformEntityManagerSupport.java:62: CountingJdbcBatchCounter batchCounter = new CountingJdbcBatchCounter(); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformEntityManagerSupport.java:92: public CountingJdbcBatchCounter batchCounter() { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/jdbc/CountingDataSource.java:26: private final CountingJdbcBatchCounter counter; src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/jdbc/CountingDataSource.java:28: public CountingDataSource(DataSource delegate, CountingJdbcBatchCounter counter) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/jdbc/CountingDataSource.java:44: public CountingJdbcBatchCounter counter() { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/jdbc/CountingDataSource.java:57: private record ConnectionHandler(Connection delegate, CountingJdbcBatchCounter counter) src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/jdbc/CountingDataSource.java:82: private record StatementHandler(PreparedStatement delegate, CountingJdbcBatchCounter counter) 10 PoolMeasurement :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/pool/PoolMeasurement.java src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/pool/PoolMeasurementTest.java:16: var measurement = new PoolMeasurement(4, 2, 3, Duration.ofMillis(80)); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/pool/PoolMeasurementTest.java:25: assertThat(new PoolMeasurement(4, 2, 0, Duration.ZERO).total()).isEqualTo(6); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/pool/PoolMeasurementTest.java:31: assertThat(new PoolMeasurement(4, 0, 1, Duration.ZERO).saturated()).isTrue(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/pool/PoolMeasurementTest.java:32: assertThat(new PoolMeasurement(4, 2, 0, Duration.ZERO).saturated()).isFalse(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/pool/PoolMeasurementTest.java:38: assertThatThrownBy(() -> new PoolMeasurement(-1, 0, 0, Duration.ZERO)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/pool/PoolMeasurementTest.java:40: assertThatThrownBy(() -> new PoolMeasurement(1, 0, 0, Duration.ofMillis(-1))) src/adapter/outbound/persistence-jpa/src/jpaPlatformPerformanceTest/java/dev/caskeleton/adapter/outbound/persistence/platform/pool/HikariPoolSaturationContractTest.java:8:import dev.caskeleton.adapter.outbound.persistence.testkit.pool.PoolMeasurement; src/adapter/outbound/persistence-jpa/src/jpaPlatformPerformanceTest/java/dev/caskeleton/adapter/outbound/persistence/platform/pool/HikariPoolSaturationContractTest.java:97: new PoolMeasurement( src/adapter/outbound/persistence-jpa/src/jpaPlatformPerformanceTest/java/dev/caskeleton/adapter/outbound/persistence/platform/pool/PoolPressureContractTest.java:5:import dev.caskeleton.adapter.outbound.persistence.testkit.pool.PoolMeasurement; src/adapter/outbound/persistence-jpa/src/jpaPlatformPerformanceTest/java/dev/caskeleton/adapter/outbound/persistence/platform/pool/PoolPressureContractTest.java:29: var measurement = new PoolMeasurement(4, 2, 3, Duration.ofMillis(80)); 10 UuidV7Generator :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/id/UuidV7Generator.java src/app-bootstrap/src/main/java/dev/caskeleton/bootstrap/notification/NotificationPlatformCodecConfig.java:6:import dev.caskeleton.adapter.outbound.notification.platform.dispatch.UuidV7Generator; src/app-bootstrap/src/main/java/dev/caskeleton/bootstrap/notification/NotificationPlatformCodecConfig.java:50: return new UuidV7Generator(clock); src/adapter/outbound/notification/src/test/java/dev/caskeleton/adapter/outbound/notification/platform/testkit/NotificationPerformanceCertificationTest.java:6:import dev.caskeleton.adapter.outbound.notification.platform.dispatch.UuidV7Generator; src/adapter/outbound/notification/src/test/java/dev/caskeleton/adapter/outbound/notification/platform/testkit/NotificationPerformanceCertificationTest.java:38: var generator = new UuidV7Generator(Clock.systemUTC()); src/adapter/outbound/notification/src/main/java/dev/caskeleton/adapter/outbound/notification/platform/dispatch/UuidV7Generator.java:20:public final class UuidV7Generator implements NotificationIdGeneratorPort { src/adapter/outbound/notification/src/main/java/dev/caskeleton/adapter/outbound/notification/platform/dispatch/UuidV7Generator.java:30: public UuidV7Generator(Clock clock) { src/adapter/outbound/notification/src/main/java/dev/caskeleton/adapter/outbound/notification/platform/dispatch/UuidV7Generator.java:34: UuidV7Generator(Clock clock, SecureRandom random) { src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/id/UuidV7GeneratorTest.java:16: private final UuidV7Generator generator = new UuidV7Generator(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/id/UuidV7GeneratorTest.java:55: assertThat(UuidV7Generator.timestampOf(generator.next(instant))).isEqualTo(instant); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/id/UuidV7GeneratorTest.java:61: assertThatThrownBy(() -> UuidV7Generator.timestampOf(UUID.randomUUID())) 11 QueryExpectation :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/QueryExpectation.java src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:24: assertThatThrownBy(() -> assertions.assertMatches(measurement, QueryExpectation.maxRows(500))) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:35: () -> assertions.assertMatches(measurement, QueryExpectation.exactlyOneStatement())) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:48: new QueryName("order.find-recent"), measurement, QueryExpectation.maxRows(500))) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:62: assertions.assertMatches(measurement, QueryExpectation.none().withMaxStatements(5))) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:67: measurement, QueryExpectation.none().withExactStatements(1))) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:76: new QueryExpectation( src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:90: var exactWins = QueryExpectation.none().withMaxStatements(5).withExactStatements(1); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:94: var maximumWins = QueryExpectation.none().withExactStatements(1).withMaxStatements(5); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/FetchExpectation.java:8: *

Separate from {@link QueryExpectation} because it answers a different question: not "was this src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertions.java:21: public void assertMatches(QueryMeasurement actual, QueryExpectation expected) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertions.java:27: QueryName queryName, QueryMeasurement actual, QueryExpectation expected) { 12 EntityState :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityState.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:5:import dev.caskeleton.adapter.outbound.persistence.testkit.lifecycle.EntityState; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:56: assertThat(probe.stateOf(original)).isEqualTo(EntityState.DETACHED); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:74: assertThat(probe.stateOf(fresh)).isEqualTo(EntityState.TRANSIENT); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:77: assertThat(probe.stateOf(fresh)).isEqualTo(EntityState.MANAGED); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbeTest.java:33: assertThat(probe.stateOf(entity)).isEqualTo(EntityState.MANAGED); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbeTest.java:43: assertThat(probe.stateOf(entity)).isEqualTo(EntityState.DETACHED); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbeTest.java:53: assertThat(probe.stateOf(entity)).isEqualTo(EntityState.TRANSIENT); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbe.java:25: public EntityState stateOf(Object entity) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbe.java:28: return EntityState.MANAGED; src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbe.java:32: return id == null ? EntityState.TRANSIENT : EntityState.DETACHED; src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbe.java:37: return stateOf(entity) == EntityState.MANAGED; src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/EntityStateProbe.java:42: return stateOf(entity) == EntityState.DETACHED; 12 MigrationScenario :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenario.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlMigrationUpgradeContractTest.java:9:import dev.caskeleton.adapter.outbound.persistence.testkit.migration.MigrationScenario; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlMigrationUpgradeContractTest.java:50: assertThat(MigrationScenario.requiredNames()) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlBaseStreamUpgradeIntegrationTest.java:8:import dev.caskeleton.adapter.outbound.persistence.testkit.migration.MigrationScenario; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlBaseStreamUpgradeIntegrationTest.java:57: var result = runner(database.dataSource()).run(MigrationScenario.empty()); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlBaseStreamUpgradeIntegrationTest.java:72: MigrationScenario.previousRelease( src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlBaseStreamUpgradeIntegrationTest.java:90: MigrationScenario.oldestSupported( src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlBaseStreamUpgradeIntegrationTest.java:123: MigrationScenario.previousRelease(LOCATION, PREVIOUS_VERSION, "", dataSource -> {})) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlBaseStreamUpgradeIntegrationTest.java:136: MigrationScenario.previousRelease( src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenarioTest.java:16: assertThat(MigrationScenario.requiredNames()) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenarioTest.java:23: assertThat(MigrationScenario.empty().snapshot().isEmptyDatabase()).isTrue(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationScenarioTest.java:31: var scenario = MigrationScenario.empty().withInvariant(dataSource -> asserted.set(true)); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/migration/MigrationContractRunner.java:44: public MigrateResult run(MigrationScenario scenario) { 13 JpaReleaseManifest :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/release/JpaReleaseManifest.java src/config/jpa/release-registry.json:5: "It used to be prose. JpaReleaseManifest collected every `PostgreSQL NN` the support matrix", src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaDocumentationContractTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.release.JpaReleaseManifest; src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaDocumentationContractTest.java:29: private final JpaReleaseManifest manifest = JpaReleaseManifest.loadFromRepository(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseManifestTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.release.JpaReleaseManifest; src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseManifestTest.java:22: private final JpaReleaseManifest manifest = JpaReleaseManifest.loadFromRepository(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseManifestTest.java:71: assertThatThrownBy(() -> JpaReleaseManifest.parse(registry)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseManifestTest.java:86: assertThatThrownBy(() -> JpaReleaseManifest.parse(registry)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseManifestTest.java:96: new JpaReleaseManifest( src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseManifestTest.java:106: JpaReleaseManifest.parse( src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:5:import dev.caskeleton.adapter.outbound.persistence.testkit.release.JpaReleaseManifest; src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:32: private final JpaReleaseManifest manifest = JpaReleaseManifest.loadFromRepository(); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:146: JpaReleaseManifest invented = 13 JpaReleaseRendering :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/release/JpaReleaseRendering.java src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.release.JpaReleaseRendering; src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:40: Map documented = JpaReleaseRendering.documentedSupportLevels(supportMatrix); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:61: assertThat(JpaReleaseRendering.documentedSupportLevels(demoted).get(17)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:70: assertThat(JpaReleaseRendering.documentedGates(supportMatrix)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:82: assertThat(JpaReleaseRendering.documentedGates(invented)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:90: assertThat(JpaReleaseRendering.workflowMatrixMajors(releaseWorkflow)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:98: assertThat(JpaReleaseRendering.workflowPromotionMajors(releaseWorkflow)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:108: assertThat(JpaReleaseRendering.workflowMatrixMajors(dropped)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:115: assertThat(JpaReleaseRendering.workflowMatrixMajors(nightlyWorkflow)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:128: assertThat(JpaReleaseRendering.workflowMatrixMajors(widened)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:164: stableLaneMajors.addAll(JpaReleaseRendering.workflowExecutedMajors(releaseWorkflow)); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/JpaReleaseRenderingTest.java:165: stableLaneMajors.addAll(JpaReleaseRendering.workflowExecutedMajors(nightlyWorkflow)); 13 Money :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/mapping/Money.java src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/violations/serialization/BigDecimalDoubleConstructorFixture.java:11: * 0.1000000000000000055...}) instead of the exact decimal. Money / decimal values must be built src/adapter/inbound/web/CLAUDE.md:125:- **S2 — Money / BigDecimal (D3).** Default scale 2, rounding `HALF_UP` unless src/adapter/inbound/graphql/src/test/java/dev/caskeleton/adapter/inbound/graphql/scalar/GraphQlScalarContractTest.java:118: GraphQlScalarManifest.of(GraphQlScalarDefinition.named("Money")); src/adapter/inbound/graphql/src/test/java/dev/caskeleton/adapter/inbound/graphql/scalar/GraphQlScalarContractTest.java:122: .hasMessageContaining("Money"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.mapping.Money; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:61: Money price = Money.of(new BigDecimal("12.3400"), Currency.getInstance("USD")); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:101: Money.of(BigDecimal.ONE, Currency.getInstance("USD")), src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:128: Money.of(BigDecimal.ONE, Currency.getInstance("USD")), src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:156: Money.of(new BigDecimal("9.9900"), Currency.getInstance("EUR")), src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/mapping/DurationMillisConverterTest.java:44: Money money = Money.of(new BigDecimal("0.10"), Currency.getInstance("USD")); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/mapping/MappingEntity.java:56: @Embedded private Money price; src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/mapping/MappingEntity.java:72: Money price, 13 NormalizedPlan :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/NormalizedPlan.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.queryplan.NormalizedPlan; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:60: NormalizedPlan plan = runner.explain("select id from plan_row where id = ?", 42L); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlQueryPlanContractTest.java:70: NormalizedPlan plan = runner.explain("select id from plan_row where bucket = ?", 3); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:19: var plan = new NormalizedPlan(List.of("Sort", "Seq Scan"), 100.0d, true, 42L); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:32: var plan = new NormalizedPlan(List.of("Index Scan"), 100.0d, false, 1L); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:43: var plan = new NormalizedPlan(List.of("Seq Scan"), 1.0d, false, 1L); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:52: var plan = new NormalizedPlan(List.of("Seq Scan"), 1.0d, false, 1L); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertionsTest.java:65: var plan = new NormalizedPlan(List.of("Sort"), 1.0d, true, 7L); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanAssertions.java:13: public void assertMatches(NormalizedPlan plan, QueryPlanExpectation expected) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/QueryPlanExpectation.java:63: public Optional violation(NormalizedPlan plan) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/PostgreSqlExplainRunner.java:40: public NormalizedPlan explain(String sql, Object... parameters) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/queryplan/PostgreSqlExplainRunner.java:65: public static NormalizedPlan normalize(String explainJson) { 13 PostgreSqlContainerFactory :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/postgresql/PostgreSqlContainerFactory.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupportTest.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.postgresql.PostgreSqlContainerFactory; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupportTest.java:32: System.clearProperty(PostgreSqlContainerFactory.MATRIX_PROPERTY); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupportTest.java:34: System.setProperty(PostgreSqlContainerFactory.MATRIX_PROPERTY, previousSelection); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupportTest.java:67: previousSelection = System.getProperty(PostgreSqlContainerFactory.MATRIX_PROPERTY); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupportTest.java:68: System.setProperty(PostgreSqlContainerFactory.MATRIX_PROPERTY, versions); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupport.java:5:import dev.caskeleton.adapter.outbound.persistence.testkit.postgresql.PostgreSqlContainerFactory; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupport.java:91: PostgreSQLContainer container = PostgreSqlContainerFactory.create(version); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupport.java:98: return PostgreSqlContainerFactory.selectedVersions(); src/adapter/outbound/persistence-jpa/src/jpaPlatformPerformanceTest/java/dev/caskeleton/adapter/outbound/persistence/platform/pool/RequiresNewPoolPressureContractTest.java:8:import dev.caskeleton.adapter.outbound.persistence.testkit.postgresql.PostgreSqlContainerFactory; src/adapter/outbound/persistence-jpa/src/jpaPlatformPerformanceTest/java/dev/caskeleton/adapter/outbound/persistence/platform/pool/RequiresNewPoolPressureContractTest.java:32: container = PostgreSqlContainerFactory.create(PostgreSqlVersion.PG_16); src/adapter/outbound/persistence-jpa/src/jpaPlatformPerformanceTest/java/dev/caskeleton/adapter/outbound/persistence/platform/pool/HikariPoolSaturationContractTest.java:9:import dev.caskeleton.adapter.outbound.persistence.testkit.postgresql.PostgreSqlContainerFactory; src/adapter/outbound/persistence-jpa/src/jpaPlatformPerformanceTest/java/dev/caskeleton/adapter/outbound/persistence/platform/pool/HikariPoolSaturationContractTest.java:39: container = PostgreSqlContainerFactory.create(PostgreSqlVersion.PG_16); 13 QueryMeasurement :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/QueryMeasurement.java src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:22: var measurement = new QueryMeasurement(1, 100, 2000, 0, Duration.ofMillis(40)); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:32: var measurement = new QueryMeasurement(101, 100, 100, 100, Duration.ofMillis(40)); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:43: var measurement = new QueryMeasurement(1, 100, 2000, 3, Duration.ofMillis(40)); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:58: var measurement = new QueryMeasurement(2, 10, 10, 0, Duration.ofMillis(1)); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:102: var measurement = new QueryMeasurement(1, 10, 10, 5, Duration.ofMillis(1)); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:116: assertThat(new QueryMeasurement(1, 100, 2000, 0, Duration.ZERO).rowAmplification()) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertionsTest.java:118: assertThat(new QueryMeasurement(1, 0, 0, 0, Duration.ZERO).rowAmplification()).isZero(); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/FetchExpectation.java:33: public boolean matches(QueryMeasurement actual) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/QueryExpectation.java:119: public boolean matches(QueryMeasurement actual) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/QueryExpectation.java:125: public Optional violation(QueryMeasurement actual) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertions.java:21: public void assertMatches(QueryMeasurement actual, QueryExpectation expected) { src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/query/JpaQueryAssertions.java:27: QueryName queryName, QueryMeasurement actual, QueryExpectation expected) { 14 JpaArchitectureRules :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaArchitectureRules.java src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.arch.JpaArchitectureRules; src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:70: JpaArchitectureRules.noEntityFromWeb().check(productionClasses); src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:76: JpaArchitectureRules.entitiesFollowPortableMappingRules().check(productionClasses); src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:82: JpaArchitectureRules.entitiesStayOutOfWebPackages().check(productionClasses); src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:89: JpaArchitectureRules.domainDoesNotDependOnHibernate().check(productionClasses); src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:95: JpaArchitectureRules.noGenericRepository().check(productionClasses); src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/JpaProductionArchitectureTest.java:127: JpaArchitectureRules.tenantScopedRepositoriesDoNotInheritBroadCrud().check(productionClasses); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaArchitectureRulesTest.java:31: assertThatThrownBy(() -> JpaArchitectureRules.noEntityFromWeb().check(classes)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaArchitectureRulesTest.java:41: assertThatThrownBy(() -> JpaArchitectureRules.noEntityFromWeb().check(classes)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaArchitectureRulesTest.java:51: assertThatCode(() -> JpaArchitectureRules.noEntityFromWeb().check(classes)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaArchitectureRulesTest.java:60: assertThatCode(() -> JpaArchitectureRules.entitiesStayOutOfWebPackages().check(classes)) src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/testkit/arch/JpaArchitectureRulesTest.java:70: () -> JpaArchitectureRules.entitiesFollowPortableMappingRules().check(classes)) 14 LifecycleChild :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/LifecycleChild.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.lifecycle.LifecycleChild; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:32: JpaPlatformEntityManagerSupport.open(support, LifecycleParent.class, LifecycleChild.class); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:154: parent.addChild(new LifecycleChild("c-1")); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:174: parent.addChild(new LifecycleChild("c-orphan")); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:194: "select count(c) from LifecycleChild c where c.parent.id = :parentId", src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateBulkDmlExecutorIntegrationTest.java:11:import dev.caskeleton.adapter.outbound.persistence.testkit.lifecycle.LifecycleChild; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateBulkDmlExecutorIntegrationTest.java:41: JpaPlatformEntityManagerSupport.open(support, LifecycleParent.class, LifecycleChild.class); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/OptimisticRetryIntegrationTest.java:5:import dev.caskeleton.adapter.outbound.persistence.testkit.lifecycle.LifecycleChild; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/OptimisticRetryIntegrationTest.java:41: JpaPlatformEntityManagerSupport.open(support, LifecycleParent.class, LifecycleChild.class); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/OptimisticRetryIntegrationTest.java:122: assertThat(translator.conflictingEntityType(LifecycleChild.class)).isEmpty(); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/LifecycleParent.java:51: private List children = new ArrayList<>(); src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/LifecycleParent.java:77: public List children() { 15 AuditedDocument :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/envers/AuditedDocument.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:10:import dev.caskeleton.adapter.outbound.persistence.testkit.envers.AuditedDocument; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:36: new EnversHistoryPolicy(Set.of("AuditedDocument"), Duration.ofDays(365), true); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:46: jpa = JpaPlatformEntityManagerSupport.open(support, AuditedDocument.class); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:74: var document = new AuditedDocument("first", "body"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:80: entityManager -> entityManager.find(AuditedDocument.class, id).retitle("second")); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:81: jpa.inTransactionDo(entityManager -> entityManager.find(AuditedDocument.class, id).redact()); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:85: List> revisions = reader.revisions(AuditedDocument.class, id); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:104: var document = new AuditedDocument("kept", "body"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:111: entityManager.find(AuditedDocument.class, id).retitle("discarded"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:118: assertThat(reader.revisionNumbers(AuditedDocument.class, id)) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:135: assertThat(reader.revisions(AuditedDocument.class, 1L)).isEmpty(); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/EnversHistoryContractTest.java:136: assertThat(reader.hasHistory(AuditedDocument.class, 1L)).isFalse(); 15 MappingEntity :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/mapping/MappingEntity.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:5:import dev.caskeleton.adapter.outbound.persistence.testkit.mapping.MappingEntity; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:40: jpa = JpaPlatformEntityManagerSupport.open(support, MappingEntity.class); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:67: new MappingEntity( src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:72: MappingEntity.Status.ACTIVE, src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:76: MappingEntity loaded = src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:77: jpa.inTransaction(entityManager -> entityManager.find(MappingEntity.class, id)); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:82: assertThat(loaded.status()).isEqualTo(MappingEntity.Status.ACTIVE); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:95: new MappingEntity( src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:100: MappingEntity.Status.ARCHIVED, src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:122: new MappingEntity( src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:127: MappingEntity.Status.ACTIVE, src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaValueMappingContractTest.java:150: new MappingEntity( 16 PagedParent :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/fetch/PagedParent.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:8:import dev.caskeleton.adapter.outbound.persistence.testkit.fetch.PagedParent; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:39: jpa = JpaPlatformEntityManagerSupport.open(support, PagedParent.class, PagedChild.class); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:43: var paged = new PagedParent("parent-" + parent); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:67: List page = src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:72: "select distinct p from PagedParent p left join fetch p.children" src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:74: PagedParent.class) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:89: List page = src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:92: "select distinct p from PagedParent p left join fetch p.children" src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:94: PagedParent.class) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:113: List page = src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:115: .createQuery("select p from PagedParent p order by p.id", PagedParent.class) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateCollectionFetchPaginationContractTest.java:138: "select count(c) from PagedParent p join p.children c", Long.class) 22 SequenceEntity :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/id/SequenceEntity.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.id.SequenceEntity; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:46: JpaPlatformEntityManagerSupport.open(support, BATCH_SIZE, SequenceEntity.class)) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:52: entityManager.persist(new SequenceEntity("row-" + index)); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:88: JpaPlatformEntityManagerSupport.open(support, BATCH_SIZE, SequenceEntity.class)) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/IdStrategyContractTest.java:93: SequenceEntity entity = new SequenceEntity("first"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateStatelessSessionRunnerIntegrationTest.java:10:import dev.caskeleton.adapter.outbound.persistence.testkit.id.SequenceEntity; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateStatelessSessionRunnerIntegrationTest.java:36: jpa = JpaPlatformEntityManagerSupport.open(support, SequenceEntity.class); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateStatelessSessionRunnerIntegrationTest.java:60: session.insert(new SequenceEntity("stateless-" + java.util.UUID.randomUUID())); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateStatelessSessionRunnerIntegrationTest.java:81: session.insert(new SequenceEntity("rolled-back")); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateStatelessSessionRunnerIntegrationTest.java:111: .createQuery("select count(e) from SequenceEntity e", Long.class) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateStatelessSessionRunnerIntegrationTest.java:129: new SequenceEntity("over-cap-" + java.util.UUID.randomUUID())); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/HibernateStatelessSessionRunnerIntegrationTest.java:153: session.insert(new SequenceEntity("at-cap-" + java.util.UUID.randomUUID())); 23 PostgreSqlFailureScenario :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/failure/PostgreSqlFailureScenario.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlConcurrencyFailureContractTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.failure.PostgreSqlFailureScenario; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlConcurrencyFailureContractTest.java:81: assertThat(PostgreSqlFailureScenario.commitPoints()) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlConcurrencyFailureContractTest.java:83: PostgreSqlFailureScenario.BEFORE_COMMIT, src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlConcurrencyFailureContractTest.java:84: PostgreSqlFailureScenario.DURING_COMMIT, src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlConcurrencyFailureContractTest.java:85: PostgreSqlFailureScenario.AFTER_SERVER_COMMIT_BEFORE_RESPONSE); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlConcurrencyFailureContractTest.java:86: assertThat(PostgreSqlFailureScenario.BEFORE_COMMIT.leavesOutcomeUnknown()).isFalse(); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/PostgreSqlConcurrencyFailureContractTest.java:87: assertThat(PostgreSqlFailureScenario.AFTER_SERVER_COMMIT_BEFORE_RESPONSE.leavesOutcomeUnknown()) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/CommitAmbiguityContractTest.java:8:import dev.caskeleton.adapter.outbound.persistence.testkit.failure.PostgreSqlFailureScenario; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/CommitAmbiguityContractTest.java:70: assertThat(PostgreSqlFailureScenario.commitPoints()) src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/CommitAmbiguityContractTest.java:72: PostgreSqlFailureScenario.BEFORE_COMMIT, src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/CommitAmbiguityContractTest.java:73: PostgreSqlFailureScenario.DURING_COMMIT, src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/CommitAmbiguityContractTest.java:74: PostgreSqlFailureScenario.AFTER_SERVER_COMMIT_BEFORE_RESPONSE); 39 PostgreSqlVersion :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/postgresql/PostgreSqlVersion.java src/adapter/outbound/persistence-jpa/build.gradle:244: // PostgreSqlVersion.parseSelection rather than an empty run. src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupportTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.postgresql.PostgreSqlVersion; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupportTest.java:63: .containsExactly(PostgreSqlVersion.PG_17); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/StablePostgreSqlMatrixContractTest.java:7:import dev.caskeleton.adapter.outbound.persistence.testkit.postgresql.PostgreSqlVersion; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/StablePostgreSqlMatrixContractTest.java:31: List selected = JpaPlatformContractSupport.selectedVersions(); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/StablePostgreSqlMatrixContractTest.java:34: for (PostgreSqlVersion version : selected) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/StablePostgreSqlMatrixContractTest.java:50: for (PostgreSqlVersion version : JpaPlatformContractSupport.selectedVersions()) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/StablePostgreSqlMatrixContractTest.java:62: for (PostgreSqlVersion version : JpaPlatformContractSupport.selectedVersions()) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupport.java:6:import dev.caskeleton.adapter.outbound.persistence.testkit.postgresql.PostgreSqlVersion; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupport.java:33: private final PostgreSqlVersion version; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupport.java:51: private JpaPlatformContractSupport(PostgreSqlVersion version, PostgreSQLContainer container) { src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaPlatformContractSupport.java:73: List selected = selectedVersions(); 43 LifecycleParent :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/lifecycle/LifecycleParent.java src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:8:import dev.caskeleton.adapter.outbound.persistence.testkit.lifecycle.LifecycleParent; src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:32: JpaPlatformEntityManagerSupport.open(support, LifecycleParent.class, LifecycleChild.class); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:51: var original = new LifecycleParent("p-1"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:72: var fresh = new LifecycleParent("p-transient"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:87: var parent = new LifecycleParent("p-flush"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:93: LifecycleParent persisted = src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:94: jpa.inTransaction(entityManager -> entityManager.find(LifecycleParent.class, id)); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:104: var parent = new LifecycleParent("p-rollback"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:111: LifecycleParent rolledBack = src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:112: jpa.inTransaction(entityManager -> entityManager.find(LifecycleParent.class, id)); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:122: var parent = new LifecycleParent("p-clear"); src/adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/platform/JpaLifecycleAssociationContractTest.java:129: var managed = entityManager.find(LifecycleParent.class, id); === zero external references === CommitAmbiguityProxy :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/failure/CommitAmbiguityProxy.java PostgreSqlContractExtension :: src/adapter/outbound/persistence-jpa/src/testkit/java/dev/caskeleton/adapter/outbound/persistence/testkit/postgresql/PostgreSqlContractExtension.java