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.
 *
 * <p>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<String, TransactionProfile> 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
