WingtipsSpringBoot2WebfluxConfiguration { protected @Nullable HttpTagAndSpanNamingAdapter<ServerWebExchange, ServerHttpResponse> extractTagAndNamingAdapter( WingtipsSpringBoot2WebfluxProperties props ) { String adapterName = props.getServerSideSpanTaggingAdapter(); if (StringUtils.isBlank(adapterName)) { return null; } try { return (HttpTagAndSpanNamingAdapter<ServerWebExchange, ServerHttpResponse>) Class.forName(adapterName).newInstance(); } catch (Exception ex) { logger.warn( "Unable to match tagging adapter \"{}\". " + "Using the default adapter (SpringWebfluxServerRequestTagAdapter)", adapterName, ex ); return null; } } @Autowired  WingtipsSpringBoot2WebfluxConfiguration(WingtipsSpringBoot2WebfluxProperties wingtipsProperties); @Bean @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) WingtipsSpringWebfluxWebFilter wingtipsSpringWebfluxWebFilter(); @Bean WingtipsReactorInitializer reactorInitializer();  }
@UseDataProvider("extractTagAndNamingAdapterScenarioDataProvider") @Test public void extractTagAndNamingAdapter_works_as_expected( ExtractTagAndNamingAdapterScenario scenario ) { WingtipsSpringBoot2WebfluxProperties props = generateProps( false, null, null, null, scenario.adapterName, false ); WingtipsSpringBoot2WebfluxConfiguration conf = new WingtipsSpringBoot2WebfluxConfiguration(props); HttpTagAndSpanNamingAdapter<ServerWebExchange, ServerHttpResponse> result = conf.extractTagAndNamingAdapter(props); if (scenario.expectedResultClass == null) { assertThat(result).isNull(); } else { assertThat(result).isNotNull(); assertThat(result.getClass()).isEqualTo(scenario.expectedResultClass); } }