Question

Est-il possible (et si oui, sûr) de modifier le manifeste d'un paquet à tout moment pendant son cycle de vie (c'est-à-dire vraisemblablement uniquement entre installé et résolu).

Je suppose qu'une autre façon de poser la question serait,

Après l'installation, mais avant la résolution, le manifeste est-il déjà entièrement évalué (c'est-à-dire que d'autres changements seraient ignorés), ce qui est trop tard pour changer?

Si tout ce qui précède semble absurde .. alors ma prochaine question serait, quelqu'un pense-t-il qu'il est possible (sans hacks de framework désagréable) pour envelopper la résolution manifeste (c'est-à-dire l'étape Classloader pour obtenir le méta-infr / manifeste.mf à partir d'un bundle) avec un implateur personnalisé.

Arrière plan: Considérons un cadre de modularité existant, non basé sur OSGI, pour lequel je voudrais simplifier la migration, vers OSGI, en offrant la possibilité de déployer le ton des "plugins" existants sans modification, et au moment de l'exécution, effectuez une analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse (l'analyse Les "plugins" sont bien définis, de sorte que la cartographie ne doit pas être difficile) qui les convertit en vraies faisceaux OSGI, en utilisant des opérations d'exécution BND pour générer un manifeste qui serait utilisé à la place des manifestes potentiellement non existants ou non-OSGI.

J'espère que cela a du sens (@njbartlett!)

Était-ce utile?

La solution

Pourquoi ne pas définir un schéma d'URL qui mute le manifeste dans le cadre du processus d'installation / mise à jour? Lorsque le cadre accède au bundle via votre URLConnection, vous pouvez retourner un faisceau muté avec le manifeste muté. C'est essentiellement ce que fait le support Web Bundle et cela devrait également fonctionner pour vous.

Autres conseils

Non, vous ne pouvez pas faire ça. L'ensemble du fichier JAR (et donc le manifeste.mf) est lu pendant l'opération d'installation. Afin de changer quoi que ce soit dans ce pot, vous devrez soit mettre à jour le bundle ou la désinstallation et de réinstaller à nouveau.

Concernant ce que vous voulez réellement faire, pourquoi ne pouvez-vous pas simplement effectuer l'analyse et la transformation via BND avant de L'installation du pot en tant que bundle?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top