r9544 - in helma-ng/trunk: apps/demo apps/storage modules modules/helma modules/helma/webapp modules/test modules/test/core modules/test/helma src/org/helma/javascript

[email protected]
Newsgroups gmane.comp.java.helma.cvs
Message-ID <20090319141745.4767D3D0D6@mia>
Author: hannes
Date: 2009-03-19 15:17:44 +0100 (Thu, 19 Mar 2009)
New Revision: 9544

Modified:
   helma-ng/trunk/apps/demo/actions.js
   helma-ng/trunk/apps/demo/config.js
   helma-ng/trunk/apps/demo/main.js
   helma-ng/trunk/apps/storage/config.js
   helma-ng/trunk/apps/storage/main.js
   helma-ng/trunk/apps/storage/model.js
   helma-ng/trunk/modules/global.js
   helma-ng/trunk/modules/helma/buffer.js
   helma-ng/trunk/modules/helma/filestore.js
   helma-ng/trunk/modules/helma/filters.js
   helma-ng/trunk/modules/helma/helma1.js
   helma-ng/trunk/modules/helma/httpclient.js
   helma-ng/trunk/modules/helma/httpserver.js
   helma-ng/trunk/modules/helma/logging.js
   helma-ng/trunk/modules/helma/markdown.js
   helma-ng/trunk/modules/helma/profiler.js
   helma-ng/trunk/modules/helma/skin.js
   helma-ng/trunk/modules/helma/system.js
   helma-ng/trunk/modules/helma/unittest.js
   helma-ng/trunk/modules/helma/webapp.js
   helma-ng/trunk/modules/helma/webapp/continuation.js
   helma-ng/trunk/modules/helma/webapp/request.js
   helma-ng/trunk/modules/helma/webapp/response.js
   helma-ng/trunk/modules/test/all.js
   helma-ng/trunk/modules/test/core/array_test.js
   helma-ng/trunk/modules/test/core/object_test.js
   helma-ng/trunk/modules/test/helma/file_test.js
   helma-ng/trunk/modules/test/helma/skin_test.js
   helma-ng/trunk/modules/test/helma/unittest_test.js
   helma-ng/trunk/src/org/helma/javascript/RhinoEngine.java
Log:
Switch to Securable Modules naming convention
Helma NG now uses slashes as separator in moudule identifiers and supports '.' and '..' for relative module names. We should now be fully compatible with the ServerJS Securable Modules proposal:
https://wiki.mozilla.org/ServerJS/Modules/SecurableModules

Details at http://dev.helma.org/trac/helma/changeset/9544

Modified: helma-ng/trunk/apps/demo/actions.js
===================================================================
--- helma-ng/trunk/apps/demo/actions.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/apps/demo/actions.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,4 +1,4 @@
-import('helma.logging');
+import('helma/logging');
 
 var log = helma.logging.getLogger(__name__);
 

Modified: helma-ng/trunk/apps/demo/config.js
===================================================================
--- helma-ng/trunk/apps/demo/config.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/apps/demo/config.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -8,8 +8,8 @@
 ];
 
 exports.middleware = [
-    'helma.webapp.continuation',
-    'helma.logging'
+    'helma/webapp/continuation',
+    'helma/logging'
 ];
 
 exports.charset = 'utf8';

Modified: helma-ng/trunk/apps/demo/main.js
===================================================================
--- helma-ng/trunk/apps/demo/main.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/apps/demo/main.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,4 +1,4 @@
-import('helma.webapp');
+import('helma/webapp');
 
 // main script to start application
 if (__name__ == "__main__") {

Modified: helma-ng/trunk/apps/storage/config.js
===================================================================
--- helma-ng/trunk/apps/storage/config.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/apps/storage/config.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -3,7 +3,7 @@
 ];
 
 exports.middleware = [
-    "helma.logging"
+    'helma/logging'
 ]
 
 exports.charset = 'utf8';

