}
}
}
for (Map.Entry<String, ServletInfo> entry : deploymentInfo.getServlets().entrySet()) {
ServletInfo servlet = entry.getValue();
final ManagedServlet managedServlet = new ManagedServlet(servlet, servletContext);
lifecycles.add(managedServlet);
final ServletHandler handler = new ServletHandler(managedServlet);
allServlets.put(entry.getKey(), handler);
for (String path : entry.getValue().getMappings()) {
if (path.equals("/")) {
//the default servlet
pathMatches.add("/*");
if (pathServlets.containsKey("/*")) {
throw UndertowServletMessages.MESSAGES.twoServletsWithSameMapping(path);
}
defaultServlet = handler;
defaultHandler = servletChain(handler, managedServlet);
} else if (!path.startsWith("*.")) {
pathMatches.add(path);
if (pathServlets.containsKey(path)) {
throw UndertowServletMessages.MESSAGES.twoServletsWithSameMapping(path);
}
pathServlets.put(path, handler);
} else {
String ext = path.substring(2);
extensionMatches.add(ext);
extensionServlets.put(ext, handler);
}
}
}
if (defaultServlet == null) {
final DefaultServletConfig config = deploymentInfo.getDefaultServletConfig() == null ? new DefaultServletConfig() : deploymentInfo.getDefaultServletConfig();
DefaultServlet defaultInstance = new DefaultServlet(deployment, config, deploymentInfo.getWelcomePages());
final ManagedServlet managedDefaultServlet = new ManagedServlet(new ServletInfo("io.undertow.DefaultServlet", DefaultServlet.class, new ImmediateInstanceFactory<Servlet>(defaultInstance)), servletContext);
lifecycles.add(managedDefaultServlet);
pathMatches.add("/*");
defaultServlet = new ServletHandler(managedDefaultServlet);
defaultHandler = new ServletChain(defaultServlet, managedDefaultServlet);
}