changeset 207:5aafb5b9f70f

various git-svn-id: https://luan-java.googlecode.com/svn/trunk@208 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Tue, 08 Jul 2014 02:04:24 +0000
parents 77365c9fdfe4
children 5ba136769034
files core/src/luan/init.luan core/src/luan/modules/PackageLuan.java logging/src/luan/modules/logging/Logging.luan web/src/luan/modules/web/Web_server.luan
diffstat 4 files changed, 33 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/core/src/luan/init.luan	Mon Jul 07 23:55:52 2014 +0000
+++ b/core/src/luan/init.luan	Tue Jul 08 02:04:24 2014 +0000
@@ -44,7 +44,15 @@
 	if path == nil then
 		error("module '"..mod_name.."' not found")
 	end
-	Package.block_lib(path)
+	Package.block_path(path)
+end
+
+function Package.is_blocked(mod_name)
+	local fn,path = Package.search(mod_name)
+	if path == nil then
+		error("module '"..mod_name.."' not found")
+	end
+	return Package.is_blocked_path(path)
 end
 
 function Io.print_to(out,...)
--- a/core/src/luan/modules/PackageLuan.java	Mon Jul 07 23:55:52 2014 +0000
+++ b/core/src/luan/modules/PackageLuan.java	Tue Jul 08 02:04:24 2014 +0000
@@ -27,7 +27,8 @@
 			module.put( "jpath", jpath );
 			try {
 				module.put("require",requireFn);
-				add( module, "block_lib", LuanState.class, String.class );
+				add( module, "block_path", LuanState.class, String.class );
+				add( module, "is_blocked_path", LuanState.class, String.class );
 				add( module, "load", LuanState.class, String.class );
 				add( module, "load_lib", LuanState.class, String.class );
 				add( module, "search_path", String.class, String.class );
@@ -203,14 +204,18 @@
 	};
 
 
-	public static void block_lib(LuanState luan,String path) {
+	public static void block_path(LuanState luan,String path) {
 		blocked(luan).put(path,true);
 	}
 
+	public static boolean is_blocked_path(LuanState luan,String path) {
+		return blocked(luan).get(path) != null;
+	}
+
 	public static LuanFunction load_lib(LuanState luan,String path)
 		throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, LuanException
 	{
-		if( blocked(luan).get(path) != null )
+		if( is_blocked_path(luan,path) )
 			throw luan.exception(path+" is blocked");
 		int i = path.lastIndexOf('.');
 		String clsPath = path.substring(0,i);
--- a/logging/src/luan/modules/logging/Logging.luan	Mon Jul 07 23:55:52 2014 +0000
+++ b/logging/src/luan/modules/logging/Logging.luan	Tue Jul 08 02:04:24 2014 +0000
@@ -1,3 +1,10 @@
+import "Package"
+
+if Package.is_blocked "logging/Logging" then
+	error "Logging is blocked"
+end
+
+
 import "Java"
 import "org.apache.log4j.Logger"
 import "org.apache.log4j.EnhancedPatternLayout"
@@ -14,7 +21,7 @@
 
 file = nil  -- set to file name if you want logging to a file
 
-max_file_size = "10MB"
+max_file_size = nil  -- by default is "10MB"
 
 
 log4j_root_logger = Logger.getRootLogger()
@@ -23,11 +30,11 @@
 	return level and Level.toLevel(level)
 end
 
-function log_to_file(file)
+function log_to_file(file,logger_name)  -- logger_name is optional, defaults to root logger
 	local appender = RollingFileAppender.new(ptn_layout, file)
 	appender.setMaxFileSize(max_file_size)
-	print("getMaximumFileSize",appender.getMaximumFileSize())
-	log4j_root_logger.addAppender(appender)
+	local logger = logger_name and Logger.getLogger(logger_name) or log4j_root_logger
+	logger.addAppender(appender)
 	return appender
 end
 
--- a/web/src/luan/modules/web/Web_server.luan	Mon Jul 07 23:55:52 2014 +0000
+++ b/web/src/luan/modules/web/Web_server.luan	Tue Jul 08 02:04:24 2014 +0000
@@ -38,6 +38,7 @@
 function add_folder(context,dir)
 	local rh = ResourceHandler.new()
 	rh.setResourceBase(dir)
+	rh.setDirectoriesListed(true)
 	local ch = ContextHandler.new(context)
 	ch.setHandler(rh)
 	handlers.addHandler(ch)
@@ -58,6 +59,10 @@
 log_handler = RequestLogHandler.new()
 log_handler.setRequestLog(log)
 
+function set_log_file(file_name)
+	log.setFilename(file_name)
+end
+
 local hc = HandlerCollection.new()
 hc.setHandlers { SessionHandler.new(), handler_wrapper, DefaultHandler.new(), log_handler }