Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Existing implementations of OSGi Configuration Admin Service?

We are considering to use Configuration Admin Service as a primary API for configuring components in our OSGi-based application. It would be nice if we could reuse some existing implementation so I'm trying to investigate and evaluate the most popular ones. I know there is:

  • Apache Felix Config Admin (org.apache.felix.cm)
  • Equinox Config Admin (org.eclipse.equinox.cm)

Are there any other implementations to be considered?

Also I was not able to find any good documentation for these implementations. I would be mainly interested in the implementation-specific details. For example I was wondering how different implementations persist the configuration data (e.g. multiple property files? XML file? multiple XML files? database?, ...).

like image 918
Pavol Juhos Avatar asked May 27 '09 12:05

Pavol Juhos


2 Answers

Felix's Configuration Admin has a default implementation that persists to the file system, but they define a service interface (org.apache.felix.cm.PersistenceManager) for alternative backends that you could plug in instead.

The default implementation does the following:

The FilePersistenceManager class stores configuration data in properties-like files inside a given directory. All configuration files are located in the same directory.

Configuration files are created in the configuration directory by appending the extension ".config" to the PID of the configuration. The PID is converted into a relative path name by replacing enclosed dots to slashes. Non-symbolic-name characters in the PID are encoded with their Unicode character code in hexadecimal.

like image 160
Thilo Avatar answered Oct 22 '22 19:10

Thilo


The three public implementations I know of are

  • Apache Felix
  • Equinox …source (this has moved recently)
  • Knopflerfish …front page and …source

Equinox's implementation of the ConfigurationAdmin service appears not to support fine control over the persistence policy, as Felix's does, and the Knopflerfish implementation looks (I've only read the source briefly) similar to Equinox's.

The Felix one appears to be the most recently updated and the most reliable.

At present these are the only ones I can find; at dm Server we made the decision to use Felix's bundle, and this is now obtainable from the SpringSource Enterprise Bundle Repository, where you can quick-search for Apache Felix or ConfigAdmin.

like image 34
Steve Powell Avatar answered Oct 22 '22 19:10

Steve Powell