# 이 leaf 가 담은 파일과 줄 수
  main     CloudEventExtensions.java        24 줄
  main     CloudEventMapper.java            33 줄
  main     DefaultCloudEventMapper.java     171 줄
  test     CloudEventMappingTest.java       162 줄

# 출하 산출물에 들어간다는 것을 무엇이 말하는가
  modules.json  runtime_memberships=['app-bootstrap']
  messaging-spring-boot-starter/build.gradle:24     // Wired by the auto-configurations and never named in an adopter's source.
  messaging-spring-boot-starter/build.gradle:25     implementation project(':messaging:messaging-schema-json')
  messaging-spring-boot-starter/build.gradle:26     implementation project(':messaging:messaging-cloudevents')
  app-bootstrap/build/architecture/runtime-project-closure.txt:18:messaging-cloudevents
  app-bootstrap/gradle.lockfile:101:io.cloudevents:cloudevents-api:4.0.1=productionRuntimeClasspath,runtimeClasspath,sampleOffTestRuntimeClasspath,testRuntimeClasspath
  app-bootstrap/gradle.lockfile:102:io.cloudevents:cloudevents-core:4.0.1=productionRuntimeClasspath,runtimeClasspath,sampleOffTestRuntimeClasspath,testRuntimeClasspath

# DefaultCloudEventMapper 를 만드는 자리, 그리고 계약 타입을 참조하는 main 파일
  test · CloudEventMappingTest.java:30   private final DefaultCloudEventMapper mapper = new DefaultCloudEventMapper();
  messaging/messaging-cloudevents/src/main/java/dev/caskeleton/messaging/cloudevents/CloudEventExtensions.java
  messaging/messaging-cloudevents/src/main/java/dev/caskeleton/messaging/cloudevents/CloudEventMapper.java
  messaging/messaging-cloudevents/src/main/java/dev/caskeleton/messaging/cloudevents/DefaultCloudEventMapper.java

# CloudEvent 라는 이름을 main 자바 소스 전체에서 찾으면
  messaging/messaging-cloudevents/src/main/java/dev/caskeleton/messaging/cloudevents/CloudEventExtensions.java
  messaging/messaging-cloudevents/src/main/java/dev/caskeleton/messaging/cloudevents/CloudEventMapper.java
  messaging/messaging-cloudevents/src/main/java/dev/caskeleton/messaging/cloudevents/DefaultCloudEventMapper.java
  설정 클래스 계수 :
    이름이 *AutoConfiguration.java 인 main 클래스 : 36
    @Configuration 을 단 main 클래스              : 176
    AutoConfiguration.imports 등재 클래스          : 14
  그 어느 집합에서도 CloudEvent 를 언급하는 것 : 0 (위 main 전수 목록이 leaf 세 파일뿐이므로)
  META-INF/services 파일 수 : 0

# 원문이 28 로 적은 수의 출처
  starter autoconfigure 패키지 파일 수 : 28
  그중 이름이 *AutoConfiguration 인 것 : 6

# 매핑의 반대편 — CanonicalEnvelopeHeaders 를 쓰는 main 코드와 그 성격
  main · KafkaHeaderMapper.java:90               if (CanonicalEnvelopeHeaders.restatesEnvelopeField(name.value())) {
  main · KafkaHeaderMapper.java:141       if (CanonicalEnvelopeHeaders.restatesEnvelopeField(header.key())) {
  main · RabbitHeaderMapper.java:102               if (CanonicalEnvelopeHeaders.restatesEnvelopeField(name.value())) {
  main · RabbitHeaderMapper.java:158               if (value != null && !CanonicalEnvelopeHeaders.restatesEnvelopeField(name)) {
  그 넷은 값을 싣는 곳이 아니라 거절·건너뛰기 판정이다 :
  KafkaHeaderMapper.java:88         .forEach(
  KafkaHeaderMapper.java:89             (name, value) -> {
  KafkaHeaderMapper.java:90               if (CanonicalEnvelopeHeaders.restatesEnvelopeField(name.value())) {
  KafkaHeaderMapper.java:91                 throw new dev.caskeleton.messaging.api.error.MessagingConfigurationException(
  KafkaHeaderMapper.java:92                     "RESERVED_HEADER_FORGED",
  실제로 헤더를 싣는 줄은 따로 있다 :
  KafkaHeaderMapper.java:36     put(headers, ReservedHeaders.MESSAGE_ID, envelope.messageId().value().toString());
  KafkaHeaderMapper.java:37     put(headers, ReservedHeaders.MESSAGE_TYPE, envelope.messageType().value());
  KafkaHeaderMapper.java:42     put(headers, ReservedHeaders.PRODUCER, envelope.producer().value());
  KafkaHeaderMapper.java:43     put(headers, ReservedHeaders.PRODUCED_AT, envelope.producedAt().toString());
  KafkaHeaderMapper.java:44     put(headers, ReservedHeaders.CONTENT_TYPE, envelope.contentType().value());

# 그 네 호출 중 조립되는 경로에 있는 것
  main · KafkaDeliveryMapper.java:42     this(new KafkaHeaderMapper());
  main · KafkaPublishMapper.java:34     this(new KafkaHeaderMapper());
  test · KafkaEnvelopeRoundTripTest.java:39   private final KafkaHeaderMapper headerMapper = new KafkaHeaderMapper();
  test · KafkaHeaderMapperTest.java:27   private final KafkaHeaderMapper mapper = new KafkaHeaderMapper();
  test · ReservedHeaderForgeryTest.java:36   private final KafkaHeaderMapper mapper = new KafkaHeaderMapper();
  main · RabbitDeliveryMapper.java:41     this(new RabbitHeaderMapper());
  main · RabbitPublishMapper.java:22     this(new RabbitHeaderMapper());
  test · RabbitEnvelopeRoundTripTest.java:43   private final RabbitHeaderMapper headerMapper = new RabbitHeaderMapper();
  test · RabbitRuntimeTest.java:126     RabbitHeaderMapper headers = new RabbitHeaderMapper();
  test · RabbitRuntimeTest.java:140     RabbitHeaderMapper headers = new RabbitHeaderMapper();
  test · RabbitRuntimeTest.java:231             new RabbitHeaderMapper().toProperties(envelope(new byte[] {1})));
  그 위의 transport 를 만드는 main 코드 :
  main · KafkaMessagingAutoConfiguration.java:168     return new dev.caskeleton.messaging.kafka.KafkaMessagingTransport("kafka", 1L, producer);
    RabbitMessagingTransport : main 생성 0 건

# 상호운용을 약속한 문서와, 약속이 없는 문서
  35:| CloudEvents | Domain·Integration Event에 선택 가능한 1.0.2 compatible profile을 제공한다. |
  756:## 15. CloudEvents Profile
  docs/messaging/support-matrix.md               CloudEvents 언급 0 건
  docs/messaging/configuration-reference.md      CloudEvents 언급 0 건
