[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