Mercurial Hosting > luan
changeset 377:a8d03e6882c6
add web/NotFound.java
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 19 Apr 2015 07:27:23 -0600 |
parents | 0a75ed73bccc |
children | bf60da9298f5 |
files | web/src/luan/modules/web/Http.luan web/src/luan/modules/web/HttpServicer.java web/src/luan/modules/web/LuanHandler.java web/src/luan/modules/web/NotFound.java web/src/luan/modules/web/Server.luan |
diffstat | 5 files changed, 38 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/web/src/luan/modules/web/Http.luan Sat Apr 18 19:57:42 2015 -0600 +++ b/web/src/luan/modules/web/Http.luan Sun Apr 19 07:27:23 2015 -0600 @@ -1,16 +1,10 @@ -java() local Luan = require "luan:Luan" local ipairs = Luan.ipairs local to_string = Luan.to_string local Table = require "luan:Table" require "luan:logging/Logging" -- initialize logging -local LuanHandler = require "java:luan.modules.web.LuanHandler" -function new_luan_handler() - return LuanHandler.new() -end - function init_for_test()
--- a/web/src/luan/modules/web/HttpServicer.java Sat Apr 18 19:57:42 2015 -0600 +++ b/web/src/luan/modules/web/HttpServicer.java Sun Apr 19 07:27:23 2015 -0600 @@ -318,6 +318,18 @@ add( tbl, "text_writer" ); add( tbl, "set_cookie", String.class, String.class, Boolean.TYPE, String.class ); add( tbl, "remove_cookie", String.class, String.class ); + tbl.put( "status", new LuanProperty() { + @Override public Object get() { + return response.getStatus(); + } + @Override public boolean set(Object value) { + Integer i = Luan.asInteger(value); + if( i==null ) + throw new IllegalArgumentException("value must be an integer"); + response.setStatus(i); + return true; + } + } ); return tbl; }
--- a/web/src/luan/modules/web/LuanHandler.java Sat Apr 18 19:57:42 2015 -0600 +++ b/web/src/luan/modules/web/LuanHandler.java Sun Apr 19 07:27:23 2015 -0600 @@ -30,7 +30,6 @@ try { if( !HttpServicer.service(luan,request,response,"site:"+target) ) return; - response.setStatus(HttpServletResponse.SC_OK); } catch(LuanException e) { String err = e.getFullMessage(); logger.error(err);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/src/luan/modules/web/NotFound.java Sun Apr 19 07:27:23 2015 -0600 @@ -0,0 +1,22 @@ +package luan.modules.web; + +import java.io.IOException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.jetty.server.Request; +import luan.LuanState; + + +public class NotFound extends LuanHandler { + + public NotFound(LuanState luan) { + super(luan); + } + + public void handle(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) + throws IOException + { + super.handle("/not_found",baseRequest,request,response); + } + +}
--- a/web/src/luan/modules/web/Server.luan Sat Apr 18 19:57:42 2015 -0600 +++ b/web/src/luan/modules/web/Server.luan Sun Apr 19 07:27:23 2015 -0600 @@ -16,6 +16,8 @@ local HandlerWrapper = require "java:org.eclipse.jetty.server.handler.HandlerWrapper" local SessionHandler = require "java:org.eclipse.jetty.server.session.SessionHandler" local AuthenticationHandler = require "java:luan.modules.web.AuthenticationHandler" +local LuanHandler = require "java:luan.modules.web.LuanHandler" +local NotFound = require "java:luan.modules.web.NotFound" port = 8080 @@ -27,7 +29,7 @@ authentication_handler = AuthenticationHandler.new("/private/") -luan_handler = Http.new_luan_handler() +luan_handler = LuanHandler.new() resource_handler = ResourceHandler.new() resource_handler.setDirectoriesListed(true) @@ -81,6 +83,7 @@ resource_handler.setResourceBase(Io.Uri(base).to_string()) resource_handler.setWelcomeFiles {welcome_file} luan_handler.setWelcomeFile(welcome_file) + handlers.addHandler(NotFound.new()) server = Server.new(port) server.setHandler(hc) Package.load("site:/init")