--- the condition chain 18:import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; 50: public OutboxProperties outboxProperties() { 62: public OutboxRetryScheduler outboxRetryScheduler(OutboxProperties properties) { 81: @ConditionalOnBean({OutboxRepository.class, OutboxEnvelopeFactory.class}) 83: public OutboxRelay outboxRelay( 106: @ConditionalOnBean(OutboxRelay.class) 108: public OutboxRelayWorker outboxRelayWorker(OutboxRelay relay, OutboxRetryScheduler scheduler) { 123: @ConditionalOnBean(OutboxRelayWorker.class) 125: public MessagingOutboxRelayLifecycle outboxRelayLifecycle( 138: @ConditionalOnBean(OutboxRepository.class) 140: public OutboxCleanupJob outboxCleanupJob(OutboxRepository outbox, OutboxProperties properties) { 155: public InboxRetentionPolicy inboxRetentionPolicy() { 167: @ConditionalOnBean(InboxRepository.class) 169: public InboxCleanupJob inboxCleanupJob(InboxRepository inbox, InboxRetentionPolicy policy) { --- main references to the only implementations of the two root ports $n mainRefs=$(grep -rlw $n --include=*.java src/*/src/main src/*/*/src/main src/messaging/*/src/main 2>/dev/null | grep -v /$n[.]java$ | wc -l) $n mainRefs=$(grep -rlw $n --include=*.java src/*/src/main src/*/*/src/main src/messaging/*/src/main 2>/dev/null | grep -v /$n[.]java$ | wc -l) --- the same starter DOES provide a default for another port 360: @ConditionalOnMissingBean(dev.caskeleton.messaging.schema.MessageCodecRegistry.class) 361- public dev.caskeleton.messaging.runtime.RegisteredMessageCodecs messagingCodecs( 362- ObjectProvider contracts) { 363- return dev.caskeleton.messaging.runtime.RegisteredMessageCodecs.of( 364- dev.caskeleton.messaging.schema.json.JacksonMessageCodec.of(