@Override public void start(FolderContext music, MountContext mount, int port, String user, String password) throws Exception { ServletContextHandler mountContext = new ServletContextHandler(ServletContextHandler.NO_SESSIONS); mountContext.setContextPath(mount.getPath()); mountContext.setSecurityHandler(user == null ? null : basicAuthentication("MusicMount", user, password)); ServletHolder mountServlet = new ServletHolder(mount.getServlet()); mountContext.addServlet(mountServlet, "/*"); ServletContextHandler musicContext = new ServletContextHandler(ServletContextHandler.NO_SESSIONS); musicContext.setContextPath(music.getPath()); musicContext.setSecurityHandler(user == null ? null : basicAuthentication("MusicMount", user, password)); musicContext.setBaseResource(Resource.newResource(music.getFolder())); MimeTypes musicTypes = new MimeTypes(); musicTypes.addMimeMapping("m4a", "audio/mp4"); musicTypes.addMimeMapping("mp3", "audio/mpeg"); musicContext.setMimeTypes(musicTypes); ServletHolder musicServlet = new ServletHolder(new DefaultServlet()); musicServlet.setInitParameter("dirAllowed", "false"); musicContext.addServlet(musicServlet, "/*"); GzipHandler gzipMountContext = new GzipHandler(); gzipMountContext.setMimeTypes(MimeTypes.TEXT_JSON); gzipMountContext.setHandler(mountContext); ContextHandlerCollection contexHandlers = new ContextHandlerCollection(); contexHandlers.setHandlers(new Handler[] { gzipMountContext, musicContext }); RequestLogHandler requestLogHandler = new RequestLogHandler(); requestLogHandler.setRequestLog(new ConsoleRequestLog()); HandlerCollection handlers = new HandlerCollection(); handlers.setHandlers(new Handler[]{ contexHandlers, new DefaultHandler(), requestLogHandler }); server = new Server(port); server.setHandler(handlers); server.setGracefulShutdown(1000); server.setStopAtShutdown(true); server.start(); }
@Override protected void doStart() throws Exception { server = new Server(); if (connector == null) { connector = socketConnectorFactory.createConnector(); } URI boundTo = bind(); ServletContextHandler contextHandler = new ServletContextHandler(server, "/", ServletContextHandler.NO_SECURITY); ServletHolder holder = new ServletHolder(); holder.setServlet(new HttpTunnelServlet()); contextHandler.addServlet(holder, "/"); contextHandler.setAttribute("acceptListener", getAcceptListener()); contextHandler.setAttribute("wireFormat", getWireFormat()); contextHandler.setAttribute("transportFactory", transportFactory); contextHandler.setAttribute("transportOptions", transportOptions); GzipHandler gzipHandler = new GzipHandler(); contextHandler.setHandler(gzipHandler); server.start(); // Update the Connect To URI with our actual location in case the configured port // was set to zero so that we report the actual port we are listening on. int port = boundTo.getPort(); if (connector.getLocalPort() != -1) { port = connector.getLocalPort(); } setConnectURI(new URI(boundTo.getScheme(), boundTo.getUserInfo(), boundTo.getHost(), port, boundTo.getPath(), boundTo.getQuery(), boundTo.getFragment())); }
@Override public void start(FolderContext music, FolderContext mount, int port, String user, String password) throws Exception { ServletContextHandler mountContext = new ServletContextHandler(ServletContextHandler.NO_SESSIONS); mountContext.setContextPath(mount.getPath()); mountContext.setSecurityHandler(user == null ? null : basicAuthentication("MusicMount", user, password)); mountContext.setBaseResource(Resource.newResource(mount.getFolder())); mountContext.setWelcomeFiles(new String[] { "index.json" }); MimeTypes mountTypes = new MimeTypes(); mountTypes.addMimeMapping("json", MimeTypes.TEXT_JSON_UTF_8); mountContext.setMimeTypes(mountTypes); ServletHolder mountServlet = new ServletHolder(new DefaultServlet()); mountServlet.setInitParameter("dirAllowed", "false"); mountContext.addServlet(mountServlet, "/*"); ServletContextHandler musicContext = new ServletContextHandler(ServletContextHandler.NO_SESSIONS); musicContext.setContextPath(music.getPath()); musicContext.setSecurityHandler(user == null ? null : basicAuthentication("MusicMount", user, password)); musicContext.setBaseResource(Resource.newResource(music.getFolder())); MimeTypes musicTypes = new MimeTypes(); musicTypes.addMimeMapping("m4a", "audio/mp4"); musicTypes.addMimeMapping("mp3", "audio/mpeg"); musicContext.setMimeTypes(musicTypes); ServletHolder musicServlet = new ServletHolder(new DefaultServlet()); musicServlet.setInitParameter("dirAllowed", "false"); musicContext.addServlet(musicServlet, "/*"); GzipHandler gzipMountContext = new GzipHandler(); gzipMountContext.setMimeTypes(MimeTypes.TEXT_JSON); gzipMountContext.setHandler(mountContext); ContextHandlerCollection contexHandlers = new ContextHandlerCollection(); contexHandlers.setHandlers(new Handler[] { gzipMountContext, musicContext }); RequestLogHandler requestLogHandler = new RequestLogHandler(); requestLogHandler.setRequestLog(new ConsoleRequestLog()); HandlerCollection handlers = new HandlerCollection(); handlers.setHandlers(new Handler[]{ contexHandlers, new DefaultHandler(), requestLogHandler }); server = new Server(port); server.setHandler(handlers); server.setGracefulShutdown(1000); server.setStopAtShutdown(true); server.start(); }