Latest News

2004-11-28: JChassis version 0.2.1 has been released. This version introduces minor changes to make JChassis compatible with J2SDK version 1.5.0.

2004-03-21: The second release of JChassis, version 0.2, has arrived! This release now uses the kXML2 package, making the code size overhead of using the full JChassis framework less than 60KB. Other new features include a resource location service, an object storage/retrieval service, and a shutdown service. The modules to control ANSI-compliant terminals and to generate simple user interfaces on them have been improved considerably.

Overview

What is JChassis?

JChassis is a component framework for writing efficient and modular Java applications. Some application frameworks require developers to import large libraries into their code, making the framework unsuitable for creating smaller application and tools that might be required for constrained devices or environments. Not so with JChassis — the motto here is "do simple things simply". With JChassis you add as much, or as little, as you want to your application, depending on your requirements. The "core" JChassis framework is about 15 KB of bytecode, though its functionality is quite limited. The next level up is the "basic" framework, which is more suitable for general applications, and currently weighs in at under 60KB, plus any optional components. Both framworks can run on cut down Java runtime such as J2ME Foundation Profile

JChassis is designed to promote sharing and reusing of components, and provides a growing collection of components that can take care of the mundane functions of an application such as command line parsing and logging, and eventually more advanced features such as GUI configuration, managing user preferences, common server functions, etc.

JChassis components provide "services" to an application. Every service is represented by a Java interface and each service can have any number of different implementations. Implementations that a particular application uses can be replaced simply by changing a configuration file, avoiding the need to recompile the application. Different parts of an application may use different implementations of the same interface. Finally, the configuration file can be used to set properties (in the JavaBean sense) on each implementation as it is instantiated, providing a powerful configuration facility for your application.

What JChassis is Not

JChassis is not a web application framework. It is designed by experienced developers, for Java developers. Neither is it a visual programming tool. It is not a GUI framework, although some components will cater for GUI-specific functions at a later stage. It is not EJB (Enterprise Java Beans).

Motivation

The primary motivation for JChassis is to promote code reuse. I won't go into the details of the benefits of code reuse — see any good text book on software engineering. All experienced Java developers are aware of these benefits, except perhaps those that don't learn from their mistakes. Those developers usually spend their lives trying to maintain the reams of "cut-and-paste" code that they have created. Personally, I have better things to do!

The goal is that the JChassis framework and components will give developers a head start when creating applications, and that in turn, developers will contribute components to the JChassis collection. This way developers can spend time writing the "interesting parts" of their applications and leave the boring stuff to be carefully polished and tested by the JChassis team.

System Requirements

JChassis frameworks will run on Java 1.1 or later. One major aim is to scale it down further to run under Personal Java and J2ME. So far, most components can run under Java 1.1, but this is not always going to be the general rule. Alternative Java 1.1 compatible components will be provided where possible.

License

JChassis is licensed under version 2.1 of the GNU Lesser General Public License (LGPL).

Status

See the status page.


Copyright © 2002-2004 Sam Stainsby. All rights reserved. Verbatim copying and distribution of this entire document is permitted in any medium, provided this notice is preserved.

SourceForge.net Logo

$Id: overview.html,v 1.7 2004/12/20 09:24:27 stainsby Exp $