How to use the Cameleon OSP Components - an Overview


Before you start using Cameleon OSP, you should be familiar with runtime configuration, writing, compiling and running java applications in general. If you want to develop server applications, we recommend to acquire basic knowledge on Unix and MySQL before you start.

Get the source



Since the author uses JBuilder 3, paths often follow these conventions. The JBuilder project files are part of the distribution. To fit to other IDE's habits, copy the source (directory src) into the appropriate source directory of the IDE and import the files in the respective project files.

Run sample applications

Client(-Server) applications

Server applications

The paradigm of the Cameleon Open Source Project

Edit your application in an abstract way and let the framework realize the concrete technical solution.

If the user is to be informed that an entry cannot be deleted, you could

Instead we should use the method setMessageToKeep and let the framework decide in which way this is going to be realized. Maybe tomorrow something else is hip.

Swing / Servlet / JSP Decision

At first: No matter how you start, your work is never useless, because many things are similar in this framework. Anyway, once you will decide which way to go. If you decided to create a server application: The advantage of the pure Servlet variant are few instructions, reliability and a great flexibility to change behaviour and layout retrospectively. The advantage of Java Server Pages is individuality and creativity.

Set up your own project

What you should basically know

Concerning database

The database connection is specified in de.must.dataobj.ConnectionSpecification, this class provides the connection via method getConnection(). It's recommended to make the main connection globaly available in a subclass of de.must.middle.GlobalStd for each application.

Tables are described in Objects extending de.must.dataobj.DataObject. If your database is already created, you need not more than defining the table name. If not, it is recommended to define your table as a subclass of DataObject and generate creation scripts or the database itself out of these descriptions by sbuclasses of de.must.dataobj.TableCreatorStd (see samples).

The primary key is administrated by DoIdent, a de.must.dataobj.DataObject. You need this object and the associated table "Identity" to insert records.

Concerning Data Modification

The concept to navigate through big amounts of data is:

For Swing UI see de.must.wuic.SimpleDataListFrame and de.must.wuic.DataPropertyAdministration.
For HTML UI see de.must.markup.Enquiry, de.must.markup.DataList and de.must.markup.DataPropertyAdministration.
Check out suitable sample applications.


Icon Repository

We found a small icon repository at Sun allows to redistribute it.

Further Information

Internet Information

Look at for newer documentation.

API Documentation

Check out the API Documentation. To understand the framework and its usage we recommend:


The first expected questions are answered in FAQ.html. You're welcome to join the Cameleon OSP and ask additional questions in the Cameleon help forum to let the FAQ grow.
© Copyright 2001-2004 Christoph Müller, Kärntner Str. 56, D-70469 Stuttgart, Germany,