usando el complemento de paquete maven para el desarrollo de osgi y establecer dependencias

Estoy dando mis primeros pasos en el desarrollo del paquete osgi usando maven (maven-bundle-plugin) y apache karaf. Mi pregunta es: ¿cómo puedo importar paquetes de otro paquete?

Si tengo dos paquetes A y B. Digamos que el paquete A exporta un paquete "package.from.bundle.A". Esto lo puedo declarar en el pom.xml de Bundle A Project:

 ...
<instructions>
 ...
  <Export-Package>
    package.from.bundle.A*;version=${project.version}
  </Export-Package>
  <Import-Package>
       *
  </Import-Package>
</instructions>
...

Pero, ¿cómo puedo declarar que quiero usar ese paquete en Bundle B? Si simplemente escribo el nombre del paquete entre la etiqueta del paquete de importación del archivo pom del proyecto B, esto no funciona ...

 ...
<instructions>
 ...
  <Export-Package>
  </Export-Package>
  <Import-Package>
       package.from.bundle.A
  </Import-Package>
</instructions>
...

¿Cómo sabe Maven a qué proyecto de paquete está relacionado este paquete? ¿Cómo puedo usar las dependencias entre mis paquetes usando Maven?

gracias

Respuesta 1

El plugin maven bundle usa bnd debajo de las cubiertas, que utiliza el análisis de bytecode para resolver las importaciones retroactivamente desde el código compilado. Las exportaciones de paquetes son más una cuestión de diseño, por lo que deben especificarse explícitamente.

Puede ver los manifiestos que se generan en su carpeta de destino, que le recomendaría para asegurarse de que comprende lo que se está haciendo en su nombre.

Respuesta: 2

Tengo un JTabbedPane simple que muestra archivos de texto. Cada pestaña contiene una JList envuelta en un JScrollPane. Me gustaría poder cerrar las pestañas individuales con un clic derecho, pero no puedo obtener esto ...

Estoy escribiendo código para el procesamiento de texto, y las cosas van mucho más rápido si primero convierto las cadenas a enteros. Para hacer esto, hice una clase de Diccionario, donde cada vez que veo una nueva cadena, le doy un ...

Nuevo en Elastic search, utilizando un índice para almacenar los documentos que, por ejemplo, es información de la compañía sobre los empleados, actualmente hay 600,000 datos de empleados en el índice, entre estos empleados necesitamos ...

PersistenceHelper-context.xml <bean id = "dataSource" class = "org.springframework.jdbc.datasource.DriverManagerDataSource"> <! ----> <nombre de propiedad = "driverClassName" value = "org ....