Ho un progetto che fa riferimento a un numero di librerie open source, alcune nuove, altre non così nuove. Detto questo, sono tutti stabili e desidero attenermi alle versioni scelte finché non avrò il tempo di migrare alle versioni più recenti (ho testato ieri hsqldb 2.0 e contiene molte modifiche API).Qual è il metodo standard per raggruppare le librerie dipendenti da OSGi?
Una delle librerie che ho voluto incorporare è Jasper Reports, ma come tutti voi sicuramente sapete, viene fornito con una montagna di file jar di supporto e ho solo bisogno di un sottoinsieme della montagna (noto) quindi sto pianificando per il pacchetto personalizzato di tutte le mie librerie dipendenti.
Quindi:
Ha tutti abitudine-faccia i propri fasci OSGi per librerie open-source che stanno utilizzando o c'è una fonte maestro di versioni OSGi di librerie comuni?
Inoltre, stavo pensando che sarebbe molto più semplice per ciascuno dei miei pacchetti semplicemente incorporare i propri barattoli dipendenti all'interno del pacchetto stesso. È possibile? Se scelgo di incorporare le librerie di focalizzazione di terze parti all'interno di un pacchetto, presumo che avrò bisogno di produrre 2 file jar, uno senza le librerie incorporate (per le librerie da caricare tramite classpath tramite il classloader standard) e una versione di osgi che include la libreria incorporata, quindi dovrei scegliere un nome di bundle come questo < <myprojectname> > - < <sottoprogetto> > -osgi-.1.0.0.jar?
Se non riesco ad incorporare le librerie open source e scelgo di raggruppare in modo personalizzato le librerie open source (tramite bnd), dovrei scegliere un nome bundle univoco per evitare conflitti con un possibile bundle ufficiale? per esempio. < <MyProjectName> >-< <3rdpartylibname> >-< <3rdpartylibversion> > .jar?
Il mio progetto non abilitato a OSGi attualmente esegue la scansione di plug-in personalizzati tramite la scansione delle cartelle META-INF nei miei vari jar di plugin tramite Service.providers (...). Se vado OSGi, funzionerà ancora questo meccanismo?
I vasi Spring hanno stampato Spring dappertutto e sembrano essere versioni precedenti di librerie (come la versione 2.0.5 di Jasper Reports). OSGi sembra bello in teoria, ma sembra che ognuno stia costruendo i propri pacchetti (compresa la primavera) che sconfigge lo scopo. Per non parlare del problema JDBC con OSGi. L'inferno DLL è stato risolto con il classpath. L'inferno del Classpath è stato risolto con OSGi. Cosa ci salverà dall'inferno di OSGi? – Chris
@Chris: è abbastanza vero sulla denominazione, ma poiché non esiste alcuna autorità centrale per fornire i pacchetti e non vengono creati dal proprietario, sembra un ragionevole compromesso. Almeno sapete da dove viene, e non fa differenza una volta schierato. Per quanto riguarda la sua utilità, è solo un altro strumento nella cintura, abbastanza utile per la costruzione di sistemi di tipo collegabile. – Robin
L'idea di utilizzare spring repo come sorgente per i plugin esterni di rcp è ottima, ma dove posso trovare l'URL del sito di aggiornamento/ripristino che ho bisogno di aggiungere alla mia definizione di destinazione. Ho provato a google ma non sono riuscito a trovare un url funzionante. So che aggiungere l'url alla risposta sarà presto superato. Ma sarebbe sicuramente di aiuto e forse altri lo aggiorneranno in futuro ... – Jens