./sample-portfolio/src/main/java/dev/caskeleton/sample/portfolio/bootstrap/persistence/SamplePostgreSqlPersistenceConfig.java:3:import dev.caskeleton.adapter.outbound.persistence.config.PersistenceJpaConfig; ./sample-portfolio/src/main/java/dev/caskeleton/sample/portfolio/bootstrap/persistence/SamplePostgreSqlPersistenceConfig.java:25:@Import(PersistenceJpaConfig.class) ./adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlDefaultPersistenceUnitIntegrationTest.java:6:import dev.caskeleton.adapter.outbound.persistence.config.PersistenceJpaConfig; ./adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlDefaultPersistenceUnitIntegrationTest.java:33: *

The scanned packages are read from {@link PersistenceJpaConfig} rather than listed here, so a ./adapter/outbound/persistence-jpa/src/postgresqlIntegrationTest/java/dev/caskeleton/adapter/outbound/persistence/readiness/PostgreSqlDefaultPersistenceUnitIntegrationTest.java:84: PersistenceJpaConfig.class.getAnnotation(EntityScan.class).basePackages()); ./adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/config/PersistenceEntityScanCoverageTest.java:46: PersistenceJpaConfig.OPT_IN_NOTIFICATION_PACKAGE, ./adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/config/PersistenceEntityScanCoverageTest.java:50: PersistenceJpaConfig.OPT_IN_FILESERVER_PACKAGE, ./adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/config/PersistenceEntityScanCoverageTest.java:67: Set declared = new TreeSet<>(scannedLeafNames(PersistenceJpaConfig.class)); ./adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/config/PersistenceEntityScanCoverageTest.java:75: .as("a new sub-package must be added to PersistenceJpaConfig or declared exempt here") ./adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/config/PersistenceEntityScanCoverageTest.java:89: List.of(PersistenceJpaConfig.class.getAnnotation(EntityScan.class).basePackages()); ./adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/config/PersistenceEntityScanCoverageTest.java:92: PersistenceJpaConfig.class.getAnnotation(EnableJpaRepositories.class).basePackages()); ./adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/config/PersistenceJpaConfig.java:84:public class PersistenceJpaConfig { ./adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/postgresql/PostgreSqlPersistenceConfig.java:4:import dev.caskeleton.adapter.outbound.persistence.config.PersistenceJpaConfig; ./adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/postgresql/PostgreSqlPersistenceConfig.java:37:@Import(PersistenceJpaConfig.class) ./adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/notification/NotificationJpaPersistenceConfig.java:11: *

Separate from {@code PersistenceJpaConfig} because the capability is genuinely optional: its ./adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/notification/configuration/NotificationJpaPersistenceFacade.java:76: * unconditionally by {@code PersistenceJpaConfig}, and the schema stream — which lives outside the ./adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/h2/H2PersistenceConfig.java:3:import dev.caskeleton.adapter.outbound.persistence.config.PersistenceJpaConfig; ./adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/h2/H2PersistenceConfig.java:45:@Import(PersistenceJpaConfig.class)