r9796 - in helma-ng/trunk: apps/demo apps/storage modules/helma modules/helma/middleware modules/helma/webapp
[email protected] Sat, 16 May 2009 11:27:39 +0200 (CEST)
| Newsgroups | gmane.comp.java.helma.cvs |
|---|---|
| Message-ID | <20090516092739.762B33D0D6@mia> |
Author: hannes
Date: 2009-05-16 11:27:39 +0200 (Sat, 16 May 2009)
New Revision: 9796
Added:
helma-ng/trunk/modules/helma/middleware/
helma-ng/trunk/modules/helma/middleware/etag.js
helma-ng/trunk/modules/helma/middleware/profiler.js
helma-ng/trunk/modules/helma/middleware/responselog.js
Removed:
helma-ng/trunk/modules/helma/webapp/etag.js
Modified:
helma-ng/trunk/apps/demo/actions.js
helma-ng/trunk/apps/demo/config.js
helma-ng/trunk/apps/storage/config.js
helma-ng/trunk/modules/helma/logging.js
helma-ng/trunk/modules/helma/profiler.js
Log:
Move middleware modules into separate helma/middleware/* package
Details at http://dev.helma.org/trac/helma/changeset/9796
Modified: helma-ng/trunk/apps/demo/actions.js
===================================================================
--- helma-ng/trunk/apps/demo/actions.js 2009-05-15 22:18:54 UTC (rev 9795)
+++ helma-ng/trunk/apps/demo/actions.js 2009-05-16 09:27:39 UTC (rev 9796)
@@ -37,7 +37,7 @@
log.error(e, e.rhinoException);
}
} else if (req.params.profile) {
- var profiler = require('helma/profiler');
+ var profiler = require('helma/middleware/profiler');
req.process = function() {
return new SkinnedResponse('skins/logging.txt', {
title: "Logging & Profiling"
Modified: helma-ng/trunk/apps/demo/config.js
===================================================================
--- helma-ng/trunk/apps/demo/config.js 2009-05-15 22:18:54 UTC (rev 9795)
+++ helma-ng/trunk/apps/demo/config.js 2009-05-16 09:27:39 UTC (rev 9796)
@@ -9,7 +9,9 @@
];
exports.middleware = [
- 'helma/logging',
+ 'helma/middleware/etag',
+ 'helma/middleware/responselog',
+ // 'helma/middleware/profiler'
];
exports.macros = [
Modified: helma-ng/trunk/apps/storage/config.js
===================================================================
--- helma-ng/trunk/apps/storage/config.js 2009-05-15 22:18:54 UTC (rev 9795)
+++ helma-ng/trunk/apps/storage/config.js 2009-05-16 09:27:39 UTC (rev 9796)
@@ -3,7 +3,9 @@
];
exports.middleware = [
- 'helma/logging'
+ 'helma/middleware/etag',
+ 'helma/middleware/responselog',
+ // 'helma/middleware/profiler'
];
exports.macros = [
Modified: helma-ng/trunk/modules/helma/logging.js
===================================================================
--- helma-ng/trunk/modules/helma/logging.js 2009-05-15 22:18:54 UTC (rev 9795)
+++ helma-ng/trunk/modules/helma/logging.js 2009-05-16 09:27:39 UTC (rev 9796)
@@ -1,15 +1,10 @@
require('core/string');
-include('hashp');
-include('helma/system');
-include('helma/buffer');
importPackage(org.apache.log4j);
importClass(org.apache.log4j.xml.DOMConfigurator);
var __shared__ = true;
-
var configured = false;
-var responseLogEnabled = true;
/**
* Configure log4j using the given file resource.
@@ -40,92 +35,3 @@
return Logger.getLogger(name.replace(/\//g, '.'));
}
-// now that getLogger is installed we can get our own log
-var log = getLogger(__name__);
-
-/**
- * Render log4j messages to response buffer in the style of helma 1 res.debug().
- */
-exports.handleRequest = function handleRequest(req) {
- // Install list in 'responseLog' threadlocal
- if (!responseLogEnabled) {
- return req.process();
- }
-
- var messages = [];
- var appender = Logger.getRootLogger().getAppender("rhino") || {};
-
- appender.callback = function(level, message, scriptStack, javaStack) {
- messages.push([level, message, scriptStack, javaStack]);
- };
-
- var res;
- try {
- res = req.process();
- } finally {
- appender.callback = null;
- }
-
- var [status, headers, body] = res;
-
- // only do this for ordinary HTML responses
- var contentType = HashP.get(headers, "content-type");
- if (status != 200 && status < 400 || !contentType || !contentType.startsWith("text/html")) {
- return res;
- }
-
- if (messages.length > 0) {
- var ResponseFilter = require("helma/webapp/util").ResponseFilter;
- res[2] = new ResponseFilter(body, function(part) {
- if (typeof part != "string" && part.lastIndexOf("</body>") == -1) {
- return part;
- }
- return injectMessages(part, messages);
- });
- }
-
- return res;
-};
-
-function injectMessages(part, messages) {
- var buffer = new Buffer();
- for (var i = 0; i < messages.length; i++) {
- appendMessage(buffer, messages[i]);
- }
- var insert = part.lastIndexOf("</body>");
- return part.substring(0, insert) + buffer + part.substring(insert);
-}
-
-function appendMessage(buffer, item) {
- var [level, message, jsstack, javastack] = item;
- var multiline = message
- && (message.trim().indexOf('\n') > 0 || message.indexOf('\r')> 0);
- var bgcolor = colors[level.toString()] || '#fff';
- buffer.write("<div class='helma-debug-line' style='background:", bgcolor,
- "; color: black; border-top: 1px solid black;'>");
- if (multiline) {
- buffer.write("<pre>", message, "</pre>");
- } else {
- buffer.write(message);
- }
- appendStackTrace(buffer, "Script Stack", jsstack);
- appendStackTrace(buffer, "Java Stack", javastack);
- buffer.writeln("</div>");
-}
-
-function appendStackTrace(buffer, header, stack) {
- if (stack) {
- buffer.write("<h4 style='padding-left: 8px; margin: 4px;'>");
- buffer.write(header);
- buffer.write("</h4>");
- buffer.write("<pre style='margin: 0;'>", stack, "</pre>");
- }
-}
-
-var colors = {
- DEBUG: '#fff',
- INFO: '#ff6',
- WARN: '#ff0',
- ERROR: '#f90',
- FATAL: '#f30'
-}
\ No newline at end of file
Copied: helma-ng/trunk/modules/helma/middleware/etag.js (from rev 9795, helma-ng/trunk/modules/helma/webapp/etag.js)
Added: helma-ng/trunk/modules/helma/middleware/profiler.js
Copied: helma-ng/trunk/modules/helma/middleware/responselog.js (from rev 9795, helma-ng/trunk/modules/helma/logging.js)
Modified: helma-ng/trunk/modules/helma/profiler.js
===================================================================
--- helma-ng/trunk/modules/helma/profiler.js 2009-05-15 22:18:54 UTC (rev 9795)
+++ helma-ng/trunk/modules/helma/profiler.js 2009-05-16 09:27:39 UTC (rev 9796)
@@ -1,51 +1,8 @@
-require('core/string');
-include('helma/buffer');
-import('helma/system');
-import('helma/logging');
-import('helma/shell');
-export('handleRequest', 'Profiler');
+var log = require('helma/logging').getLogger(__name__);
-var system = helma.system;
-var {write, writeln} = helma.shell;
-var log = helma.logging.getLogger(__name__);
+export('Profiler');
-/**
- * Register a request listener that automatically sets rhino optimization
- * level to -1 and adds a profiler.
- */
-(function() {
- var maxFrames = 20;
- var profiler;
-
- this.handleRequest = function(req) {
- if (system.getOptimizationLevel() > -1) {
- system.setOptimizationLevel(-1);
- throw {retry: true};
- }
- if (!profiler) {
- profiler = new Profiler();
- }
- system.getRhinoContext().setDebugger(profiler, null);
-
- var res = req.process();
-
- var result = profiler.getResult(maxFrames);
- var buffer = new Buffer();
- buffer.writeln();
- buffer.writeln(" total average calls path");
- for (var i = 1; i < result.maxLength; i++) {
- // b.write("—");
- buffer.write("-");
- }
- buffer.writeln();
- buffer.writeln(result.data);
- log.info(buffer.toString());
-
- return res;
- };
-}).apply(this);
-
function Profiler() {
var frames = {};
var currentFrame = null;
Deleted: helma-ng/trunk/modules/helma/webapp/etag.js
_______________________________________________
Helma-CVS mailing list
[email protected]
http://helma.org/mailman/listinfo/helma-cvs