comparison src/luan/modules/http/Server.luan @ 1088:bae2d0c2576c

change module naming convention
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 26 Dec 2016 22:29:36 -0700
parents 0d884377e923
children 1fcf5c25b3bd
comparison
equal deleted inserted replaced
1087:4aab4dd3ac9c 1088:bae2d0c2576c
11 require "luan:logging/init.luan" -- initialize logging 11 require "luan:logging/init.luan" -- initialize logging
12 local Logging = require "luan:logging/Logging.luan" 12 local Logging = require "luan:logging/Logging.luan"
13 local logger = Logging.logger "http/Server" 13 local logger = Logging.logger "http/Server"
14 14
15 java() 15 java()
16 local Server = require "java:org.eclipse.jetty.server.Server" 16 local JavaServer = require "java:org.eclipse.jetty.server.Server"
17 local NCSARequestLog = require "java:org.eclipse.jetty.server.NCSARequestLog" 17 local NCSARequestLog = require "java:org.eclipse.jetty.server.NCSARequestLog"
18 local DefaultHandler = require "java:org.eclipse.jetty.server.handler.DefaultHandler" 18 local DefaultHandler = require "java:org.eclipse.jetty.server.handler.DefaultHandler"
19 local HandlerList = require "java:org.eclipse.jetty.server.handler.HandlerList" 19 local HandlerList = require "java:org.eclipse.jetty.server.handler.HandlerList"
20 local HandlerCollection = require "java:org.eclipse.jetty.server.handler.HandlerCollection" 20 local HandlerCollection = require "java:org.eclipse.jetty.server.handler.HandlerCollection"
21 local ResourceHandler = require "java:org.eclipse.jetty.server.handler.ResourceHandler" 21 local ResourceHandler = require "java:org.eclipse.jetty.server.handler.ResourceHandler"
26 local SessionHandler = require "java:org.eclipse.jetty.server.session.SessionHandler" 26 local SessionHandler = require "java:org.eclipse.jetty.server.session.SessionHandler"
27 local AuthenticationHandler = require "java:luan.modules.http.AuthenticationHandler" 27 local AuthenticationHandler = require "java:luan.modules.http.AuthenticationHandler"
28 local LuanHandler = require "java:luan.modules.http.LuanHandler" 28 local LuanHandler = require "java:luan.modules.http.LuanHandler"
29 local NotFound = require "java:luan.modules.http.NotFound" 29 local NotFound = require "java:luan.modules.http.NotFound"
30 30
31 local M = {} 31 local Server = {}
32 32
33 M.port = 8080 33 Server.port = 8080
34 34
35 M.welcome_file = "index.html" 35 Server.welcome_file = "index.html"
36 36
37 37
38 M.authentication_handler = AuthenticationHandler.new("/private/") 38 Server.authentication_handler = AuthenticationHandler.new("/private/")
39 39
40 M.luan_handler = LuanHandler.new() 40 Server.luan_handler = LuanHandler.new()
41 41
42 M.resource_handler = ResourceHandler.new() 42 Server.resource_handler = ResourceHandler.new()
43 M.resource_handler.setDirectoriesListed(true) 43 Server.resource_handler.setDirectoriesListed(true)
44 44
45 M.handlers = HandlerList.new() 45 Server.handlers = HandlerList.new()
46 M.handlers.setHandlers { M.authentication_handler, M.luan_handler, M.resource_handler } 46 Server.handlers.setHandlers { Server.authentication_handler, Server.luan_handler, Server.resource_handler }
47 47
48 function M.add_folder(context,dir) 48 function Server.add_folder(context,dir)
49 local rh = ResourceHandler.new() 49 local rh = ResourceHandler.new()
50 rh.setResourceBase(dir) 50 rh.setResourceBase(dir)
51 rh.setDirectoriesListed(true) 51 rh.setDirectoriesListed(true)
52 local ch = ContextHandler.new(context) 52 local ch = ContextHandler.new(context)
53 ch.setHandler(rh) 53 ch.setHandler(rh)
54 M.handlers.addHandler(ch) 54 Server.handlers.addHandler(ch)
55 return rh 55 return rh
56 end 56 end
57 57
58 M.handler_wrapper = HandlerWrapper.new() 58 Server.handler_wrapper = HandlerWrapper.new()
59 M.handler_wrapper.setHandler(M.handlers) 59 Server.handler_wrapper.setHandler(Server.handlers)
60 60
61 function M.zip() 61 function Server.zip()
62 local h = GzipHandler.new() 62 local h = GzipHandler.new()
63 h.setHandler(M.handler_wrapper.getHandler()) 63 h.setHandler(Server.handler_wrapper.getHandler())
64 M.handler_wrapper.setHandler(h) 64 Server.handler_wrapper.setHandler(h)
65 end 65 end
66 66
67 M.log = NCSARequestLog.new() 67 Server.log = NCSARequestLog.new()
68 M.log.setExtended(false) 68 Server.log.setExtended(false)
69 M.log_handler = RequestLogHandler.new() 69 Server.log_handler = RequestLogHandler.new()
70 M.log_handler.setRequestLog(M.log) 70 Server.log_handler.setRequestLog(Server.log)
71 71
72 function M.set_log_file(file_name) 72 function Server.set_log_file(file_name)
73 M.log.setFilename(file_name) 73 Server.log.setFilename(file_name)
74 end 74 end
75 75
76 local hc = HandlerCollection.new() 76 local hc = HandlerCollection.new()
77 hc.setHandlers { SessionHandler.new(), M.handler_wrapper, DefaultHandler.new(), M.log_handler } 77 hc.setHandlers { SessionHandler.new(), Server.handler_wrapper, DefaultHandler.new(), Server.log_handler }
78 78
79 79
80 function M.init(dir) 80 function Server.init(dir)
81 dir = gsub(dir,"/$","") -- remove trailing '/' if any 81 dir = gsub(dir,"/$","") -- remove trailing '/' if any
82 Http.dir = dir 82 Http.dir = dir
83 function Io.schemes.site(path) 83 function Io.schemes.site(path)
84 return Io.uri( dir..path ) 84 return Io.uri( dir..path )
85 end 85 end
86 M.authentication_handler.setPassword(Io.password) 86 Server.authentication_handler.setPassword(Io.password)
87 local base = dir 87 local base = dir
88 if matches(base,"^classpath:") then 88 if matches(base,"^classpath:") then
89 base = dir.."#"..M.welcome_file.."#"..M.welcome_file..".luan" 89 base = dir.."#"..Server.welcome_file.."#"..Server.welcome_file..".luan"
90 end 90 end
91 M.resource_handler.setResourceBase(Io.uri(base).to_string()) 91 Server.resource_handler.setResourceBase(Io.uri(base).to_string())
92 M.resource_handler.setWelcomeFiles {M.welcome_file} 92 Server.resource_handler.setWelcomeFiles {Server.welcome_file}
93 M.luan_handler.setWelcomeFile(M.welcome_file) 93 Server.luan_handler.setWelcomeFile(Server.welcome_file)
94 M.handlers.addHandler(NotFound.new(M.luan_handler)) 94 Server.handlers.addHandler(NotFound.new(Server.luan_handler))
95 M.server = Server.new(M.port) 95 Server.server = JavaServer.new(Server.port)
96 M.server.setHandler(hc) 96 Server.server.setHandler(hc)
97 end 97 end
98 98
99 function M.start() 99 function Server.start()
100 LuanHandler.start(M.server) 100 LuanHandler.start(Server.server)
101 end 101 end
102 102
103 function M.start_rpc() 103 function Server.start_rpc()
104 function Rpc.functions.call(domain,fn_name,...) 104 function Rpc.functions.call(domain,fn_name,...)
105 return M.luan_handler.call_rpc(fn_name,...) 105 return Server.luan_handler.call_rpc(fn_name,...)
106 end 106 end
107 107
108 Thread.fork(Rpc.serve) 108 Thread.fork(Rpc.serve)
109 end 109 end
110 110
111 function M.serve(dir) 111 function Server.serve(dir)
112 M.init(dir) 112 Server.init(dir)
113 M.start_rpc() 113 Server.start_rpc()
114 M.start() 114 Server.start()
115 end 115 end
116 116
117 return M 117 return Server