/** * Destroy the filter by releases resources. */ public void destroy() { cleanup(); }
/** * Helper method to retrieve Tracestate from ThreadLocal * @return */ public static String retriveTracestate() { //check if context is null - no correlation will happen if (ThreadContext.getRequestTelemetryContext() == null || ThreadContext.getRequestTelemetryContext(). getTracestate() == null) { InternalLogger.INSTANCE.warn("No correlation wil happen, Thread context is null"); return null; } Tracestate tracestate = ThreadContext.getRequestTelemetryContext().getTracestate(); return tracestate.toString(); }
/** * Retrieves the currently stored correlation context from the request context. * @return The correlation context as a string. */ public static String retrieveCorrelationContext() { //check if context is null - no correlation will happen if (ThreadContext.getRequestTelemetryContext() == null) { InternalLogger.INSTANCE.warn("No correlation wil happen, Thread context is null"); return ""; } CorrelationContext context = ThreadContext.getRequestTelemetryContext().getCorrelationContext(); return context.toString(); }
private void validate() { long currentTicks = ThreadContext.getRequestTelemetryContext().getRequestStartTimeTicks(); Assert.assertEquals("Found a thread with unexpected value.", startTicks, currentTicks); } }
@Override public void run() { RequestTelemetryContext context = new RequestTelemetryContext(startTicks); ThreadContext.setRequestTelemetryContext(context); validate(); }
private void cleanup() { try { ThreadContext.remove(); setKeyOnTLS(null); for (ThreadLocalCleaner cleaner : cleaners) { cleaner.clean(); } } catch (ThreadDeath td) { throw td; } catch (Throwable t) { } }
@Override public void run() { context[0] = ThreadContext.getRequestTelemetryContext(); } });
@Test public void testReset() throws IOException { wrapperUnderTest.setStatus(HttpServletResponse.SC_CONFLICT); wrapperUnderTest.reset(); verifyStatus(HttpServletResponse.SC_OK); }
@Test public void testSendError() throws IOException { wrapperUnderTest.sendError(HttpServletResponse.SC_BAD_REQUEST); verifyStatus(HttpServletResponse.SC_BAD_REQUEST); }
/** * Constructs new WebModulesContainer object from the given configuration. * @param configuration The configuration to take the web modules from. */ public WebModulesContainer(TelemetryConfiguration configuration) { buildWebModules(configuration); this.modulesCount = modules.size(); }
@Test public void testSendRedirect() throws IOException { wrapperUnderTest.sendRedirect("some location"); verifyStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); }
@Test public void testSetStatus() { wrapperUnderTest.setStatus(HttpServletResponse.SC_BAD_GATEWAY); verifyStatus(HttpServletResponse.SC_BAD_GATEWAY); }
private FilterAndTelemetryClientMock createInitializedFilterWithExposedTelemetryClient() throws Exception { Filter filter = createInitializedFilter(); Field field = WebRequestTrackingFilter.class.getDeclaredField("telemetryClient"); field.setAccessible(true); return new FilterAndTelemetryClientMock(filter, (TelemetryClient) field.get(filter)); } // endregion Private methods
private FilterAndTelemetryClientMock createInitializedFilterWithTelemetryClientThatThrows() throws ServletException, NoSuchFieldException, IllegalAccessException { return createInitializedFilterWithMockTelemetryClient(true, true); }
/** * Retrieves the currently stored correlation context from the request context. * @return The correlation context as a string. */ public static String retrieveCorrelationContext() { //check if context is null - no correlation will happen if (ThreadContext.getRequestTelemetryContext() == null) { InternalLogger.INSTANCE.warn("No correlation wil happen, Thread context is null"); return ""; } CorrelationContext context = ThreadContext.getRequestTelemetryContext().getCorrelationContext(); return context.toString(); }
private void cleanup() { try { ThreadContext.remove(); setKeyOnTLS(null); for (ThreadLocalCleaner cleaner : cleaners) { cleaner.clean(); } } catch (ThreadDeath td) { throw td; } catch (Throwable t) { } }
/** * Destroy the filter by releases resources. */ public void destroy() { cleanup(); }
@Test public void testSendErrorWithMessage() throws IOException { final String errorMessage = "FATAL!"; wrapperUnderTest.sendError(HttpServletResponse.SC_BAD_REQUEST, errorMessage); verifyStatus(HttpServletResponse.SC_BAD_REQUEST); }
private FilterAndTelemetryClientMock createInitializedFilterWithoutTelemetryClient() throws ServletException, NoSuchFieldException, IllegalAccessException { return createInitializedFilterWithMockTelemetryClient(false, false); }
private FilterAndTelemetryClientMock createInitializedFilterWithTelemetryClient() throws ServletException, NoSuchFieldException, IllegalAccessException { return createInitializedFilterWithMockTelemetryClient(true, false); }