use of org.springframework.boot.web.servlet.context.AnnotationConfigServletWebApplicationContext in project spring-boot by spring-projects.
the class RemoteDevToolsAutoConfigurationTests method getContext.
private AnnotationConfigServletWebApplicationContext getContext(Supplier<AnnotationConfigServletWebApplicationContext> supplier) throws Exception {
AtomicReference<AnnotationConfigServletWebApplicationContext> atomicReference = new AtomicReference<>();
Thread thread = new Thread(() -> {
AnnotationConfigServletWebApplicationContext context = supplier.get();
atomicReference.getAndSet(context);
});
thread.start();
thread.join();
return atomicReference.get();
}
use of org.springframework.boot.web.servlet.context.AnnotationConfigServletWebApplicationContext in project spring-boot by spring-projects.
the class RemoteDevToolsAutoConfigurationTests method securityConfigurationWhenWebSecurityConfigurerAdapterIsFound2.
@Test
void securityConfigurationWhenWebSecurityConfigurerAdapterIsFound2() throws Exception {
this.context = getContext(() -> {
AnnotationConfigServletWebApplicationContext context = new AnnotationConfigServletWebApplicationContext();
context.setServletContext(new MockServletContext());
context.register(Config.class, PropertyPlaceholderAutoConfiguration.class, TestWebSecurityConfigurerAdapter.class);
TestPropertyValues.of("spring.devtools.remote.secret:supersecret").applyTo(context);
context.refresh();
return context;
});
DispatcherFilter filter = this.context.getBean(DispatcherFilter.class);
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context).apply(springSecurity()).addFilter(filter).build();
mockMvc.perform(MockMvcRequestBuilders.get(DEFAULT_CONTEXT_PATH + "/restart").header(DEFAULT_SECRET_HEADER_NAME, "supersecret")).andExpect(status().isOk());
assertRestartInvoked(true);
}
use of org.springframework.boot.web.servlet.context.AnnotationConfigServletWebApplicationContext in project spring-boot by spring-projects.
the class RemoteDevToolsAutoConfigurationTests method loadContext.
private AnnotationConfigServletWebApplicationContext loadContext(String... properties) {
AnnotationConfigServletWebApplicationContext context = new AnnotationConfigServletWebApplicationContext();
context.setServletContext(new MockServletContext());
context.register(Config.class, PropertyPlaceholderAutoConfiguration.class);
TestPropertyValues.of(properties).applyTo(context);
context.refresh();
return context;
}
use of org.springframework.boot.web.servlet.context.AnnotationConfigServletWebApplicationContext in project spring-boot by spring-projects.
the class SpringBootMockMvcBuilderCustomizerTests method customizeShouldAddFilters.
@Test
@SuppressWarnings("unchecked")
void customizeShouldAddFilters() {
AnnotationConfigServletWebApplicationContext context = new AnnotationConfigServletWebApplicationContext();
MockServletContext servletContext = new MockServletContext();
context.setServletContext(servletContext);
context.register(ServletConfiguration.class, FilterConfiguration.class);
context.refresh();
DefaultMockMvcBuilder builder = MockMvcBuilders.webAppContextSetup(context);
this.customizer = new SpringBootMockMvcBuilderCustomizer(context);
this.customizer.customize(builder);
FilterRegistrationBean<?> registrationBean = (FilterRegistrationBean<?>) context.getBean("filterRegistrationBean");
Filter testFilter = (Filter) context.getBean("testFilter");
Filter otherTestFilter = registrationBean.getFilter();
List<Filter> filters = (List<Filter>) ReflectionTestUtils.getField(builder, "filters");
assertThat(filters).containsExactlyInAnyOrder(testFilter, otherTestFilter);
}
use of org.springframework.boot.web.servlet.context.AnnotationConfigServletWebApplicationContext in project spring-boot by spring-projects.
the class SpringBootMockMvcBuilderCustomizerTests method whenCalledInParallelDeferredLinesWriterSeparatesOutputByThread.
@Test
void whenCalledInParallelDeferredLinesWriterSeparatesOutputByThread() throws Exception {
AnnotationConfigServletWebApplicationContext context = new AnnotationConfigServletWebApplicationContext();
MockServletContext servletContext = new MockServletContext();
context.setServletContext(servletContext);
context.register(ServletConfiguration.class, FilterConfiguration.class);
context.refresh();
CapturingLinesWriter delegate = new CapturingLinesWriter();
new DeferredLinesWriter(context, delegate);
CountDownLatch latch = new CountDownLatch(10);
for (int i = 0; i < 10; i++) {
Thread thread = new Thread(() -> {
for (int j = 0; j < 1000; j++) {
DeferredLinesWriter writer = DeferredLinesWriter.get(context);
writer.write(Arrays.asList("1", "2", "3", "4", "5"));
writer.writeDeferredResult();
writer.clear();
}
latch.countDown();
});
thread.start();
}
latch.await(60, TimeUnit.SECONDS);
assertThat(delegate.allWritten).hasSize(10000);
assertThat(delegate.allWritten).allSatisfy((written) -> assertThat(written).containsExactly("1", "2", "3", "4", "5"));
}
Aggregations