view src/luan/host/jetty/run.luan @ 1182:0b55a1af5a44

add luan/host/jetty
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 20 Feb 2018 21:08:04 -0700
parents src/luan/host/run.luan@51d1342e25ad
children
line wrap: on
line source

require "luan:logging/init.luan"  -- initialize logging
local Luan = require "luan:Luan.luan"
local error = Luan.error
local do_file = Luan.do_file or error()
local ipairs = Luan.ipairs or error()
local Io = require "luan:Io.luan"
local print = Io.print or error()
local String = require "luan:String.luan"
local Hosting = require "luan:host/Hosting.luan"
local Logging = require "luan:logging/Logging.luan"
local logger = Logging.logger "run"
java()
local WebHandler = require "java:luan.host.jetty.WebHandler"
Hosting.WebHandler = WebHandler

local here = Io.schemes.file(".").canonical().to_string()
Hosting.sites_dir = here.."/sites/"

-- tmp
local Util = require "classpath:luan/host/Util.luan"
local sites_dir = Io.schemes.file(Hosting.sites_dir)
for _, site in ipairs(sites_dir.children()) do
	local password_file = site.child("password")
	if password_file.exists() then
		local domain = site.name()
		local password = password_file.read_text()
		Util.write_password(domain,password)
		password_file.delete()
		logger.info("fixed password for "..domain)
	end
end

do_file "classpath:luan/host/main.luan"


-- web server

local Server = require "java:org.eclipse.jetty.server.Server"
local DefaultHandler = require "java:org.eclipse.jetty.server.handler.DefaultHandler"
local HandlerCollection = require "java:org.eclipse.jetty.server.handler.HandlerCollection"
local SessionHandler = require "java:org.eclipse.jetty.server.session.SessionHandler"
local SslSelectChannelConnector = require "java:org.eclipse.jetty.server.ssl.SslSelectChannelConnector"

local server = Server.new(8080)

local handlers = HandlerCollection.new()
handlers.setHandlers {
	SessionHandler.new(),
	WebHandler.new(Hosting.sites_dir,server),
	DefaultHandler.new()
}
server.setHandler(handlers);

server.start()


--[[
local tp = server.getThreadPool() 
print(tp)
print(tp.getClass())
print("max "..tp.getMaxThreads())
print("getMaxQueued "..tp.getMaxQueued())

for _, c in ipairs(server.getConnectors()) do
	print(c)
	tp = c.getThreadPool() 
	print(tp)
end

print "done"
]]