¿Cómo accedo a un archivo dentro de un paquete OSGi?
Soy nuevo en OSGi y creé un paquete OSGi que ejecuto en el contenedor Apache Felix OSGi. Hay un recurso de archivo contenido en el paquete, que necesito pasar a un método comojava.io.File
. Para crear una instancia de un objeto de archivo, es necesario un URI en el esquema "archivo" o la ruta como cadena. ¿Cómo recupero alguno de ellos de forma limpia?
Intenté usar elcontext.getBundle().getResource("/myfile")
(donde el contexto es de tipoorg.osgi.framework.BundleContext
) que devuelve el URIbundle://6.0:0/myfile
. Pero este URI no se puede convertir a una instancia de archivo conFile(URI uri)
constructor ya que tiene el esquema "paquete".
Uno podría intentar construir una ruta a la ubicación conociendo el directorio de trabajo y explotando el bundleId de mi paquete, pero dudo que esta sea la mejor práctica.
¿Algunas ideas