diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/luan/host/jetty/run.luan	Tue Feb 20 21:08:04 2018 -0700
@@ -0,0 +1,71 @@
+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"
+]]