view web/src/luan/modules/web/Web_server.luan @ 181:5d2cb8c1f844

add web logging git-svn-id: https://luan-java.googlecode.com/svn/trunk@182 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Tue, 24 Jun 2014 07:16:53 +0000
parents bdbd4740121f
children e6d6596a8bcc
line wrap: on
line source

import "Java"

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.session.SessionHandler"
import "web/Http"


port = 8080


session_handler = SessionHandler.new()

luan_handler = Http.new_luan_handler()

resource_handler = ResourceHandler.new()

handlers = HandlerList.new()
handlers.setHandlers { session_handler, luan_handler, resource_handler, DefaultHandler.new(), log_handler }

log = NCSARequestLog.new()
log.setExtended(false)
log_handler = RequestLogHandler.new()
log_handler.setRequestLog(log)

local hc = HandlerCollection.new()
hc.setHandlers { handlers, log_handler }
 

function serve(dir)
	dir = dir.gsub("/$","")  -- remove trailing '/' if any
	Package.path = dir.."?.luan;java:luan/modules/?.luan"
	resource_handler.setResourceBase(dir)
	local server = Server.new(port)
	server.setHandler(hc);
	server.start()
end