Components

From jalimo (inactive) Wiki
Revision as of 18:20, 23 November 2007 by Rschuster (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

To give you an idea, what we call Jalimo, we have described its main parts here. Jalimo is an open source project. The main parts come from established open source projects and are maintained in their upstream. The value of Jalimo is to make them available for Java developers on the different platforms, as well as adding the missing parts for a smooth usage. This happens either in the upstream project, in form of maintained patches or as separate projects.

Contents

Runtime

We use the CacaoJVM as virtual machine and GNU Classpath as class library. With this we have a runtime which is a mostly Java SE 1.5 compatible in the areas an average developer works. Furthermore this combination has a fast JIT compiler and a acceptable small size.

An even more light-weight runtime is JamVM. It has usually a good startup time characteristic. Since it runs bytecode only interpreted it is not so well qualified for computationally intensive applications.

Maven packaging pluin

We have written a maven plugin for packaging of Java projects to distribution specific packages (e.g. .ipk, .deb). This enables the normal Java developer to produce clean installable packages with standard Java technologies.

Jalimo Maemo SDK, Scratchbox

To further simplify the development for Maemo, we have assembled a Jalimo development package for the Scratchbox based Maemo SDKs.

Eclipse SWT

As primary UI solution for Maemo and OpenMoko we count on the Standard Widget Toolkit from the Eclipse project. This library provides an easy but powerful API for user interfaces. Because SWT uses native GTK widgets on GNU/Linux, it fits perfectly within GMAE. We have written a small patch, to make SWT apps look better within Maemo. It lets the SWT menu bar appear as a Hildon menu.

java-gnome

Java-gnome are the official Java language bindings for Gtk+. The project is in a rewrite and the api coverage is not complete, yet. However the upstream project is on the right direction and java-gnome is usable for small projects already. It has a good performance and fits perfectly on all Gtk+ enabled devices.

Scio

We believe, that the value of mobile devices rises through intelligent services. For the java world this normally means the usage of SOA and XML messaging. But Xml messaging on small devices is only fast if it is done very carefully. Therefore we have started to write a modern communication API, which integrates JAXB, SOAP, XMPP in a small StAX based api. It is called Scio.

OpenEmbedded

To maintain and support different platforms over a long time we want to use one build engine for all targets. Currently OpenEmbedded is the only platform capable of doing this. Since the Maemo and Java support are not perfect in OpenEmbedded yet, we are working on it to improve both.

MIDPath

Even if Jalimo focuses on a Java SE like environment, it would be nice to have an JavaME environment available. MIDPath is a free MIDP 2.0 implementation. Therefore we have done some integration work on it.

Future plans

We are observing the IcedTea and OpenJDK projects and hope that we can soon use its class libraries or even the Hotspot JVM for Jalimo.