r9665 - in helma-ng/trunk/modules/helma: . webapp
[email protected] Thu, 23 Apr 2009 12:36:42 +0200 (CEST)
| Newsgroups | gmane.comp.java.helma.cvs |
|---|---|
| Message-ID | <20090423103642.881813D0D6@mia> |
Author: hannes
Date: 2009-04-23 12:36:42 +0200 (Thu, 23 Apr 2009)
New Revision: 9665
Modified:
helma-ng/trunk/modules/helma/httpserver.js
helma-ng/trunk/modules/helma/webapp/response.js
Log:
Use the new helma/webapp/env module to set the default content type and character encoding in Response objects. Make commitResponse() in helma/httpserver support helma Response objects in addition to Jack responses.
Details at http://dev.helma.org/trac/helma/changeset/9665
Modified: helma-ng/trunk/modules/helma/httpserver.js
===================================================================
--- helma-ng/trunk/modules/helma/httpserver.js 2009-04-23 10:36:40 UTC (rev 9664)
+++ helma-ng/trunk/modules/helma/httpserver.js 2009-04-23 10:36:42 UTC (rev 9665)
@@ -3,14 +3,11 @@
*/
var IO = require('io').IO;
-var HashP = require('hashp').HashP;
-var Request = require('helma/webapp/request').Request;
export('start', 'stop', 'initRequest', 'commitResponse');
// mark this module as shared between all requests
var __shared__ = true;
-
var log = require('helma/logging').getLogger(__name__);
@@ -126,8 +123,15 @@
*/
function commitResponse(env, result) {
var response = env['jack.servlet_response'];
- if (response.isCommitted() || !(result instanceof Array))
+ if (response.isCommitted())
return;
+ if (!(result instanceof Array)) {
+ // convert helma response to jack response
+ if (result && typeof result.close === "function")
+ result = result.close();
+ else
+ return;
+ }
var [status, headers, body] = result;
response.status = status;
for (var name in headers) {
Modified: helma-ng/trunk/modules/helma/webapp/response.js
===================================================================
--- helma-ng/trunk/modules/helma/webapp/response.js 2009-04-23 10:36:40 UTC (rev 9664)
+++ helma-ng/trunk/modules/helma/webapp/response.js 2009-04-23 10:36:42 UTC (rev 9665)
@@ -6,9 +6,10 @@
function Response() {
+ var config = require('helma/webapp/env').config;
var status = 200;
- var charset;
- var contentType;
+ var charset = config.charset || 'utf8';
+ var contentType = config.contentType || 'text/html';
var headers = {};
var buffer = new Buffer();
@@ -146,7 +147,7 @@
function SkinnedResponse(skin, context, scope) {
var render = require('helma/skin').render;
- return [200, {}, render(skin, context, scope)];
+ return new Response(render(skin, context, scope));
}
function RedirectResponse(location) {