use of io.undertow.servlet.api.ServletContainer in project undertow by undertow-io.
the class SuspendResumeTestCase method setUp.
@BeforeClass
public static void setUp() {
final ServletContainer container = ServletContainer.Factory.newInstance();
DeploymentInfo builder = new DeploymentInfo().setClassLoader(TestMessagesReceivedInOrder.class.getClassLoader()).setContextPath("/").setResourceManager(new TestResourceLoader(TestMessagesReceivedInOrder.class)).setClassIntrospecter(TestClassIntrospector.INSTANCE).addServletContextAttribute(WebSocketDeploymentInfo.ATTRIBUTE_NAME, new WebSocketDeploymentInfo().setBuffers(DefaultServer.getBufferPool()).setWorker(DefaultServer.getWorker()).addListener(c -> serverContainer = c).addEndpoint(SuspendResumeEndpoint.class)).setDeploymentName("servletContext.war");
deploymentManager = container.addDeployment(builder);
deploymentManager.deploy();
try {
DefaultServer.setRootHandler(Handlers.path().addPrefixPath("/", deploymentManager.start()));
} catch (ServletException e) {
e.printStackTrace();
}
}
use of io.undertow.servlet.api.ServletContainer in project undertow by undertow-io.
the class DynamicEndpointTest method setup.
@BeforeClass
public static void setup() throws Exception {
final ServletContainer container = ServletContainer.Factory.newInstance();
DeploymentInfo builder = new DeploymentInfo().setClassLoader(DynamicEndpointTest.class.getClassLoader()).setContextPath("/ws").setResourceManager(new TestResourceLoader(DynamicEndpointTest.class)).setClassIntrospecter(TestClassIntrospector.INSTANCE).addServlet(Servlets.servlet("upgrade", DoUpgradeServlet.class).addMapping("/*")).addServletContextAttribute(WebSocketDeploymentInfo.ATTRIBUTE_NAME, new WebSocketDeploymentInfo().setBuffers(DefaultServer.getBufferPool()).setWorker(DefaultServer.getWorkerSupplier()).addListener(containerReady -> deployment = containerReady)).setDeploymentName("servletContext.war");
deploymentManager = container.addDeployment(builder);
deploymentManager.deploy();
DefaultServer.setRootHandler(Handlers.path().addPrefixPath("/ws", deploymentManager.start()));
}
use of io.undertow.servlet.api.ServletContainer in project undertow by undertow-io.
the class JsrWebsocketExtensionTestCase method setup.
@BeforeClass
public static void setup() throws Exception {
final ServletContainer container = ServletContainer.Factory.newInstance();
DeploymentInfo builder = new DeploymentInfo().setClassLoader(BinaryEndpointTest.class.getClassLoader()).setContextPath("/").setClassIntrospecter(TestClassIntrospector.INSTANCE).addServletContextAttribute(WebSocketDeploymentInfo.ATTRIBUTE_NAME, new WebSocketDeploymentInfo().setDispatchToWorkerThread(true).setBuffers(DefaultServer.getBufferPool()).setWorker(DefaultServer.getWorkerSupplier()).addExtension(new PerMessageDeflateHandshake()).addEndpoint(AutobahnAnnotatedEndpoint.class)).setDeploymentName("servletContext.war");
deploymentManager = container.addDeployment(builder);
deploymentManager.deploy();
debug = new DebugExtensionsHeaderHandler(deploymentManager.start());
DefaultServer.setRootHandler(debug);
}
use of io.undertow.servlet.api.ServletContainer in project undertow by undertow-io.
the class ServletMetricsHandlerTestCase method testMetrics.
@Test
public void testMetrics() throws Exception {
final TestMetricsCollector metricsCollector = new TestMetricsCollector();
CompletionLatchHandler completionLatchHandler;
final PathHandler root = new PathHandler();
final ServletContainer container = ServletContainer.Factory.newInstance();
DeploymentInfo builder = new DeploymentInfo().setClassIntrospecter(TestClassIntrospector.INSTANCE).setClassLoader(ServletPathMappingTestCase.class.getClassLoader()).setContextPath("/servletContext").setDeploymentName("servletContext.war").setResourceManager(new TestResourceLoader(DefaultServletTestCase.class));
builder.addServlet(new ServletInfo("MetricTestServlet", MetricTestServlet.class).addMapping("/path/default"));
builder.addFilter(new FilterInfo("Filter", HelloFilter.class));
builder.addFilterUrlMapping("Filter", "/filterpath/*", DispatcherType.REQUEST);
builder.setMetricsCollector(metricsCollector);
DeploymentManager manager = container.addDeployment(builder);
manager.deploy();
root.addPrefixPath(builder.getContextPath(), manager.start());
DefaultServer.setRootHandler(completionLatchHandler = new CompletionLatchHandler(root));
HttpGet get = new HttpGet(DefaultServer.getDefaultServerURL() + "/servletContext/path/default");
TestHttpClient client = new TestHttpClient();
try {
HttpResponse result = client.execute(get);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
Assert.assertTrue(HttpClientUtils.readResponse(result).contains("metric"));
completionLatchHandler.await();
completionLatchHandler.reset();
MetricsHandler.MetricResult metrics = metricsCollector.getMetrics("MetricTestServlet");
Assert.assertEquals(1, metrics.getTotalRequests());
Assert.assertTrue(metrics.getMaxRequestTime() > 0);
Assert.assertEquals(metrics.getMinRequestTime(), metrics.getMaxRequestTime());
Assert.assertEquals(metrics.getMaxRequestTime(), metrics.getTotalRequestTime());
result = client.execute(get);
Assert.assertEquals(StatusCodes.OK, result.getStatusLine().getStatusCode());
Assert.assertTrue(HttpClientUtils.readResponse(result).contains("metric"));
completionLatchHandler.await();
completionLatchHandler.reset();
metrics = metricsCollector.getMetrics("MetricTestServlet");
Assert.assertEquals(2, metrics.getTotalRequests());
} finally {
client.getConnectionManager().shutdown();
}
}
use of io.undertow.servlet.api.ServletContainer in project undertow by undertow-io.
the class ServletContextRolesTestCase method setup.
@BeforeClass
public static void setup() throws ServletException {
final PathHandler root = new PathHandler();
final ServletContainer container = ServletContainer.Factory.newInstance();
final ServletIdentityManager identityManager = new ServletIdentityManager();
identityManager.addUser("user1", "password1", "unspecified-role");
LoginConfig loginConfig = new LoginConfig(REALM_NAME);
Map<String, String> props = new HashMap<>();
props.put("charset", "ISO_8859_1");
props.put("user-agent-charsets", "Chrome,UTF-8,OPR,UTF-8");
loginConfig.addFirstAuthMethod(new AuthMethodConfig("BASIC", props));
DeploymentInfo builder = new DeploymentInfo().setClassLoader(ServletContextRolesTestCase.class.getClassLoader()).setContextPath("/servletContext").setClassIntrospecter(TestClassIntrospector.INSTANCE).setDeploymentName("servletContext.war").addServlet(new ServletInfo("servlet", CheckRolesServlet.class).addMapping("/aa")).addListener(new ListenerInfo(DeclareRolesServletContextListener.class)).setIdentityManager(identityManager).setLoginConfig(loginConfig);
builder.addPrincipalVsRoleMappings("user1", DeclareRolesServletContextListener.ROLES);
builder.addSecurityConstraint(new SecurityConstraint().addWebResourceCollection(new WebResourceCollection().addUrlPattern("/*")).addRolesAllowed(DeclareRolesServletContextListener.ROLES).setEmptyRoleSemantic(SecurityInfo.EmptyRoleSemantic.DENY));
manager = container.addDeployment(builder);
manager.deploy();
root.addPrefixPath(builder.getContextPath(), manager.start());
DefaultServer.setRootHandler(root);
}
Aggregations