la stessa domanda è venuta in mente e ho ottenuto i seguenti risultati:
1: Gemini è sulla base di primavera che ha una molto più lungo passato e dimostrato molto. Mentre guardavo il codice, Gemini sembrava un po 'più pulito con maggiori possibilità di estensione, ma avevo problemi con i gestori dello spazio dei nomi. Anche con la versione 1.0.0 non ha aspettato i gestori dello spazio dei nomi. L'Ariete attende i gestori NS nello stesso modo in cui attende i riferimenti richiesti. Ho chiesto ai ragazzi di OSGi e hanno detto che la prossima specifica di Blueprint potrebbe contenere un API di gestione NS standard che a mio parere sarebbe di grande aiuto. La mia conclusione è stata che utilizzo Apache Aries ma non è una decisione definitiva. Esamino questo argomento in ogni trimestre dell'anno. Ho anche suggerito come migliorare Blueprint e averlo caricato su OSGi bugzilla. Mi piacerebbe implementare questi miglioramenti in estate e, mentre osservavo il codice, sarebbe molto più semplice basandomi su Gemini.
2: Gemini contiene un Tomcat incorporato. Se semplicemente trascini i fasci in un equinozio funziona abbastanza bene. Tuttavia contiene diverse dipendenze da Spring che volevo evitare. Mi piace la primavera ma volevo meno dipendenze di cui avevo bisogno. Non credo che l'Ariete abbia alcun supporto importante in questo argomento.Finalmente ho iniziato a usare Jetty che funziona con Myfaces e Jersey fino ad ora. Non ho provato nient'altro fino ad ora. Inoltre mi sono piaciute di più le possibilità di configurazione del Jetty. Un bundle di configurazione può essere definito come una variabile di ambiente che può essere di grande aiuto se si desidera eseguire test di integrazione come parte del ciclo di vita della build. Se Gemini supporta più opzioni di configurazione (come quella proveniente dal pacchetto), penserò di trasferirmi su quello.
3: Poiché mi piace usare JTA, per me non è possibile utilizzare Gemini. Ho usato Ariete JPA per un po 'di tempo e ne sono rimasto soddisfatto. Lavorando con molti colleghi, sono responsabile della loro efficacia. Con Aries JPA ho avuto il problema che non aspettava i servizi DataSourceFactory (se la connessione db è definita nel persistence.xml) oi servizi DataSource (se jta-data-source o non-jta-data-source) sono definiti. Significa che l'ordine di partenza del pacco è importante quando si utilizza Aries JPA.
Non è stato un problema finché non abbiamo utilizzato Glassfish e JNDI come Glassfish ha avviato le risorse JNDI prima che i nostri bundle OSGI. Quando ci siamo spostati per pulire il container OSGI, abbiamo iniziato ad avere problemi ei miei colleghi hanno iniziato a dedicare una grande quantità di tempo a cercare di ottenere il giusto ordine di avvio del bundle.
Alla fine ho semplicemente inserito Aries JPA in un pacchetto e ho riscritto le parti che non mi piacevano. Ciò significa che ho conservato solo la parte parser persistence.xml e ho creato un proprio progetto allo http://everit.org/osgi/jpa/org.everit.osgi.jpa.container/index.html, dove mi sono concentrato senza avere questo problema. Attualmente funziona con Hibernate e immagino (non ho provato) con EclipLink e Compilare il tempo con OpenJPA migliorato. Il contenitore scritto da me funziona bene con i gestori org.apache.aries.jpa.container.context e aries jpa blueprint namespace.
4: Se si utilizza un server delle applicazioni e si è certi che l'ambiente JNDI si avvii prima dei pacchetti anziché utilizzarlo. Tuttavia non è possibile rilevare la modifica o rimuovere una risorsa JNDI, pertanto non suggerisco di utilizzarla all'interno di OSGi. Se necessario, grazie a JPA, posso suggerire l'implementazione del container :) che utilizza i tracker di servizio OSGi standard anche se si utilizza * -data-source nel persence.xml con osgi: service/... expression. Se è necessaria una posizione di configurazione centrale, si consiglia di controllare la scheda Configurazione di felix-webconsole, le parti Metatype e Configuration Admin delle specifiche OSGi. Se si definisce un'impostazione di configurazione con l'aiuto di Metatypes, questi saranno disponibili su feilix-webconsole e tramite l'API di amministrazione della configurazione sarà possibile rilevare gli eventi di modifica della configurazione. Ho provato e felix-webconsole ha funzionato per me anche sulla coppia Equinox-Jetty.
Spero che il mio contributo sia stato utile!