Tengo una función Eclipse que incluye varios paquetes. Quiero decirle a p2 que marque uno de esos paquetes como se inició cuando se instala la característica. Esto es posible mediante los lotes propia META-INF/p2.inf como tal,En Equinox ¿Es posible marcar un paquete OSGi como iniciado desde la función que contiene p2.inf?
instructions.configure = markStarted(started: true)
pero yo quiero hacer esto a nivel de función en lugar del nivel de paquete (el paquete en cuestión es de terceros , y preferiría no modificarlo de ninguna manera, si es posible).
Algunas investigaciones me han llevado al this document que sugiere que debería ser posible mover las instrucciones de configuración a la función que contiene p2.inf. He intentado todas las cosas obvias como,
units.0.id = <bundle symbolic name>
units.0.instructions.configure = \
org.eclipse.equinox.p2.touchpoint.eclipse.markStarted(started: true)
pero hasta ahora ninguna de las permutaciones que he probado tiene ningún efecto: como en no pasa nada, el paquete no está marcado como iniciado y no se encuentren errores)
Cualquier apuntador sería muy bienvenido. El es con Eclipse Equinox Galileo (3.5.2) ... las respuestas relacionadas con Helios también serían muy útiles.
Parece que hay un poco de magia aquí. ¿Puedes explicar la importancia de los 0, 1 y 2 ... son arbitrarios (en cuyo caso, ¿por qué comenzar con require.2 en lugar de requires.0?) O determinados por el contexto? Además, ¿son necesarios todos estos elementos? Por ejemplo, units.0.instructions.install me parece redundante. Más en general, ¿dónde está documentada esta información? Por ejemplo, usted dice que es la entrada hostRequirements la que especifica de qué paquete se trata, pero en ningún lugar de la página que enlaza con la descripción de los fragmentos de la Unidad Instalable se menciona. –
Solo para asegurarme de haber entendido correctamente la arbitrariedad de la numeración, el significado seguiría siendo el mismo si "requires.2" se reemplazara con "requires.0" en todo; "units.0.provides.1" reemplazado por "units.0.provides.0"; "units.0.hostRequirements.1" reemplazado por "units.0.hostRequirements.0"; "units.0.hostRequirements.2" reemplazado por "units.0.hostRequirements.1"; "units.0.requires.1" by "units.0.requires.0" –
Sí, debería ser equivalente. –