2010-10-11 15 views
6

en una aplicación Java normal de su posible imprimir el contenido de la ruta de clases con:¿Imprime OSGI bundle classpath?

String ss = System.getProperty("java.class.path"); 
System.out.println(ss); 

Pero, ¿cómo hago para imprimir la ruta de clase de un paquete OSGi creado usando el asistente de Eclipse PDE? En el activador es posible obtener el paquete actual como:

public void start (contexto BundleContext) throws Excepción { super.start (context); plugin = this;

Bundle b = context.getBundle(); 
// java doc: This bundle's class loader is not used to search for entries. 
b.findEntries(path, filePattern, recurse) 

Pero el javadoc dice que findEntries NO usa el cargador de clases. ¿Hay alguna forma simple de ver/imprimir lo que está en el classpath del paquete actual?

+1

primera pregunta es: ¿por qué quieres hacer eso? No existe una noción real de una ruta de clases para un paquete, simplemente un conjunto de clases que son accesibles. –

+0

Para que quede claro: hay un paquete de cabecera conocido como Bundle-ClassPath (núcleo osgi 3.2.1.4), pero teniendo en cuenta su "java.class.path" ejemplo, esto probablemente no es lo que quiere decir. –

Respuesta

2

Como otros han indicado que realmente no hay tal cosa como un "paquete de ruta de clases" - eso es todo el punto de OSGi. :)

Lo que puede hacer es:

  • vistazo a los encabezados de su paquete para ver qué paquetes que importa, y si se le pide u obligatoria

  • uso PackageAdmin para encontrar paquetes que exportan paquetes con un nombre dado

Sin embargo yo sepa PackageAdmin es obsoleto y no será un mecanismo/extendido nuevo a trabajar con el cableado paquete de 4 .3.

parece que su motivación para esto es la exploración para encontrar la ruta de clase & recursos de carga. El hecho de que esto no sea posible es un efecto secundario de hacer cumplir los límites del módulo: no se puede tener una cerca y al mismo tiempo permitir que alguien camine sobre el césped. Había un plan para un servicio estándar que escanea los paquetes en nombre de un cliente, pero que parece haber sido retirada (no sé por qué - tal vez como consecuencia de la nueva 4.3 cosas).

+0

PackageAdmin Indicando está en desuso se empujándolo, ya que sin duda no es obsoleto sin embargo, en las últimas especificaciones publicadas (R4.2). –

Cuestiones relacionadas