Explore the introductions below and discover what you
The main HopObject of every application is the "root" object. Every HopObject can have a collection of attached additional HopObjects. Each requested URL is resolved to a particular HopObject according to these collections.
In the "welcome" application for example, a request to http://helma.serverjs.org/first/second/ will be resolved by checking the "root" object's collection for a HopObject named "first" and the "first" object's collection for a HopObject named "second".
While this path resolution is by default performed based on the ID of the attached HopObjects, collections can be custom configured to use another property as access name. In this example, the HopObject prototype is configured at ./apps/welcome/code/HopObject/type.properties to use the "name" property for this purpose.
_children = collection(HopObject) _children.accessname = name name
When a new HopObject is added to such a collection, it is automatically stored in Helma's embedded XML database. To see a detailed example of how this works, go to http://helma.serverjs.org/first/ and add additional HopObjects.
Documentation of HopObject functions and built-in properties: