2009-05-27 6 views
11

Estamos considerando utilizar Configuration Admin Service como una API principal para configurar componentes en nuestra aplicación basada en OSGi. Sería bueno si pudiéramos reutilizar alguna implementación existente, así que estoy tratando de investigar y evaluar los más populares. Sé que hay:Implementaciones existentes de OSGi Configuration Admin Service?

¿Hay otras implementaciones a tener en cuenta?

Además, no pude encontrar ninguna buena documentación para estas implementaciones. Me interesarían principalmente los detalles específicos de la implementación. Por ejemplo, me preguntaba cómo persisten las diferentes implementaciones de los datos de configuración (por ejemplo, archivos de propiedades múltiples, archivos XML, archivos XML múltiples, bases de datos, ...).

Respuesta

6

Las tres implementaciones públicas que conozco son

de Equinox Servicio parece no admitir el control fino sobre la política de persistencia, como lo hace Felix, y la implementación de Knopflerfish parece (solo he leído la fuente brevemente) similar a la de Equinox.

El Felix one parece ser el más actualizado y el más confiable.

Actualmente estos son los únicos que puedo encontrar; En dm Server tomamos la decisión de utilizar el paquete de Felix, y ahora se puede obtener desde SpringSource Enterprise Bundle Repository, donde puede buscar rápidamente Apache Felix o ConfigAdmin.

+0

Gracias por la confirmación, decidimos utilizar también la implementación de Felix Config Admin (junto con nuestra propia estrategia de persistencia). –

7

El administrador de configuración de Felix tiene un default implementation que persiste en el sistema de archivos, pero define una interfaz de servicio (org.apache.felix.cm.PersistenceManager) para los servidores de respaldo alternativos que puede conectar en su lugar.

La implementación por defecto hace lo siguiente:

Los datos de configuración de las tiendas de clase FilePersistenceManager en archivos propiedades similares al interior de un directorio dado. Todos los archivos de configuración son ubicados en el mismo directorio.

Los archivos de configuración se crean en el directorio de configuración al agregar la extensión ".config" al PID de la configuración. El PID se convierte en un nombre de ruta relativo al reemplazar los puntos encerrados por barras diagonales. Los caracteres de nombre no simbólico en el PID están codificados con su código de carácter Unicode en hexadecimal.

1

Solo para completar la respuesta aún más: personalmente también prefiero la implementación de Felix.Para obtener un ejemplo de cómo cambiar la forma en que se produce el almacenamiento en el back-end utilizando un PersistenceManager, consulte también la implementación this que usa archivos de propiedades Java estándar como almacenamiento de respaldo. Tiene algunas limitaciones, pero al menos le permite almacenar su configuración con su aplicación y aparte de la implementación de su marco OSGi.

Cuestiones relacionadas