Command: current reachability and history for JpaTransactionConfig / TransactionProfileRegistry / removed declarative retry interceptor Working directory: /shared/codebase/clean-architecture-backend-template Executed at: 2026-08-29T08:05:13Z Source revision: a24ece9cf797f7ea647e33bf846b115208ed1ba5 Observation boundary: Distinguishes a zero-direct-reference Spring configuration reached by component scan from a zero-production-reference registry left after declarative retry interceptor removal. It does not prove external consumers of non-api public classes. --- stdout/stderr --- === JpaTransactionConfig current refs === src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/config/JpaAdapterComponentsConfig.java:51: * same package — {@code JpaTransactionConfig} for {@code JpaTransactionSettings}, {@code src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/transaction/JpaTransactionConfig.java:24:public class JpaTransactionConfig {} === adapter component scan === * the JDBC one — and was registered by nothing but a test calling {@code ctx.register(...)}. So a * single-instance deployment had no {@code DistributedLockPort} at all, and a multi-instance one * could not start: the composition root's own {@code DistributedLockConfig} asks for a bean * qualified {@code jdbcDistributedLock} that only that configuration declares. * *

Each package's {@code @ConfigurationProperties} type is enabled by a configuration inside that * same package — {@code JpaTransactionConfig} for {@code JpaTransactionSettings}, {@code * DistributedLockPersistenceConfig} for {@code LockSettings} — rather than from here. Enabling them * centrally would give {@code config} an edge to {@code lock} and {@code transaction} that the * module map does not grant it, and the map is right: this class knows which packages to scan, not * what is inside them. They need enabling at all because {@code @ConfigurationPropertiesScan} * excludes this tree as deliberately as {@code @ComponentScan} does. */ @Configuration(proxyBeanMethods = false) @ComponentScan( basePackages = { "dev.caskeleton.adapter.outbound.persistence.audit", "dev.caskeleton.adapter.outbound.persistence.failure", "dev.caskeleton.adapter.outbound.persistence.idempotency", "dev.caskeleton.adapter.outbound.persistence.lock", "dev.caskeleton.adapter.outbound.persistence.outbox", "dev.caskeleton.adapter.outbound.persistence.transaction" }) public class JpaAdapterComponentsConfig {} === TransactionProfileRegistry current refs === src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/transaction/TransactionProfileRegistry.java:16:public final class TransactionProfileRegistry { src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/transaction/TransactionProfileRegistry.java:20: public TransactionProfileRegistry(Map profiles) { src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/transaction/TransactionProfileRegistry.java:37: public static TransactionProfileRegistry of(TransactionProfile... profiles) { src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/transaction/TransactionProfileRegistry.java:44: return new TransactionProfileRegistry(byName); src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/transaction/TransactionProfileRegistryTest.java:14: private final TransactionProfileRegistry registry = src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/transaction/TransactionProfileRegistryTest.java:15: TransactionProfileRegistry.of( src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/transaction/TransactionProfileRegistryTest.java:39: TransactionProfileRegistry.of( === removed interceptor history === COMMIT 2f5d2fc21954286213c1474d19935f571ef896ea feat: jpa, messaging, notification, mongo, graphql 어댑터터 구현체 추가 D src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/transaction/RetryableJpaTransactionInterceptor.java D src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/transaction/RetryableJpaTransactionInterceptorTest.java M src/app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/jpa/JpaTransactionAutoConfiguration.java COMMIT 0e61f86eb58512fb117093c359492d2fe2958382 feat(jpa): implement the JPA relational persistence platform A src/adapter/outbound/persistence-jpa/src/main/java/dev/caskeleton/adapter/outbound/persistence/transaction/RetryableJpaTransactionInterceptor.java A src/adapter/outbound/persistence-jpa/src/test/java/dev/caskeleton/adapter/outbound/persistence/transaction/RetryableJpaTransactionInterceptorTest.java A src/app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/jpa/JpaTransactionAutoConfiguration.java Exit code: 0