# Tier 열거값 셋과 EXTENSION 의 뜻 CompatibilityMatrix.java:23 public enum Tier { CompatibilityMatrix.java:24 /** Passes the shared adapter contract unchanged. */ CompatibilityMatrix.java:25 STABLE, CompatibilityMatrix.java:26 CompatibilityMatrix.java:27 /** Contract coverage is still being proven; disabled by default. */ CompatibilityMatrix.java:28 EXPERIMENTAL, CompatibilityMatrix.java:29 CompatibilityMatrix.java:30 /** Adapter SPI only; outside the supported set. */ CompatibilityMatrix.java:31 EXTENSION CompatibilityMatrix.java:32 } # 표 밖에 있는 bridge leaf messaging-spring-cloud-stream-bridge main 6 파일 · 507 줄 modules.json messaging-spring-cloud-stream-bridge runtime_memberships=[] ENTRIES 에 bridge 이름이 있는가 : 0 # Entry 가 요구하는 것 — bridge 가 이 표의 행이 될 수 있는가 CompatibilityMatrix.java:66 Objects.requireNonNull(brokerVersions, "brokerVersions must not be null"); CompatibilityMatrix.java:67 if (adapter == null || adapter.isBlank()) { CompatibilityMatrix.java:68 throw new IllegalArgumentException("adapter must not be blank"); CompatibilityMatrix.java:69 } CompatibilityMatrix.java:70 if (brokerVersions.isEmpty()) { CompatibilityMatrix.java:71 throw new IllegalArgumentException("an adapter must certify at least one broker version"); CompatibilityMatrix.java:72 } CompatibilityMatrix.java:73 brokerVersions = List.copyOf(brokerVersions); CompatibilityMatrix.java:74 } CompatibilityMatrix.java:60 public boolean hasLiveBrokerCertification() { # 미등록 이름을 조용히 지원으로 두지 않는 장치 CompatibilityMatrix.java:68 throw new IllegalArgumentException("adapter must not be blank"); CompatibilityMatrix.java:71 throw new IllegalArgumentException("an adapter must certify at least one broker version"); CompatibilityMatrix.java:126 public static Entry of(String adapter) { CompatibilityMatrix.java:129 throw new IllegalArgumentException("adapter is not in the compatibility matrix: " + adapter); test · CompatibilityMatrixTest.java:83 void anUnknownAdapterIsNotSilentlyTreatedAsSupported() { 그 시험이 미등록 이름의 예로 쓰는 것, 그리고 of 를 부르는 main 코드 : test · CompatibilityMatrixTest.java:84 assertThatThrownBy(() -> CompatibilityMatrix.of("messaging-artemis")) test · CompatibilityMatrixTest.java:122 "messaging-artemis", List.of("2.42"), CompatibilityMatrix.Tier.STABLE, true, false); test · CrossBrokerContractSuite.java:118 assertThat(matrix.coverageOf("messaging-artemis", NetworkFaultScenario.CONFIRM_TIMEOUT)) CompatibilityMatrix 를 자기 파일 밖에서 쓰는 main 코드 : 0 건 # ENTRIES 다섯 항목이 각각 어떤 Tier 인가 CompatibilityMatrix.java:85 new Entry("messaging-kafka", List.of("4.1"), Tier.STABLE, true, true), CompatibilityMatrix.java:92 new Entry("messaging-rabbit", List.of("4.3"), Tier.EXPERIMENTAL, true, false), CompatibilityMatrix.java:97 Tier.EXPERIMENTAL, CompatibilityMatrix.java:104 Tier.EXPERIMENTAL, CompatibilityMatrix.java:109 "messaging-nats-experimental", List.of("2.14"), Tier.EXPERIMENTAL, false, false)); ENTRIES 안에서 Tier.STABLE 를 쓴 횟수 : 1 ENTRIES 안에서 Tier.EXPERIMENTAL 를 쓴 횟수 : 4 ENTRIES 안에서 Tier.EXTENSION 를 쓴 횟수 : 0 # 운영자용 문서에는 등급 표가 둘이다 docs/messaging/support-matrix.md:29:## 브로커 등급 docs/messaging/support-matrix.md:66:## 기능 등급 브로커 등급 표의 Extension 행 : docs/messaging/support-matrix.md:37:| Artemis/JMS | Extension | 범위 밖 | adapter SPI만 | 별도 ADR + Contract Suite 통과 필요 | 그 문서가 이 leaf 를 언급하는 줄 (대소문자·구분자 무관) : docs/messaging/support-matrix.md:78:| Spring Cloud Stream bridge | Optional | # bridge 가 무엇이라고 스스로 적는가 MessagingBindingBridge.java:8 *
The bridge is an interoperability seam, not a second messaging API. Its whole reason to exist StreamBridgePolicyGuard.java:17 * must go through the native adapter, where those are actually enforced. StreamBridgePolicyGuard.java:30 if (!enabled) { StreamBridgePolicyGuard.java:32 "STREAM_BRIDGE_DISABLED", StreamBridgePolicyGuard.java:36 if (profile.isOrdered()) { StreamBridgePolicyGuard.java:38 "STREAM_BRIDGE_ORDERING_UNSUPPORTED", StreamBridgePolicyGuard.java:39 "an ordered destination must use the native adapter: " + profile.name().value()); StreamBridgePolicyGuard.java:41 if (profile.retry().mode() != dev.caskeleton.messaging.policy.RetryMode.NONE) { StreamBridgePolicyGuard.java:43 "STREAM_BRIDGE_RETRY_UNSUPPORTED", StreamBridgePolicyGuard.java:44 "the bridge does not apply the platform retry policy: " + profile.name().value()); StreamBridgePolicyGuard.java:46 if (profile.deadLetter().enabled()) { StreamBridgePolicyGuard.java:48 "STREAM_BRIDGE_DLQ_UNSUPPORTED", StreamBridgePolicyGuard.java:49 "the bridge does not apply confirmed dead lettering: " + profile.name().value());