Mercurial Hosting > luan
view web/src/luan/modules/web/Web_server.luan @ 216:a1b142f9c5c0
make Utils.toUrl() check for "index.html" or "index.html.luan" in dirs for jars (hack)
git-svn-id: https://luan-java.googlecode.com/svn/trunk@217 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Mon, 14 Jul 2014 06:11:55 +0000 |
parents | 5aafb5b9f70f |
children | f9e3e64132e1 |
line wrap: on
line source
import "Java" import "String" import "Io" import "Package" import "web/Http" import "org.eclipse.jetty.server.Server" import "org.eclipse.jetty.server.NCSARequestLog" import "org.eclipse.jetty.server.handler.DefaultHandler" import "org.eclipse.jetty.server.handler.HandlerList" import "org.eclipse.jetty.server.handler.HandlerCollection" import "org.eclipse.jetty.server.handler.ResourceHandler" import "org.eclipse.jetty.server.handler.RequestLogHandler" import "org.eclipse.jetty.server.handler.ContextHandler" import "org.eclipse.jetty.server.handler.GzipHandler" import "org.eclipse.jetty.server.handler.HandlerWrapper" import "org.eclipse.jetty.server.session.SessionHandler" import "luan.modules.web.AuthenticationHandler" port = 8080 private_password = "password" welcome_file = "index.html" authentication_handler = AuthenticationHandler.new("/private/") luan_handler = Http.new_luan_handler() resource_handler = ResourceHandler.new() resource_handler.setDirectoriesListed(true) handlers = HandlerList.new() handlers.setHandlers { authentication_handler, luan_handler, resource_handler } function add_folder(context,dir) local rh = ResourceHandler.new() rh.setResourceBase(dir) rh.setDirectoriesListed(true) local ch = ContextHandler.new(context) ch.setHandler(rh) handlers.addHandler(ch) return rh end handler_wrapper = HandlerWrapper.new() handler_wrapper.setHandler(handlers) function zip() local h = GzipHandler.new() h.setHandler(handler_wrapper.getHandler()) handler_wrapper.setHandler(h) end log = NCSARequestLog.new() log.setExtended(false) log_handler = RequestLogHandler.new() log_handler.setRequestLog(log) function set_log_file(file_name) log.setFilename(file_name) end local hc = HandlerCollection.new() hc.setHandlers { SessionHandler.new(), handler_wrapper, DefaultHandler.new(), log_handler } function serve(dir) dir = dir.gsub("/$","") -- remove trailing '/' if any Http.dir = dir Package.path = dir.."?.luan;java:luan/modules/?.luan" authentication_handler.setPassword(private_password) resource_handler.setResourceBase(Io.File(dir.."/").to_string()) resource_handler.setWelcomeFiles {welcome_file} luan_handler.setWelcomeFile(welcome_file) local server = Server.new(port) server.setHandler(hc); server.start() end