The OW2 Chameleon Stacks

The Chameleon project aims to provide a simple way to lay out specific OSGi runtimes fitting your requirements. The strategy is to provide a layered stack. Each layer focuses on a specific part of the system: from the underlying runtime to a service catalog containing useful and reusable services.


The Chameleon Service Catalog

The Chameleon service catalog lists services and their implementations. This catalog focuses on the service concept and implementations are substitutable. So, you can choose your implementations according to your requirements and switch dynamically to another one. The catalog contains not only services defined and implemented on OW2 Chameleon, but also contains standard OSGi services as well as other services.

Most of them are available from the Chameleon OSGi Bundle repositories or common OSGi bundle repositories.

The Infrastructure layer

The infrastructure layer contains a set of frameworks to:

  • Interact with remote services and deal with distributed event protocols
  • Introspect the current state of the system
  • (Re-) configure the system
  • Administrate the system and the applications
Depending on the application, you can choose the framework you need, deploy them later…

Deployment and Provisioning

Chameleon does not define one single way to deploy components, but supports several mechanisms such as:

  • Apache Felix FileInstall: to install bundles locally easily (like a ‘deploy’ folder on JavaEE application server)
  • OSGi Bundle Repository: to deploy OSGi components and their dependencies
  • OSGi Deployment Admin: to deploy a set of OSGi bundles inside one deployment package
  • Apache Ace: to manage the deployment on a set of OSGi runtimes

Chameleon Core

The Core defines a standard way to launch applications. It is a lightweight framework providing the OSGi runtime as well as a couple of technical services such as:

  • An OSGi configuration admin service and configuration support
  • Logging Support and backend (SLF4J)
  • Basic deployment features (static installation, File Install…)

Chameleon Distribution

A Chameleon distribution is a specific pre-configured stack containing a set of selected components to fit one domain such as web applications or lightweight servers. When you download a distribution, you have everything that you need to run the Chameleon. But you can always extend / customize it to fit your needs.