J'ai une fonction Eclipse qui comprend plusieurs bundles. Je veux dire à p2 de marquer l'un de ces paquets comme démarré lorsque la fonction est installée. Ceci est possible en utilisant les faisceaux propres META-INF/p2.inf comme si,Dans Equinox Est-il possible de marquer un groupe OSGi comme démarré à partir de p2.inf?
instructions.configure = markStarted(started: true)
mais je veux le faire au niveau des fonctions plutôt que le niveau du faisceau (le faisceau en question est un tiers , et je préférerais ne pas le modifier de quelque façon que ce soit, si possible).
Certaines recherches m'ont conduit à this document, ce qui suggère qu'il devrait être possible de déplacer les instructions de configuration vers le fichier p2.inf de la fonction contenant. Je l'ai essayé toutes les choses évidentes comme,
units.0.id = <bundle symbolic name>
units.0.instructions.configure = \
org.eclipse.equinox.p2.touchpoint.eclipse.markStarted(started: true)
mais jusqu'à présent, aucun des permutations que j'ai essayé d'effet: comme dans rien ne se passe, le paquet est pas marqué comme démarré et aucune erreur sont signalées).
Les pointeurs seraient les bienvenus. L'est avec Eclipse Equinox Galileo (3.5.2) ... les réponses relatives à Helios seraient également très utiles.
Il semble qu'il y ait un peu de magie ici. Pouvez-vous expliquer la signification de 0, 1 et 2 ... sont-ils arbitraires (dans ce cas, pourquoi commencer avec requires.2 plutôt que requires.0?) Ou déterminé par le contexte? De plus, tous ces éléments sont-ils nécessaires? Par exemple units.0.instructions.install me semble redondant. Plus généralement, où est ce document documenté? Par exemple, vous dites que c'est l'entrée hostRequirements qui spécifie quel paquet c'est un fragment de, mais nulle part sur la page que vous liez à la description des fragments d'unités installables n'est mentionné. –
Juste pour être sûr d'avoir bien compris l'arbitraire de la numérotation, est-ce que la signification resterait la même si "requires.2" était remplacé par "requires.0" tout au long; "units.0.provides.1" remplacé par "units.0.provides.0"; "units.0.hostRequirements.1" remplacé par "units.0.hostRequirements.0"; "units.0.hostRequirements.2" remplacé par "units.0.hostRequirements.1"; "units.0.requires.1" par "units.0.requires.0" –
Oui, cela devrait être équivalent. –