[Gvsig_desarrolladores] Fwd: JNDI + GvSIG + EJB

César Martínez Izquierdo cesar.martinez en iver.es
Mar Oct 16 09:03:57 CEST 2007


Cristian Rinaldi escribió:
> Muchas gracias, por las respuestas espero que esto le sirva a alguién. 
> Pero desde mi punto de vista el sistema de Plugins de gvSIG es poco 
> flexible y no se terminan de comprender donde se cargan las cosas en 
> tiempo de ejecución.
> 
> Saludos Cristian

Creo que esto se debe (aparte de las limitaciones del sistema en sí) a 
que todavía no se ha publicado documentación detallada sobre este 
proceso de carga.

Resumidamente, el funcionamiento es el siguiente:
- cada plugin puede acceder a las clases contenidas en los jars de su 
directorio de librerías, que se define en el config.xml del plugin 
(normalmente, el subdirectorio "lib", otras veces el directorio raíz del 
plugin).

- cada plugin puede acceder también al directorio de librerías de los 
plugins que define como dependencias en el config.xml. Normalmente, 
todos los plugins definen como dependencia al plugin gvSIG 
(com.iver.cit.gvsig), por lo que las librerías depositadas en 
com.iver.cit.gvsig/lib están disponibles para todos los plugins.

- el control de clases duplicadas lo realiza Java, no Andami.
En Java, no es posible cargar dos clases con el mismo nombre (incluyendo 
el paquete) usando un mismo classloader. Si deseas usar dos versiones de 
una misma librería, deben estar en plugins distintos (cada plugin tiene 
su classloader) y un plugin no debe depender del otro, de lo contrario 
compartirán directorios de librerías y habrá colisión de clases.
Si en tu caso no es posible porque un plugin debe depender del otro, 
deberías crearte un classloader propio para cargar uno de los dos jars.
   Pero estudia bien el tema antes de hacerlo, porque como ha dicho Fran 
el tema de los classloaders es muy complicado. Por ejemplo, si dos 
classloaders distintos cargan una misma clase, se consideran clases 
diferentes a todos los efectos (un instanceof devolverá false).

Espero que sea útil la explicación, saludos.

--
César Martínez Izquierdo
Equipo de desarrollo gvSIG
http://www.gvsig.gva.es

IVER T.I.
C/ Salamanca 50
46005 Valencia - Spain
http://www.iver.es


Este mensaje y sus archivos son confidenciales. No está permitida su reproducción o distribución sin la autorización expresa de "IVER Tecnologías de la Información". Si usted no es el destinatario previsto, queda desautorizado cualquier uso, acceso o copia de este mensaje. Si ha recibido este mensaje por error, por favor bórrelo e infórmenos por esta misma vía.



Más información sobre la lista de distribución gvSIG_desarrolladores