2012-02-07 10 views
8

Gemini es la implementación de referencia para OSGi blueprint container, y Apache Aries es otro contenedor de blueprint que se usa ampliamente ... incluso dentro de Apache Karaf.Gemini y Apache Aries blueprint container

Si estoy comenzando un nuevo proyecto (con tecnologías de código abierto como requisito) y planeo usar blueprint, ¿cuáles deberían ser mis consideraciones al elegir entre estos dos?

es la elección basada en lo contenedor OSGi se utilizará, donde:

  • de Virgo a continuación, Géminis es su/sólo el mejor? anteproyecto elección contenedor
  • para Apache Karaf, entonces contenedor plan de Apache Aries si la elección preferida

Es más, ¿importa? Es decir, ¿puedo codificar contra las especificaciones del modelo y permitir que la implementación decida qué contenedor DI se usa en producción?

Lo siento si esta pregunta no es muy específica, pero el tema en sí es bastante confuso para mí.

Respuesta

5

Si solo está utilizando Blueprint, entonces su idea de codificar según las especificaciones y decidir cuándo implementarla es buena. El comportamiento de las dos implementaciones debería ser idéntico. Si tiene mala suerte, encontrará diferentes errores en los dos, pero ojalá no, ya que ambas implementaciones están maduras. Un factor que puede influir en su decisión final es que puede encontrar que el rendimiento es diferente entre los dos. (¡Pero para el rendimiento, mida, no adivine!)

Si va a hacer cosas más allá de Blueprint central, como JPA y JTA administrados por contenedor, encontrará que hay diferencias más obvias entre Aries y Gemini. Sé que Aries tiene un número de extensores Blueprint en esta área, por ejemplo (soy un committer de Aries).

En principio, Aries debería funcionar en Virgo y Gemini en Karaf, pero no estoy seguro de que me gustaría probarlo yo mismo, ya que las cosas en ambos apilamientos se basan en Blueprint.

-

http://www.manning.com/cummins - Empresa OSGi en Acción

+0

habría diferencias no como [éste] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=351755) hacer no es posible en la práctica impulsar la decisión hasta el momento del despliegue? – eis

+0

Si está codificando estrictamente contra la especificación, puede llevar la decisión al tiempo de despliegue. Si desea aprovechar las extensiones del modelo de programación, tiene razón en que se necesita una decisión anterior. –

Cuestiones relacionadas