Mercurial Hosting > luan
comparison src/luan/modules/http/impl/Server.luan @ 1167:7e6f28c769a1
better handlers
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 08 Feb 2018 19:06:31 -0700 |
parents | e2d2354807f3 |
children | 312e4cadd508 |
comparison
equal
deleted
inserted
replaced
1166:7ef40e1923b7 | 1167:7e6f28c769a1 |
---|---|
6 local matches = String.matches or error() | 6 local matches = String.matches or error() |
7 local Io = require "luan:Io.luan" | 7 local Io = require "luan:Io.luan" |
8 local Package = require "luan:Package.luan" | 8 local Package = require "luan:Package.luan" |
9 local Rpc = require "luan:Rpc.luan" | 9 local Rpc = require "luan:Rpc.luan" |
10 local Thread = require "luan:Thread.luan" | 10 local Thread = require "luan:Thread.luan" |
11 --local Http = require "luan:http/Http.luan" | 11 local Http = require "luan:http/Http.luan" |
12 require "luan:logging/init.luan" -- initialize logging | 12 require "luan:logging/init.luan" -- initialize logging |
13 local Logging = require "luan:logging/Logging.luan" | 13 local Logging = require "luan:logging/Logging.luan" |
14 local logger = Logging.logger "http/Server" | 14 local logger = Logging.logger "http/Server" |
15 | 15 |
16 java() | 16 java() |
17 local JavaServer = require "java:luan.webserver.Server" | 17 local JavaServer = require "java:luan.webserver.Server" |
18 local FileHandler = require "java:luan.webserver.handlers.FileHandler" | 18 local FileHandler = require "java:luan.webserver.handlers.FileHandler" |
19 local DirHandler = require "java:luan.webserver.handlers.DirHandler" | |
19 local IndexHandler = require "java:luan.webserver.handlers.IndexHandler" | 20 local IndexHandler = require "java:luan.webserver.handlers.IndexHandler" |
20 local ContentTypeHandler = require "java:luan.webserver.handlers.ContentTypeHandler" | 21 local ContentTypeHandler = require "java:luan.webserver.handlers.ContentTypeHandler" |
21 local SafeHandler = require "java:luan.webserver.handlers.SafeHandler" | 22 local SafeHandler = require "java:luan.webserver.handlers.SafeHandler" |
22 local LogHandler = require "java:luan.webserver.handlers.LogHandler" | 23 local LogHandler = require "java:luan.webserver.handlers.LogHandler" |
23 local ListHandler = require "java:luan.webserver.handlers.ListHandler" | 24 local ListHandler = require "java:luan.webserver.handlers.ListHandler" |
37 else | 38 else |
38 dir_path = dir | 39 dir_path = dir |
39 dir_uri = "file:"..dir | 40 dir_uri = "file:"..dir |
40 end | 41 end |
41 dir_uri = gsub(dir_uri,"/$","") -- remove trailing '/' if any | 42 dir_uri = gsub(dir_uri,"/$","") -- remove trailing '/' if any |
42 -- Http.dir = dir_uri | 43 Http.dir = dir_uri |
43 function Io.schemes.site(path) | 44 function Io.schemes.site(path) |
44 return Io.uri( dir_uri..path ) | 45 return Io.uri( dir_uri..path ) |
45 end | 46 end |
46 local handler = FileHandler.new(dir_path) | 47 local file_handler = FileHandler.new(dir_path) |
48 local dir_handler = DirHandler.new(dir_path) | |
47 local luan_handler = LuanHandler.new() | 49 local luan_handler = LuanHandler.new() |
48 handler = ListHandler.new( luan_handler, handler ) | 50 local not_found_hander = NotFound.new(luan_handler) |
51 local handler = ListHandler.new( luan_handler, file_handler ) | |
49 handler = IndexHandler.new(handler) | 52 handler = IndexHandler.new(handler) |
50 handler = NotFound.new(handler) | 53 handler = ListHandler.new( handler, dir_handler, not_found_hander ) |
51 handler = ContentTypeHandler.new(handler) | 54 handler = ContentTypeHandler.new(handler) |
52 handler = SafeHandler.new(handler) | 55 handler = SafeHandler.new(handler) |
53 handler = LogHandler.new(handler) | 56 handler = LogHandler.new(handler) |
54 -- Server.handlers.addHandler(NotFound.new(Server.luan_handler)) | |
55 Server.server = JavaServer.new(Server.port,handler) | 57 Server.server = JavaServer.new(Server.port,handler) |
56 end | 58 end |
57 | 59 |
58 function Server.start() | 60 function Server.start() |
59 LuanHandler.start(Server.server) | 61 LuanHandler.start(Server.server) |