Domanda

È possibile (e, in tal caso, sicuro) modificare il MANIFEST di un bundle in qualsiasi momento durante il suo ciclo di vita (cioè presumibilmente solo tra INSTALLED e RESOLVED).

Immagino che un altro modo per porre la domanda sarebbe,

Dopo INSTALLED, ma prima di RESOLVED, il MANIFEST è già completamente valutato (ovvero ulteriori modifiche verrebbero ignorate) rendendo troppo tardi per la modifica?

Se tutto quanto sopra sembra assurdo ... allora la mia prossima domanda sarebbe: qualcuno pensa che sia possibile (senza brutti hack del framework) avvolgere la risoluzione MANIFEST (cioè il passaggio del classloader per ottenere META-INF / MANIFEST. MF da un bundle) con un impianto personalizzato

Background: considera un framework di modularità esistente, non basato su OSGi, per il quale vorrei semplificare la migrazione, verso OSGi, offrendo la possibilità di implementare il tono dei "plugin" esistenti senza modifiche, e in fase di esecuzione, eseguire un'analisi (i "plugin" sono ben definiti quindi la mappatura non dovrebbe essere difficile) che li converte in veri bundle OSGi, utilizzando le operazioni di runtime BND per generare un MANIFEST che verrebbe utilizzato al posto del MANIFEST del bundle potenzialmente inesistente o non osgi.

Si spera che abbia senso (@njbartlett!)

È stato utile?

Soluzione

Perché non definire uno schema URL che muti il manifest come parte del processo di installazione / aggiornamento?Quando il framework accede al bundle tramite URLConnection, è possibile restituire un bundle mutato con il manifest mutato.Questo è fondamentalmente ciò che fa il supporto del bundle web e dovrebbe funzionare anche per te.

Altri suggerimenti

No, non puoi farlo.L'intero file JAR (e quindi MANIFEST.MF) viene letto durante l'operazione di installazione.Per cambiare qualcosa in quel JAR, dovresti aggiornare il bundle o disinstallarlo e installarlo di nuovo.

Per quanto riguarda ciò che si desidera effettivamente fare, perché non è possibile eseguire l'analisi e la trasformazione tramite bnd prima di installare il JAR come bundle?

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