e4xd and jhino - experimental soft-coding scaffold using JOMP
As mentioned in the Additional Filename Conventions proposal, I've been experimenting for some days with the JOMP patch for Rhino and using more filename conventions to map hard-coded files with soft-coded properties of content objects.
What I came up with, is basically a new and experimental core for a complete rewrite of Openmocha.
The soft-coding allows modifications and development work from the "inside" of the running web application. The behavior of the web application can be changed in ways that closely relates to the hierarchical content structure of the resulting website, without the need to "hard-code" these changes in code files.
Every content object becomes "sovereign" and can define its own behavior, overriding what it would inherit from the hard-coded prototypes or from other soft-coded objects higher up in the content structure hierarchy.
The e4xd objectengine leverages naming conventions for hard-coded filenames and soft-coded object property names to overlay the hard-coded and soft-coded properties and methods and determine the behavior of an object at runtime.
Internally, these conventions follow the existing ones of the Helma framework, but expand that philosophy, adding additional conventions and accomodating to the needs of the soft-coding environment.
The jhino sub-project provides an additional layer of conventions, resulting in a basic scaffold for a working base application with CRUD type functionality and access control. Basically, jhino already provides a fully working soft-coding environment, but requires the standard Helma development tools such as the shell and inspector to do the actual "soft-coding".
- download Openmocha (or just the jhino modules and place the files in the right places yourself)
- extract the downloaded archive
- execute ./start.sh (or start.bat on Windows)
- create an admin account at http://localhost:8080/exampleapp/register
- copy the authentication code to the server.properties file
- register/login at http://localhost:8080/exampleapp/login
The source for this is also at http://e4xd.googlecode.com/