Helma 1.6.0 Changelog
- Update to Rhino 1.6 (patched CVS snapshot) implementing JavaScript 1.6, including:
- E4X support, both without and with Apache XML-Beans.
- New Array methods indexOf(), lastIndexOf(), filter(), map(), every(), forEach(), some().
- for each loop.
- Support for __defineGetter__ and __defineSetter__ for getter/setter support.
- Support for __noSuchMethod__
- Support for const keyword
- JavaImporter constructor for clean access to Java libraries.
- Many bug fixes.
- New Skin features:
- Subskins:
<% #subskin %> and renderSkin("skin#subskin"), respectively - Macro pipes/filters:
<% text | truncate max="300" | uppercase %>. Filter functions must have a _filter suffix and get two arguments: the return value of the previous macro/filter in the chain, and a parameter object with the attributs in the filter tag. They are expected to return the filtered macro output. - Deep macro invocation:
<% page.author.name %> - Nested Macros:
<% page.link content=<% messages.storylink %> %> - new onUnhandledMacro() callback that allows to catch or handle unhandled macros.
- New standard attribute:
failmode=silent|verbose. - Better handling for malformed macro tags.
- New HTTP-related features:
- Specialized and aggregated parameter collections req.postParams, req.queryParams, req.params, req.cookies in addition to req.data
- Improved handling of multi-value parameters, allowing access to parameter values as arrays, even if they only have one value.
- HTTP parameter grouping, mapping parameters with names like "foo[bar]" to req.data.foo.bar
- Additional HTTP header methods req.getHeader(), req.getHeaders(), req.getIntHeader(), req.getDateHeader(), res.setHeader(), res.setDateHeader(), res.addHeader() and res.addDateHeader()
- Any bytes remaining after GET/POST parameter parsing are made accessible as req.data.http_get_remainder, req.data.http_post_remainder.
- Improved file upload memory handling, new MimePart.getInputStream() method
- Support for monitoring file upload progress
- Additional apps.properties totalUploadLimit setting to limit combined file upload size (as opposed to individual upload size)
- New Image constructor that takes a java.io.InputStream as argument
- Support for sourceCharset in app.properties to specify the encoding of source files
- New HopObject.indexOf() and path.indexOf methods, deprecating the existing HopObject.contains() and path.contains
- Implement app.getAppsProperties() to allow access to the app's apps.properties entries.
- Add res.rollback(): Just abort transaction and do not stop request execution like res.abort() or res.stop().
- New HopObject.onPersist() callback that is called each time a HopObject is stored to embedded or relational database.
- Rhino fix to make protected Java methods accessible and overridable to subclassing JavaAdapters.
- Pimped up documentation, including JSDoc JavaScript API docs for Helma core and modules libraries.
- Implement JS stack traces.
- New rhino.strictvars property to throw errors on undeclared vars.
- Implement onResponse() callback which, if defined, is called after the request has been processed.
- Implement res.buffer to access current page output
- Implement res.stop() to stop request execution
- Implement res.pushBuffer(StringBuffer) and res.popBuffer() to get StringBuffers in and out of the response buffer stack.
- Implement app.charset and app.getCharset() to get the app's default charset.
- Do not reuse per thread scope, create a new one for each request
- Increase default maxThreads value to 50 (evauators aren't that expensive anymore)
- Upgrade to Jetty 4.2.27.
- Removed old and obsolete ant infrastructure. Developers are now required to have their own ant installed.
- Support binary database column mapping
- Fully implement prototype compilation on access of static constructor properties. Previously access of prototype members didn't trigger compilation.
- Adding tagsoup.jar version 1.0.4 for use with getHtmlDocument(), throw away subclass of Swing HTML parser.
- Remove lib/apache-dom.jar, from now on Xerces jars are required in order to use getHtmlDocument().
- Remove crimson.jar at last, it isn't needed for JDK 1.4 and later.
- Update to jakarta commons-logging 1.1, commons-fileupload 1.2 and commons-io 1.3.1
Links to this page: Announcing Helma 1.6.0 Release Candidate 1, Release Candidate 3 of Helma 1.6.0, Announcing Helma 1.6.0