Differences between Helma 1 and Helma NG
hide
ContentsIt is quite obvious for anybody familiar with Helma 1 that NG is quite different in many fundamental ways. This article highligts some of the differences, and explains the reasoning behind these changes. I've grouped the changes into two groups: the big, obvious ones, and the smaller, not so visible ones. Obvious ChangesMore Javascript, Less JavaTODO The Helma ShellTODO No HopObjects at the CoreTODO Non-Obvious ChangesNon-accumulative Repository ChainLike Helma 1, Helma NG is based on the concept of a list of repositories from which code and other resources are read. In fact, the repository package (contributed to Helma by Daniel Ruthardt) is one of the few larger packages of code Helma NG shares with its predecessor. However, Helma NG treats the repository path quite differently than Helma 1. Helma 1 in many cases treated the repository path in an accumulative way, meaning that things later on in the path could add to things defined in front of them. This was true for all kinds of properties files, scripts and skins. Helma NG, on the other hand, uses a more conservative approach: The first resource found in the repository path is used, and once the resource is found the search is terminated. The reasoning behind this change is mostly to reduce complexity. Adding to one logical reource in several places can have terrible effects on clarity. By defining one thing in one place we hope to faciltate separation of concerns and improved molularity. No need for complex URL compositingIn Helma 1, getting the URL of objects was a pretty complex task. HopObjects have a href() method to produce the correct URL, generated by walking down the parent path to collect the names of all elements in the path. Helma NG tries to avoid the need for this kind of URL generation mechanism. One important part of this is that requests are always redirected to their canonical URL. If a request resolves to an object with an implicit main action and the URL path does not end with a slash character, the request is redirected to the same URL with a trailing slash. This (simple) mechanism, which is commonly used by webservers when the URL resolves to a directory, makes sure that all relative URLs and HREFs will always be correct. In summary, the means to create URLs and HREFs with Helma NG are:
|
navigation
Download
Community
Weblog
Mailing Lists
IRC Channel
Documentation
Introductions
Tools
Reference
Project
Roadmap
Bug Reporting
Source
Helma NG Wiki
Wiki
Tags
Updates
Related Projects
Sites using Helma
Shop
search
all tags
Tagsapps (1) bugs (2) class (1) community (2) compatibility (1) concurrency (1) continuations (2) Documentation (6) dogfood (1) formatting (1) functions (1) gobi (1) helma (7) helma 1.6 (13) helma 1.7 (8) helma 1.x (1) helma 2 (11) helma ng (18) hopobject (1) howto sample code xml-rpc (1) html (1) inheritance (5) introspection (1) java (3) javascript (5) jetty (1) JSDoc (1) lazy (1) marius person (1) metaprogramming (2) modules (3) oop (1) organization (2) ORM (2) parsing (1) plugins (1) project (2) projects (1) prototype (2) prototype scope rhino functions this (0) Rabbit (2) Reference (1) REPL (1) rhino (5) roadmap (3) scope (1) shell (1) shop (0) Skin Rendering (5) Snippets (1) source svn (1) sugar (3) templates (13) testing (4) this (1) Tobi (7) xml (1) Pages linking to this page: Wiki Overview Text Draft, wiki |