zumbrunn.com

e4xd and jhino - javascript server-side soft-coding

A new and experimental core for a complete rewrite of Openmocha. 

The e4xd sub-project provides the javascript server-side for

the Openmocha project, a javascript application server with a 

"soft-coding" framework.

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 a base application scaffold for the

soft-coding environment. It leverages the e4xd object engine and adds 

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".

The e4xd javascript server-side currently requires a patched version

of Helma and Rhino. In the case of Rhino, e4xd depends on the JOMP 

patch and Helma needs to be modified to do the additional file suffix 

mapping required by e4xd.

Getting Started

 

Prerequisites and System Requirements

To run OpenMocha a Java Virtual Machine 1.4 or better is required.

For FreeBSD and other operating systems with ports collection you may

install a JRE or JDK from the ports collection. For Windows, Linux and 

Solaris you can get a Java runtime or development kit from 

http://java.sun.com/j2se/downloads/. If you are on Mac OS X then you 

already have a Java runtime that will work well with OpenMocha.

While you can integrate OpenMocha with other tools such as Apache

and MySQL, you do not have to. OpenMocha is pre-configured to be 

deployed on its own and comes with a built-in object oriented 

database and web server.

Getting started with OpenMocha

On the e4xd.org site, you should be able to find a working build to 

download and simply start with ./start.sh

For FreeBSD, Linux, Solaris, Mac OS X and other Unix flavors, start

the Helma framework by invoking ./start.sh from the command line. On 

Windows, invoke start.bat instead.

If the java command can not be found, make sure the JAVA_HOME

environment variable is set to the location of your Java installation.

With Helma running, you should be able to connect using your

browser and the URL http://127.0.0.1:8080/ or http://localhost:8080/

To initialize the setup, complete the user registration form

at http://127.0.0.1:8080/exampleapp/register and follow the 

instructions to copy the security information into the 

server.properties file. You may then login to your new OpenMocha 

server via http://127.0.0.1:8080/exampleapp/login and start 

configuring and deploying your web applications. 

Installing jhino modules in a existing Helma setup

In addition to the full openmocha build, there is also a build that

contains only the jhino modules and patched jar files, in order to 

add jhino to your own helma install. You would need to replace the 

helma.jar and rhino.jar in your Helma install with the patched 

versions. The "objectengine" and "jhino" modules are expected 

to be placed in Helma's modules directory and the exampleapp would 

normally go into Helma's apps directory. You could then start the 

example app from your manage application or add it to the 

apps.properties file to have it start automatically.

More info and help

Other than what you find on the (possibly not yet existing) e4xd.org

website, the best places to get in touch are the openmocha mailing 

list and google group or the #helma@irc.freenode.net IRC channel

Also, in case you are new to Helma, you of course need to add the

helma.org website and mailing lists to the top of that list.

To get in touch with me directly, you should find additional contact

information on the zumbrunn.com site.

Chris Zumbrunn <chris@zumbrunn.com> https://zumbrunn.com

22.1.2008, 16:35