Helma NG 0.2
Helma NG 0.2 is the next version of Helma NG and was released on May 21 2008.
This page serves a historic purpose only as it was used as idea scratchpad during development. For up-to-date release info about the release, head over to the Helma NG 0.2 page in the NG space.
Contents [hide]
Some of the implemented features
- Low level skin support, and support for skin parsing and rendering. Low level skin parsing will use a callback based approach. The parseSkin() function will take two arguments: the name of the skin resource and a javascript function that will be called with the skin parts as arguments as they are parsed. It is expected that modules that implement skin rendering functionality build on top of this low level API to provide more abstraction.
- helma.skin module implementing basic helma 1 skin functionality, subskins and skin inheritance.
- JSAdapter support for modules. Just define any of the following functions, and the module will behave accordingly.
- Support for continuations.
- Static file serving with the development server.
- A logging module based on Apache log4j.
Planned features that weren't implemented
- A modules module that provides meta information about loaded modules. In addition to an overview of loaded modules, currently I think we'll need the following:
- modules.name - the name of the current module
- modules.path - the path of the current module relative to the 'root' module (for href generation in simpleweb)
- modules.parent - a reference to the module that loaded the current module (for relative resource paths in skin loading)
- maybe a way to retrieve the file system path of the module, but I think getResource() covers this already.
- Port over more modules from Helma 1.
- Move over rhino serialization code from helma 1.
Other ideas, mostly not implemented
- Rethink the module namespace. Does very generic stuff such as File IO need the 'helma' prefix? (hns)
- Allow modules to define which properties to export, and keep the others private? This would again require some sort of wrapping.
- Support for running web server and shell simultaneously, running compiled and interpreted code in the same app, and launching the debugger in running apps.
- Include gobi markuplib as module?
- Make module for functional programming utils contiaing partial() from gobi markuplib. Check with functional programming pundits for what else to include.