Domanda

Qualcuno ha usato OSGi e JSF insieme?

Chiedo perché JSF usa la magia del caricatore di classi per trovare componenti personalizzati. Da un tutorial (mio accento):

  

Questo file di configurazione finirà   essendo META-INF / faces-config.xml nel file   File .jar che rappresenta questo   componente. JSF cercherà tale   nome del file in ciascuno dei file .jar   che vengono caricati in fase di esecuzione (in   Directory WEB-INF / lib per file .war)   e usa ciascuno di essi nel suo   configurazione. In questo modo, multipli   i file .jar del componente possono essere combinati   in un'unica applicazione Web e tutto il resto   i componenti descritti in ogni .jar   sarà disponibile per l'applicazione.

Vorrei poter avere componenti personalizzati JSF come bundle OSGi (ovvero i componenti personalizzati sono in bundle OSGi diversi rispetto al runtime JSF) e consentire a JSF di trovarli in fase di esecuzione.

Qualcuno ha fatto qualcosa di simile?

È stato utile?

Soluzione

È possibile nel modo seguente:

  • Il tuo bundle web osgi deve avere " Require-Bundle " in MANIFEST.MF che punta al bundle che contiene i componenti
  • Il jar del componente deve avere Export-Package contenente META-INF e pacchetti secondari di META-INF in cui è presente un file relativo a JSF (e ovviamente pacchetti standard del componente). Ad esempio: Export-Package: META-INF, META-INF.resources ...

Se usi il plugin maven-bundle devi usare un apostrofo e un uguale per esportare META-INF e sotto-pacchetti. Ad esempio:

<Export-Package>
  a.b.c,
  '=META-INF',
  '=META-INF.resources',
  ...
</Export-Package>

Nella specifica 2.2 JSF potrebbero esserci parti sulla relazione JSF-OSGI. Per vedere i progressi vedi http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-942

Altri suggerimenti

Non sono sicuro che risponda esattamente al tuo problema, ma ho trovato questa discussione su Primavera e osgi interessanti, specialmente questo risposta specifica in cui dipendenze e percorso di classe sono raggruppati in MANIFEST.MF.

Quel thread porta anche all'aggiornamento di questo per tutorial su Spring Dynamic Modules (DM) per OSGi & # 8482; Piattaforme di servizi che potrebbero anche essere di interesse.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top