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.
- http://dev.helma.org/wiki/Comparison+of+JSAdapter+and+JOMP/
- http://dev.helma.org/static/files/2302/helma.txt
Getting Started
-
You need to have Java installed
- download Openmocha
- 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
- login at http://localhost:8080/exampleapp/login
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.
- http://groups.google.com/group/openmocha
- irc://irc.freenode.net/helma
- http://helma.zumbrunn.com/hopbot/
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