Helma 1.7 wishlist
Some vague feature ideas for Helma 1.7
Contents [hide]
Decouple Objectmodel API
Try to decouple helma.objectmodel from the rest of the framework, and start layering a javascript interface on top of it so it can be used in stand-alone/explicit fashion.
Status:- HopObject-less Helma applications
- Programmatically defined HopObject mappings
- Logical next step would be to bring those two together and "re-conventionalize" automatic root object lookup
Alternative Session Implementations
Start using SessionManager to actually implement different session management schemes.
- db persistence
- client based persistence
- replication/load balancing
Status: nothing so far. What we could possibly do is implement HopObject persistence for session nodes (mapping to a Session object).
Allow skins to extend/inherit from each other
This is a very useful idea to take from Django. This allows developers to create a base.html template with the shared XHtml boilerplate code, and let sub-templates fill in the actual content.
The subskins feature introduced in Helma 1.6 are a perfect fit for this. Extending a skin would have the same effect as partially overriding a skin from another repository: Some subkins may be overridden, the others (and usually the main skin) are inherited from the base skin.
Status: Still trying to come up with a syntax for this that is neither ugly nor breaks existing code.
Sort out macro resolver problems
Solve macro resolver problems introduced with the fix for bug 617. Discussion thread is over here.
Library and Modules
- Extend and enhance helma.File.js and other modules
- Url.js that parses all fields (rfc3986) and allows to set them. examples: python like urlparser or minimalistic parseUri
- Start removing core extensions in favor of modules?
- Some work done on helma.File and helma.Mail.
- No decision yet on removal of core extensions.
Varargs Support for res.write() and consorts
Allow to pass 0..n arguments to res.write(), res.writeln(), res.debug() and similar methods. My proposal is to write out arguments separated by a single whitespace like print does in python.
Status: pending due to performance considerations regarding java varchar.
More Ideas
- Provide full configurability when running Helma in embedded (tomcat) mode.
- Support Jürg Lehni's rhino extensions
Support JSAdapteralready in helma 1.6.2- allow apps.properties extensions to be defined in app.properties (without the "appname." prefix)
- Rewrite helmadoc to rewrite with standard rhino (no more token patch)
- Drop helma.doc package, maybe in favour of jsdoc-toolkit, or get token parsing funcitonality accepted into rhino cvs.
- Debian/Ubuntu package for Helma
Comments
Hannes,
BUT will this mean having to switch over to using the rhino bundled in java6 ???JSAdapter turns out to be just a Java class and its now added in helma 1.6.2 in package helma.scripting.rhinoA huge improvement would be a better documentation. It's impossible to get a "quick" overview over Helma and it's features. If you see some advanced source at work it's really hard to understand what's going on.
Maybe this point is a nice job for a "HTL-Diplomarbeit" or bachelor thesis. I know some really good HTL examples from the past, but I've no idea how it's today.
As a first step to decoupling the Persistence API (which I do think is a fantastic idea) could be to implement http://helma.org/bugs/show_bug.cgi?id=612
which should then allow new persistence schemes to be "tried out" in pure js.