Helma Logo
main list history

Version 9 by zumbrunn on 04. October 2009, 18:27

1This page docuents documents new features in Helma 1.7. As Helma 1.7 hasn't been released yet, this page is incomplete and work-in-progress.

Version 8 by hannes on 29. September 2009, 09:11

34
35### Profiler
36
37Helma 1.7 features a profiler for measuring function runtime and invocation frequency. Profiling data is written to the event log and the response's debug area. To enable the profiler set the the `rhino.profile` app property to `true`. More information can be found on the [Profiler] page.

Version 7 by tobi on 22. September 2009, 08:14

9Helma 1.7 defines a new static method on HopObject constructors that allows to *generate [generate HopObject collections via JavaScript|Creating JavaScript][Creating collections programmatically*programmatically]. The method is called HopObject.getCollection() and takes a single JavaScript object as argument. It returns a HopObject that is equivalent to the one you would get by defining it as a collection in a type.properties file.

Version 6 by hannes on 21. September 2009, 22:42

3=== ### Case sensitive HopObject property names
7=== ### Programmatically generated collections
11=== ### Programmatically defined HopObject mappings
13There is a new and experimental definePrototype function that allows to *define [define prototype mappings via JavaScript|defining JavaScript][defining HopObject mappings programmatically*programmatically]. In its current implementation, there is a global function called definePrototype() that takes two arguments: The prototype name, and a JavaScript object describing the type mapping.
15=== ### Apache Commons Daemon support
17Helma 1.7 introduces *Apache [Apache Commons Daemon|http://commonsDaemon](http://commons.apache.org/daemon/* org/daemon/) support, making it possible to run the embedded Jetty server on port 80 for ordinary users on Unix and running Helma as service on Unix and Windows systems. There also is a *Debian/Ubuntu package|https://launchpad[Debian/Ubuntu package](https://launchpad.net/~hannesw/+archive/ppa/+sourcepub/469276/+listing-archive-extra* net/~hannesw/+archive/ppa/) that indorses Commons Daemon jsvc utility to install Helma as service.
19=== ### Lazy collection loading
21 * HopObject.list(), when called without arguments, no longer fetches all contained objects.
22* HopObject.list(start, length) (when called with start and length arguments) prefetches the requested object range.
23 * Large object collections HopObject.list(start, length) (when called with more than 1000 elements divide their list of child ids into multiple segments where each segment is loaded individuallystart and length arguments) prefetches the requested object range.
24
25 * Large object collections with more than 1000 elements divide their list of child ids into multiple segments where each segment is loaded individually.
26
27### Query parameter argument to HopObject.href()
28
29HopObject.href() now takes a JavaScript object as optional second argument after the action name. The argument's properties will be encoded to a query string and added to the returned URL. The object may also contain nested objects, which will be encoded using the `outer[inner]` format. For example, the following call:
30
31    root.href('', {foo: 'bar', nested: {x: 1}});
32
33returns `/?foo=bar&nested[x]=1`, which is parsed back to the original object structure when received by Helma.
34    

Version 5 by hannes on 15. September 2009, 10:24

23* Very large Large object collections (currently > 10000 elements) break loading with more than 1000 elements divide their list of child ids down into multiple segmentssegments where each segment is loaded individually.

Version 4 by hannes on 17. April 2009, 16:36

18
19=== Lazy collection loading
20
21* HopObject.list(), when called without arguments, no longer fetches all contained objects.
22* HopObject.list(start, length) (when called with start and length arguments) prefetches the requested object range.
23* Very large object collections (currently > 10000 elements) break loading of child ids down into multiple segments.

Version 3 by hannes on 02. April 2009, 14:14

15=== Apache Commons Daemon support
16
17Helma 1.7 introduces *Apache Commons Daemon|http://commons.apache.org/daemon/* support, making it possible to run the embedded Jetty server on port 80 for ordinary users on Unix and running Helma as service on Unix and Windows systems. There also is a *Debian/Ubuntu package|https://launchpad.net/~hannesw/+archive/ppa/+sourcepub/469276/+listing-archive-extra* that indorses Commons Daemon jsvc utility to install Helma as service.

Version 2 by hannes on 02. April 2009, 11:01

11=== Programmatically define defined HopObject mappings

Version 1 by hannes on 02. April 2009, 11:00

1This page docuents new features in Helma 1.7. As Helma 1.7 hasn't been released yet, this page is incomplete and work-in-progress.
2
3=== Case sensitive HopObject property names
4
5Property names in HopObjects are now case sensitive. This means that obj.foo, obj.Foo and obj.FOO no longer point to the same property. This feature should help to enforce good programming habits and speed up property access.
6
7=== Programmatically generated collections
8
9Helma 1.7 defines a new static method on HopObject constructors that allows to *generate HopObject collections via JavaScript|Creating collections programmatically*. The method is called HopObject.getCollection() and takes a single JavaScript object as argument. It returns a HopObject that is equivalent to the one you would get by defining it as a collection in a type.properties file.
10
11=== Programmatically define HopObject mappings
12
13There is a new and experimental definePrototype function that allows to *define prototype mappings via JavaScript|defining HopObject mappings programmatically*. In its current implementation, there is a global function called definePrototype() that takes two arguments: The prototype name, and a JavaScript object describing the type mapping.