Modified: helma-ng/trunk/apps/storage/main.js
===================================================================
--- helma-ng/trunk/apps/storage/main.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/apps/storage/main.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,4 +1,4 @@
-import('helma.webapp', 'webapp');
+import('helma/webapp', 'webapp');
 import('model');
 
 export('index');

Modified: helma-ng/trunk/apps/storage/model.js
===================================================================
--- helma-ng/trunk/apps/storage/model.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/apps/storage/model.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,4 +1,4 @@
-import('helma.filestore', 'filestore');
+import('helma/filestore', 'filestore');
 
 export('Book', 'Author');
 

Modified: helma-ng/trunk/modules/global.js
===================================================================
--- helma-ng/trunk/modules/global.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/global.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -45,7 +45,7 @@
         value: function(moduleName, propertyName) {
             var module = this.require(moduleName);
             propertyName = propertyName || moduleName;
-            var path = propertyName.split(".");
+            var path = propertyName.split("/");
             var elem = this;
             for (var i = 0; i < path.length - 1; i++) {
                 var child = elem[path[i]];

Modified: helma-ng/trunk/modules/helma/buffer.js
===================================================================
--- helma-ng/trunk/modules/helma/buffer.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/buffer.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,4 +1,4 @@
-include('core.json2');
+include('core/json2');
 
 export('Buffer');
 

Modified: helma-ng/trunk/modules/helma/filestore.js
===================================================================
--- helma-ng/trunk/modules/helma/filestore.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/filestore.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,7 +1,7 @@
-require('core.object');
-require('core.JSON');
-include('helma.file');
-include('helma.functional');
+require('core/object');
+require('core/JSON');
+include('helma/file');
+include('helma/functional');
 
 export("Store",
        "Transaction",
@@ -12,7 +12,7 @@
 
 var __shared__ = true;
 
-var log = require('helma.logging').getLogger(__name__);
+var log = require('helma/logging').getLogger(__name__);
 
 var TEXT = 0;
 var REFERENCE = 10;

Modified: helma-ng/trunk/modules/helma/filters.js
===================================================================
--- helma-ng/trunk/modules/helma/filters.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/filters.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -21,7 +21,7 @@
  * application, for example by calling app.addRepository('modules/core/Filters.js')
  */
 
-require('core.string');
+require('core/string');
 
 export('capitalize_filter',
         'dateFormat_filter',

Modified: helma-ng/trunk/modules/helma/helma1.js
===================================================================
--- helma-ng/trunk/modules/helma/helma1.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/helma1.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,6 +1,6 @@
 
-importModule('helma.skin');
-importModule('core.object');
+importModule('helma/skin');
+importModule('core/object');
 
 function createHopObject(name) {
     var proto = importModule(name + ".*");

Modified: helma-ng/trunk/modules/helma/httpclient.js
===================================================================
--- helma-ng/trunk/modules/helma/httpclient.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/httpclient.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -23,8 +23,8 @@
  */
 
 // take care of any dependencies
-require('core.date');
-require('core.string');
+require('core/date');
+require('core/string');
 
 export("Client", "Cookie");
 

Modified: helma-ng/trunk/modules/helma/httpserver.js
===================================================================
--- helma-ng/trunk/modules/helma/httpserver.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/httpserver.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -7,7 +7,7 @@
 // mark this module as shared between all requests
 var __shared__ = true;
 
-var log = require('helma.logging').getLogger(__name__);
+var log = require('helma/logging').getLogger(__name__);
 
 
 (function() {
@@ -28,7 +28,7 @@
      * <li> mountpoint ('/')</li>
      * <li>staticDir ('static')</li>
      * <li>staticMountpoint ('/static')</li>
-     * <li>servletParams ({ moduleName: 'helma.webapp',
+     * <li>servletParams ({ moduleName: 'helma/webapp',
      *                      functionName: 'handleRequest',
      *                      requestTimeout: 30 })</li>
      * </ul>
@@ -38,7 +38,7 @@
         var configFile = config.configFile || 'config/jetty.xml';
         // var staticIndex = config.staticIndex || config.staticIndex == undefined;
         if (!server) {
-            var engine = require('helma.system').getRhinoEngine();
+            var engine = require('helma/system').getRhinoEngine();
             var jettyconfig = getResource(configFile);
             if (!jettyconfig.exists()) {
                 throw Error('Resource "' + configFile + '" not found');
@@ -70,7 +70,7 @@
                     var helmaServlet = new HelmaServlet(engine);
                     var servletHolder = new jetty.servlet.ServletHolder(helmaServlet);
                     var params = config.servletParams || {
-                        moduleName: 'helma.webapp',
+                        moduleName: 'helma/webapp',
                         functionName: 'handleRequest',
                         requestTimeout: 30
                     };

Modified: helma-ng/trunk/modules/helma/logging.js
===================================================================
--- helma-ng/trunk/modules/helma/logging.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/logging.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -3,9 +3,9 @@
 
 (function() {
 
-    require('core.string');
-    import('helma.system', 'system');
-    include('helma.buffer');
+    require('core/string');
+    import('helma/system', 'system');
+    include('helma/buffer');
 
     export('getLogger');
 

Modified: helma-ng/trunk/modules/helma/markdown.js
===================================================================
--- helma-ng/trunk/modules/helma/markdown.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/markdown.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,6 +1,6 @@
 
 try {
-    var log = require('helma.logging').getLogger(__name__);
+    var log = require('helma/logging').getLogger(__name__);
 } catch (error) {
     // logging module not available
 }

Modified: helma-ng/trunk/modules/helma/profiler.js
===================================================================
--- helma-ng/trunk/modules/helma/profiler.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/profiler.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,8 +1,8 @@
-require('core.string');
-include('helma.buffer');
-import('helma.system');
-import('helma.logging');
-import('helma.shell');
+require('core/string');
+include('helma/buffer');
+import('helma/system');
+import('helma/logging');
+import('helma/shell');
 
 export('onRequest', 'onResponse', 'onError', 'Profiler');
 

Modified: helma-ng/trunk/modules/helma/skin.js
===================================================================
--- helma-ng/trunk/modules/helma/skin.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/skin.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,10 +1,10 @@
 /*global getResource importModule parseSkin */
 
-require('core.string');
-require('core.object');
-import('helma.filters', 'filters');
-import('helma.logging', 'logging');
-import('helma.system', 'system');
+require('core/string');
+require('core/object');
+import('helma/filters', 'filters');
+import('helma/logging', 'logging');
+import('helma/system', 'system');
 
 export('render',
        'createSkin',

Modified: helma-ng/trunk/modules/helma/system.js
===================================================================
--- helma-ng/trunk/modules/helma/system.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/system.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -2,8 +2,8 @@
  * A module to access and manipulate the rhino engine running this application
  */
 
-require('core.object');
-import('helma.logging');
+require('core/object');
+import('helma/logging');
 
 export('addHostObject',
         'addRepository',

Modified: helma-ng/trunk/modules/helma/unittest.js
===================================================================
--- helma-ng/trunk/modules/helma/unittest.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/unittest.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,6 +1,6 @@
-import("core.string");
-import("helma.system");
-import("helma.shell");
+import("core/string");
+import("helma/system");
+import("helma/shell");
 
 var system = helma.system;
 var writeln = helma.shell.writeln;

Modified: helma-ng/trunk/modules/helma/webapp/continuation.js
===================================================================
--- helma-ng/trunk/modules/helma/webapp/continuation.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/webapp/continuation.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -27,12 +27,12 @@
  *
  */
 
-import('helma.system', 'system');
+import('helma/system', 'system');
 
 export('resume');
 
 
-var log = require('helma.logging').getLogger(__name__);
+var log = require('helma/logging').getLogger(__name__);
 var continuation_id = null;
 
 

Modified: helma-ng/trunk/modules/helma/webapp/request.js
===================================================================
--- helma-ng/trunk/modules/helma/webapp/request.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/webapp/request.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,12 +1,12 @@
-require('core.string');
-import('helma.system', 'system');
+require('core/string');
+import('helma/system', 'system');
 
 if (!global.Request) {
 
     system.addHostObject(org.helma.web.Request);
     system.addHostObject(org.helma.web.Session);
 
-    var log = require('helma.logging').getLogger(__name__);
+    var log = require('helma/logging').getLogger(__name__);
 
     Object.defineProperty(Request.prototype, "isGet", {
         getter: function() {

Modified: helma-ng/trunk/modules/helma/webapp/response.js
===================================================================
--- helma-ng/trunk/modules/helma/webapp/response.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/webapp/response.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,5 +1,5 @@
-include('helma.buffer');
-import('helma.system', 'system');
+include('helma/buffer');
+import('helma/system', 'system');
 
 if (!global.Response) {
 
@@ -13,7 +13,7 @@
      */
     Object.defineProperty(Response.prototype, 'render', {
         value: function render(skin, context, scope) {
-            var render = require('helma.skin').render;
+            var render = require('helma/skin').render;
             this.write(render(skin, context, scope));
         }
     });

Modified: helma-ng/trunk/modules/helma/webapp.js
===================================================================
--- helma-ng/trunk/modules/helma/webapp.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/helma/webapp.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -3,14 +3,14 @@
  */
 
 // import modules
-require('core.string');
-require('helma.webapp.request');
-require('helma.webapp.response');
+require('core/string');
+require('helma/webapp/request');
+require('helma/webapp/response');
 
-import('helma.webapp.continuation', 'continuation');
-import('helma.system', 'system');
-import('helma.httpserver', 'server');
-import('helma.logging', 'logging');
+import('helma/webapp/continuation', 'continuation');
+import('helma/system', 'system');
+import('helma/httpserver', 'server');
+import('helma/logging', 'logging');
 
 export('start', 'stop', 'getConfig', 'handleRequest', 'error', 'notfound');
 

Modified: helma-ng/trunk/modules/test/all.js
===================================================================
--- helma-ng/trunk/modules/test/all.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/test/all.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,12 +1,12 @@
-var {TestSuite} = require("helma.unittest");
+var TestSuite = require("helma/unittest").TestSuite;
 
 function run() {
     var suite = new TestSuite("Helma Testsuite");
-    suite.addTest("test.core.array_test");
-    suite.addTest("test.core.object_test");
-    suite.addTest("test.helma.file_test");
-    suite.addTest("test.helma.unittest_test");
-    suite.addTest("test.helma.skin_test");
+    suite.addTest("test/core/array_test");
+    suite.addTest("test/core/object_test");
+    suite.addTest("test/helma/file_test");
+    suite.addTest("test/helma/unittest_test");
+    suite.addTest("test/helma/skin_test");
     suite.run();
 }
 

Modified: helma-ng/trunk/modules/test/core/array_test.js
===================================================================
--- helma-ng/trunk/modules/test/core/array_test.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/test/core/array_test.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,11 +1,11 @@
-include("helma.unittest");
-require("core.array");
-var logging = require("helma.logging");
+include("helma/unittest");
+require("core/array");
+var logging = require("helma/logging");
 var log = logging.getLogger(__name__);
 
 export('testCase');
 
-var testCase = new TestCase("core.array");
+var testCase = new TestCase("core/array");
 
 // test data
 var empty = [];

Modified: helma-ng/trunk/modules/test/core/object_test.js
===================================================================
--- helma-ng/trunk/modules/test/core/object_test.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/test/core/object_test.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,9 +1,9 @@
-include('helma.unittest');
-require('core.object');
+include('helma/unittest');
+require('core/object');
 
 export('testCase');
 
-var testCase = new TestCase('core.object');
+var testCase = new TestCase('core/object');
 
 testCase.testMerge = function() {
     var x = {a: 1, b: 2};

Modified: helma-ng/trunk/modules/test/helma/file_test.js
===================================================================
--- helma-ng/trunk/modules/test/helma/file_test.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/test/helma/file_test.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,10 +1,10 @@
-include('helma.unittest');
-var {File} = require('helma.file');
-require('core.string');
+include('helma/unittest');
+var {File} = require('helma/file');
+require('core/string');
 
 export('testCase');
 
-var testCase = new TestCase('helma.file');
+var testCase = new TestCase('helma/file');
 
 var filename = 'helma_file_test_' + String.random(10);
 var string1 = 'Hallo Welt!';

Modified: helma-ng/trunk/modules/test/helma/skin_test.js
===================================================================
--- helma-ng/trunk/modules/test/helma/skin_test.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/test/helma/skin_test.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,9 +1,9 @@
-include('helma.unittest');
-include('helma.skin');
+include('helma/unittest');
+include('helma/skin');
 
 export('testCase');
 
-var testCase = new TestCase('helma.skin');
+var testCase = new TestCase('helma/skin');
 
 testCase.testBasic = function() {
     var skin = createSkin('simple');

Modified: helma-ng/trunk/modules/test/helma/unittest_test.js
===================================================================
--- helma-ng/trunk/modules/test/helma/unittest_test.js	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/modules/test/helma/unittest_test.js	2009-03-19 14:17:44 UTC (rev 9544)
@@ -1,8 +1,8 @@
-include("helma.unittest");
+include("helma/unittest");
 
 export('testCase');
 
-var testCase = new TestCase("helma.unittest");
+var testCase = new TestCase("helma/unittest");
 
 testCase.testAssertTrue = function() {
     assertTrue(true);

Modified: helma-ng/trunk/src/org/helma/javascript/RhinoEngine.java
===================================================================
--- helma-ng/trunk/src/org/helma/javascript/RhinoEngine.java	2009-03-17 14:48:38 UTC (rev 9543)
+++ helma-ng/trunk/src/org/helma/javascript/RhinoEngine.java	2009-03-19 14:17:44 UTC (rev 9544)
@@ -136,7 +136,7 @@
                 resource = new FileResource(new File(scriptName));
             }
             if (!resource.exists()) {
-                String moduleName = scriptName.replace('.', File.separatorChar) + ".js";
+                String moduleName = scriptName + ".js";
                 resource = findResource(moduleName, null);
             }
             if (resource instanceof FileResource) {
@@ -302,11 +302,10 @@
         boolean isWildcard = moduleName.endsWith(".*");
         if (isWildcard) {
             String repositoryName = moduleName
-                    .substring(0, moduleName.length() - 2)
-                    .replace('.', File.separatorChar);
+                    .substring(0, moduleName.length() - 2);
             source = findRepository(repositoryName, localPath);
         } else {
-            String resourceName = moduleName.replace('.', File.separatorChar) + ".js";
+            String resourceName = moduleName + ".js";
             source = findResource(resourceName, localPath);
         }
         if (scripts.containsKey(source)) {
@@ -422,20 +421,18 @@
      * @return the resource
      */
     public Resource findResource(String path, Repository localPath) {
-        // To be consistent, always return absolute repository if path is absolute
-        // if we make this dependent on whether files exist we introduce a lot of
-        // vague and undetermined behaviour.
+        // FIXME: we allow absolute module paths, and we do not check
+        // if relative paths escape their root repository. These are
+        // of course gaping security holes for environments running
+        // non-trusted code.
         File file = new File(path);
         if (file.isAbsolute()) {
             return new FileResource(file);
+        } else if (path.startsWith(".")) {
+            return localPath.getResource(path);
+        } else {
+            return configuration.getResource(path);
         }
-        if (localPath != null) {
-            Resource resource = localPath.getResource(path);
-            if (resource.exists()) {
-                return resource;
-            }
-        }
-        return configuration.getResource(path);
     }
 
     /**
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.