public static FactoryBuilder newFactoryBuilder(Propagation.Factory delegate) {
    return new FactoryBuilder(delegate);
  }
@Test void extract_field_multiple_key_names() {
    // switch to case insensitive as this example is about http :P
    request = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);

    BaggageField userId = BaggageField.create("userId");
    BaggageField sessionId = BaggageField.create("sessionId");

    SingleBaggageField userIdConfig = SingleBaggageField.newBuilder(userId)
      .addKeyName("baggage-userId")
      .addKeyName("baggage_userId")
      .build();

    SingleBaggageField sessionIdConfig = SingleBaggageField.newBuilder(sessionId)
      .addKeyName("baggage-sessionId")
      .addKeyName("baggage_sessionId")
      .build();

    factory = newFactoryBuilder(B3Propagation.FACTORY)
      .add(userIdConfig)
      .add(sessionIdConfig)
      .build();
    initialize();

    injector.inject(context, request);
    request.put("baggage-userId", "bob");
    request.put("baggage-sessionId", "12345");

    context = extractor.extract(request).context();

    assertThat(userId.getValue(context)).isEqualTo("bob");
    assertThat(sessionId.getValue(context)).isEqualTo("12345");
  }