private static Handler resourceHandler(boolean useFileSystem) { ResourceHandler resourceHandler = new ResourceHandler(); if (useFileSystem) { resourceHandler.setResourceBase("src/main/resources/web"); resourceHandler.setMinMemoryMappedContentLength(-1); } else { resourceHandler.setBaseResource(Resource.newClassPathResource("/web", true, false)); } resourceHandler.setEtags(true); resourceHandler.setWelcomeFiles(new String[] {"index.html"}); return resourceHandler; }
/** Creates a context handler for the directory. */ private ContextHandler createContextHandler(String directory, boolean isInJar, File installRootDirectory, int expiresInSeconds) { final ContextHandler contextHandler = new ContextHandler(); final ResourceHandler resourceHandler = new ExpiresResourceHandler(expiresInSeconds); final String directoryWithSlash = "/" + directory; contextHandler.setContextPath(directoryWithSlash); Resource directoryResource = getDirectoryResource(directory, isInJar, installRootDirectory); directoryResource = new JsMinifyingResource(directoryResource); if (isInJar) { directoryResource = new CachingResource(directoryResource, directoryWithSlash); } resourceHandler.setBaseResource(directoryResource); if (!isInJar) { // This makes development easier because Eclipse can copy files // to the target directory on each save on Windows. resourceHandler.setMinMemoryMappedContentLength(0); } contextHandler.setHandler(resourceHandler); return contextHandler; }
public TestServer build() { Server server = new Server(port); ObjectMapper mapper = new ObjectMapper(); ResourceHandler resourceHandler = new ResourceHandler(); resourceHandler.setDirectoriesListed(true); resourceHandler.setResourceBase(baseDir.getAbsolutePath()); resourceHandler.setMinMemoryMappedContentLength(-1); // Causes file locking on Windows ContextHandler rootContext = new ContextHandler(); rootContext.setContextPath("/"); rootContext.setHandler(resourceHandler); ContextHandler packagesContext = new ContextHandler("/packages.json"); packagesContext.setAllowNullPathInfo(true); packagesContext.setHandler(new PackagesHandler(mapper, baseDir)); ContextHandler latestContext = new ContextHandler("/latest.json"); latestContext.setAllowNullPathInfo(true); latestContext.setHandler(new LatestHandler(mapper)); ContextHandler newsContext = new ContextHandler("/news.html"); newsContext.setAllowNullPathInfo(true); newsContext.setHandler(new NewsHandler()); ContextHandlerCollection contexts = new ContextHandlerCollection(); contexts.setHandlers(new Handler[]{packagesContext, latestContext, newsContext, rootContext}); GzipHandler gzip = new GzipHandler(); server.setHandler(gzip); gzip.setHandler(contexts); return new TestServer(server); }