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) {