/** * 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(); }
private void invokeSafeOnEndRequest(ServletRequest req, ServletResponse res, boolean inProgress) { try { if (isInitialized && inProgress) { webModulesContainer.invokeOnEndRequest(req, res); } } catch (Exception e) { InternalLogger.INSTANCE.error( "Failed to invoke OnEndRequest on telemetry modules with the following exception: %s", ExceptionUtils.getStackTrace(e)); } }
@Before public void testInitialize() { container = new WebModulesContainer(TelemetryConfiguration.getActive()); }
private boolean invokeSafeOnBeginRequest(ServletRequest req, ServletResponse res) { if (!isInitialized) { return false; } boolean success = true; try { RequestTelemetryContext context = new RequestTelemetryContext(new Date().getTime(), (HttpServletRequest) req); ThreadContext.setRequestTelemetryContext(context); webModulesContainer.invokeOnBeginRequest(req, res); } catch (Exception e) { InternalLogger.INSTANCE.error( "Failed to invoke OnBeginRequest on telemetry modules with the following exception: %s", ExceptionUtils.getStackTrace(e)); success = false; } return success; }
@Test public void testAllTelemetryModulesAreLoaded() { Assert.assertEquals(3, container.getModulesCount()); }
/** * Initializes the filter from the given config. * * @param config The filter configuration. */ public void init(FilterConfig config) { try { String appName = extractAppName(config.getServletContext()); initializeAgentIfAvailable(config); TelemetryConfiguration configuration = TelemetryConfiguration.getActive(); if (configuration == null) { InternalLogger.INSTANCE.error( "Java SDK configuration cannot be null. Web request tracking filter will be disabled."); return; } configureWebAppNameContextInitializer(appName, configuration); telemetryClient = new TelemetryClient(configuration); webModulesContainer = new WebModulesContainer(configuration); if (StringUtils.isNotEmpty(config.getFilterName())) { this.filterName = config.getFilterName(); } isInitialized = true; } catch (Exception e) { String filterName = this.getClass().getSimpleName(); InternalLogger.INSTANCE.info( "Application Insights filter %s has been failed to initialized.\n" + "Web request tracking filter will be disabled. Exception: %s", filterName, ExceptionUtils.getStackTrace(e)); } }
private boolean invokeSafeOnBeginRequest(ServletRequest req, ServletResponse res) { if (!isInitialized) { return false; } boolean success = true; try { RequestTelemetryContext context = new RequestTelemetryContext(new Date().getTime(), (HttpServletRequest) req); ThreadContext.setRequestTelemetryContext(context); webModulesContainer.invokeOnBeginRequest(req, res); } catch (Exception e) { InternalLogger.INSTANCE.error( "Failed to invoke OnBeginRequest on telemetry modules with the following exception: %s", ExceptionUtils.getStackTrace(e)); success = false; } return success; }
@Test public void testFilterInitializedSuccessfullyFromConfiguration() throws ServletException { Filter filter = createInitializedFilter(); WebModulesContainer container = ServletUtils.getWebModuleContainer(filter); assertNotNull("Container shouldn't be null", container); Assert.assertTrue("Modules container shouldn't be empty", container.getModulesCount() > 0); }
/** * Initializes the filter from the given config. * * @param config The filter configuration. */ public void init(FilterConfig config) { try { String appName = extractAppName(config.getServletContext()); initializeAgentIfAvailable(config); TelemetryConfiguration configuration = TelemetryConfiguration.getActive(); if (configuration == null) { InternalLogger.INSTANCE.error( "Java SDK configuration cannot be null. Web request tracking filter will be disabled."); return; } configureWebAppNameContextInitializer(appName, configuration); telemetryClient = new TelemetryClient(configuration); webModulesContainer = new WebModulesContainer(configuration); if (StringUtils.isNotEmpty(config.getFilterName())) { this.filterName = config.getFilterName(); } isInitialized = true; } catch (Exception e) { String filterName = this.getClass().getSimpleName(); InternalLogger.INSTANCE.info( "Application Insights filter %s has been failed to initialized.\n" + "Web request tracking filter will be disabled. Exception: %s", filterName, ExceptionUtils.getStackTrace(e)); } }
@Test public void testFiltersChainWhenExceptionIsThrownOnModulesInvocation() throws Exception { Filter filter = createInitializedFilter(); // mocking WebModulesContainer containerMock = ServletUtils.setMockWebModulesContainer(filter); Mockito.doAnswer(new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { throw new Exception("FATAL!"); } }).when(containerMock).invokeOnBeginRequest(any(ServletRequest.class), any(ServletResponse.class)); FilterChain chain = mock(FilterChain.class); ServletRequest request = ServletUtils.generateDummyServletRequest(); // execute filter.doFilter(request, ServletUtils.generateDummyServletResponse(), chain); // validate verify(chain).doFilter(any(ServletRequest.class), any(ServletResponse.class)); }
/** * 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(); }
private void invokeSafeOnEndRequest(ServletRequest req, ServletResponse res, boolean inProgress) { try { if (isInitialized && inProgress) { webModulesContainer.invokeOnEndRequest(req, res); } } catch (Exception e) { InternalLogger.INSTANCE.error( "Failed to invoke OnEndRequest on telemetry modules with the following exception: %s", ExceptionUtils.getStackTrace(e)); } }