/** * @param filterConfig The {@link FilterConfig} for initializing this Servlet filter. * @return The {@link HttpTagAndSpanNamingStrategy} that should be used by this instance. Delegates to * {@link #getTagStrategyFromName(String)}, and uses {@link #getDefaultTagStrategy()} as a last resort if * {@link #getTagStrategyFromName(String)} throws an exception. */ protected HttpTagAndSpanNamingStrategy<HttpServletRequest, HttpServletResponse> initializeTagAndNamingStrategy( FilterConfig filterConfig ) { String tagStrategyString = filterConfig.getInitParameter(TAG_AND_SPAN_NAMING_STRATEGY_INIT_PARAM_NAME); try { return getTagStrategyFromName(tagStrategyString); } catch(Throwable t) { logger.warn("Unable to match tagging strategy " + tagStrategyString + ". Using default Zipkin strategy", t); return getDefaultTagStrategy(); } }
@Test public void getDefaultTagStrategy_delegates_to_getZipkinHttpTagStrategy() { // given RequestTracingFilter filterSpy = spy(new RequestTracingFilter()); HttpTagAndSpanNamingStrategy<HttpServletRequest, HttpServletResponse> zipkinStrategyMock = mock(HttpTagAndSpanNamingStrategy.class); doReturn(zipkinStrategyMock).when(filterSpy).getZipkinHttpTagStrategy(); // when HttpTagAndSpanNamingStrategy<HttpServletRequest, HttpServletResponse> result = filterSpy.getDefaultTagStrategy(); // then assertThat(result).isSameAs(zipkinStrategyMock); verify(filterSpy).getDefaultTagStrategy(); }
doReturn(fallbackDefaultStrategyMock).when(filterSpy).getDefaultTagStrategy(); verify(filterSpy).getDefaultTagStrategy(); verify(filterSpy, never()).getDefaultTagStrategy();