Welcome to Helma!

Hannes Wallnöfer

Michael Platzer

This work is licensed under a Creative Commons Attribution 3.0 Unported License.

What is Helma?

Helma is a scriptable, open-source
Java Web Application Server

res.write("Hello " + java.net.InetAddress.getLocalHost());

Helma is written in Java and employs Javascript for its server-side scripting environment, removing the need for compilation cycles and reducing development costs while giving you instant access to leverage the whole wealth of Java libraries out there.

What is Helma?

Why Helma?

The top 10 reasons to give it a shot

  1. Helma is JavaScript! Well known, well established scripting language. Same language as on client-side
  2. Helma is Java! Scripted applications are compiled to Java, and server-side Java has proven to be quite fast and reliable
  3. Use existing Java-Libraries! Any available Java-library can be made accessible for the scripting environment. see here
  4. A light-weight. Rather small memory footprint, and is fast on start-up.
  5. Helma is open-source! BSD-style license

Why Helma?

The top 10 reasons to give it a shot

  1. Transparent database-mapping
  2. Efficient caching mechanism
  3. Smart (yet quite restrictive) templating mechanism
  4. Session management
  5. Integrated scheduling mechanism

What is Helma really?

Helma is a highly integrated Web stack consisting of:

Hands On Session

  1. Hello world!
  2. Javascript
  3. Prototyping
  4. DB Mapping
  5. Object Modelling
  6. Rendering Framework
  7. Java - JCaptcha
download helma-1.5.3 plus source code of this demo session

Hello world michi/192.168.0.108!

Download and install Helma
Write the application
-> http://localhost:8080/helloworld

Javascript

http://www.slash7.com/articles/2006/07/26/javascript-boot-camp-tutorial

Host Objects

Prototyping

We define a Prototype 'Person' and instantiate, persist, modify and remove it. See the HopObject-reference.

Please, ignore the fact for a while that we clearly violated MVC-principles in the above code. The goal of this mini-app is to demonstrate the HopObject-methods.

DB Mapping

We will map the defined prototype on a database. See the Mapping-reference.

You will need to have MySQL installed, execute mysql.sql on your database, put the jdbc-driver from mysql.com into [HelmaDir]/lib/ext, delete [HelmaDir]/db/demo and restart Helma.

HopObject Caching

HopObject Collection Caching

Object Modelling

We will define a prototype 'Organisation'. Each person may belong to a Organisation.

Rendering Framwork

Actions, Skins, Macros => MVC.
See http://helma.org/docs/guide/framework/.

Note: Hannes on history of rendering framework, current development and alternatives such as velocity.

Rendering Framework past, present and future

Java Integration - JCaptcha

JCaptcha: Java-Library for generating Captcha-Images.

Where is Helma going?

Helma 2 is a fresh implementation of Helma.

Helma (re-)organization