Personal tools
gvSIG Desktop
gvSIG Desktop

Cached time 11/22/13 08:07:17 Clear cache and reload

 
Document Actions

Paquetes y conjuntos de paquetes

by Joaquin Jose del Cerro Murciano last modified 2011-09-13 16:53
gvSIG soporta varios tipos de paquetes que pueden instalar diferentes tipos de complementos. 
Actualmente solo hay disponible un tipo de paquete, el contenedor de plugins. De ahora en adelante, 
en este documento, cuando nos refiramos a paquete siempre estaremos
hablando de un paquete que instala un plugin.

gvSIG dispone de un plugin que nos permite generar un paquete
de un plugin instalado en esa instancia de gvSIG. Esto
es una forma sencilla de que un desarrollador pueda generar
paquetes de sus plugins desde el mismo gvSIG sobre el que está desarrollando.

La herramienta de generación de paquetes se encargará de incluir
toda la información que haya en la carpeta donde
vive el plugin y además nos permitirá seleccionar otros archivos 
de dentro de la instalación de gvSIG, así como incluir un script
de ant que será ejecutado como script de post-instalación.

Además de los propios ficheros que componen el plugin, deberemos
suministrar unos metadatos básicos de cara a la identificación
del paquete. Estos son:

- **Código del paquete**. Es el nombre usado por la
  carpeta en la que se instala el plugin dentro de gvSIG.
  Debe ser único y no debería haber dos paquetes con el 
  mismo nombre, salvo que se tratase de versiones distintas de 
  este.

- **Versión**. Es la versión del paquete. Normalmente
  seguirá el siguiente esquema::
  
    mayor[.minor[.revision[-classifier[-build]]]]
  
  Es muy importante que no existan dos versiones del mismo 
  paquete distintas, con el mismo numero de versión.
  
- **Nombre del paquete**. Se trata del nombre que se mostrará
  al usuario. Por convenio este irá siempre en inglés.

- **Descripción del paquete**, la descripción, en inglés, de las
  funcionalidades que aporta el paquete.

- **Dueño**, nombre de la organización/persona propietaria del contenido del
  paquete.
  
- **URL de los fuentes**, que contendrá la url donde encontrar los
  fuentes del plugin.

- **Dependencias**. Con la especificación de las dependencias que
  tiene ese paquete respecto a otros paquetes.
  
- **Sistema operativo**. Contendrá la información del sistema operativo 
  sobre  el que se puede ejecutar este paquete. De momento, los sistemas
  operativos soportados son "Windows", "Linux" y "All". Esto es importante de
  cara a paquetes que aporten librerías nativas para la ejecución de
  algunas de sus tareas. 

- **Arquitectura**. Indica la arquitectura de hardware para la que esta
  diseñado el paquete, normalmente sera *x86* y *x86_64*. 
  
- **jvm**, indicará la versión mínima del entorno de ejecución de java
  que requiere el paquete para funcionar.

- **oficial**, que indicará si se trata de un paquete oficial o no.

Dentro del directorio del plugin, existirá un fichero *package.info*
con toda esta información, así como una carpeta *install* con el script
de ant para la post-instalación llamado *install.xml*, y todo esto se empaquetará en un
fichero zip con rutas relativas a la carpeta en la que vive el plugin.

Hay que tener en cuenta que ese fichero zip no debe contener nunca
entradas de carpetas, solo ficheros. Con lo que si creamos un paquete
a mano sin usar la herramienta suministrada por gvSIG deberemos indicarle
al comando *zip* la opción adecuada para que no las incluya.

Para crear nuestros propios paquetes de nuestros plugins, simplemente
tendremos que comprimir en un fichero zip la carpeta donde se encuentra el
plugin, asegurandonos de que existan, el fichero *package.info*, la
carpeta *install* y el fichero *install/install.xml* si lo necesitamos.

Una vez hemos creado nuestro paquete podemos instalarlo utilizando el
instalador de complementos, o nos puede servir para incluirlo en una
instalación personalizada de gvSIG.


Veamos un ejemplo de lo que contendria un paquete de instalacion. Vamos a
ver concretamente el plugin que instala el soporta para ECW en gvSIG::

  $ unzip -l gvSIG-desktop-2.0.0-org.gvsig.raster.ermapper.app-2.0.0-SNAPSHOT-23-devel-lin-x86-j1_5.gvspkg
  Archive:  gvSIG-desktop-2.0.0-org.gvsig.raster.ermapper.app-2.0.0-SNAPSHOT-23-devel-lin-x86-j1_5.gvspkg
    Length     Date   Time    Name
   --------    ----   ----    ----
       4092  07-08-11 09:47   org.gvsig.raster.ermapper.app/lib/org.gvsig.raster.ermapper.app-2.0.0-SNAPSHOT.jar
      23391  07-08-11 09:47   org.gvsig.raster.ermapper.app/lib/org.gvsig.raster.ermapper.io-2.0.0-SNAPSHOT.jar
      28206  07-08-11 09:47   org.gvsig.raster.ermapper.app/lib/org.gvsig.jecw-2.0.0-SNAPSHOT.jar
     655809  07-08-11 09:47   org.gvsig.raster.ermapper.app/install/files/native/libNCSUtil.so.0
     430361  07-08-11 09:47   org.gvsig.raster.ermapper.app/install/files/native/libNCSCnet.so.0
      72242  07-08-11 09:47   org.gvsig.raster.ermapper.app/install/files/native/libNCSEcwC.so.0
    6120711  07-08-11 09:47   org.gvsig.raster.ermapper.app/install/files/native/libNCSEcw.so.0
      25851  07-08-11 09:47   org.gvsig.raster.ermapper.app/install/files/native/libjecw2.0.0.so
       1085  07-08-11 09:47   org.gvsig.raster.ermapper.app/install/install.xml
        313  07-08-11 09:47   org.gvsig.raster.ermapper.app/package.info
        363  07-08-11 09:47   org.gvsig.raster.ermapper.app/config.xml
   --------                   -------
    7362929                   12 files
  $ 

Podemos obserar que tenemos el fichero *package.info* que contiene la descripcion del
paquete:

..  code-block:: ini

    #
    #Fri Jul 08 09:47:35 CEST 2011
    state=devel
    name=Formats: Ecw format support
    buildNumber=23
    official=true
    code=org.gvsig.raster.ermapper.app
    operating-system=lin
    architecture=x86
    java-version=j1_5
    gvSIG-version=2.0.0
    version=2.0.0-SNAPSHOT
    type=plugin
    description=Ermapper data provider for gvSIG
    model-version=1.0.0

Ademas de este obserbamos que existe una carpeta *install* con un fichero 
*install.xml*,  que contiene el script de postinstalacion  del paquete y
una carpeta *files* con los ficheros que deben ir a parar a otras partes
de la instalacion de gvSIG fuera de la carpeta del plugin.
El script de postinstalacion se encarga de copiar los ficheros nativos a donde corresponde
y en este caso ajustar los enlaces simbolicos que necesite para que funcionen
correctamente las librerias nativas que instala:

..  code-block:: xml

    
        
        
            
                
            
        
        
            
                
                
                
            
            
                
                
                
            
            
                
                
                
            
            
                
                
                
            
        
        
          
               
          
        
    

El resto de ficheros que aparecen son los propios ficheros del plugin, sus jars y
ficheros de recursos que pueda necesitar como puede ser el *config.xml*. En este caso
encontraremos:

- **lib/org.gvsig.raster.ermapper.app-2.0.0-SNAPSHOT.jar**. Que contiene la extension
  asociada al plugin, usada para registrar en su *initializa* el nuevo proveedor de datos
  para la libreria de raster.
  
- **lib/org.gvsig.raster.ermapper.io-2.0.0-SNAPSHOT.jar** , la implementacion del 
  proveedor de datos nuevo.
  
- **lib/org.gvsig.jecw-2.0.0-SNAPSHOT.jar**, la libreria java de puente con las librerias
  nativas que precisa el plugin.

- **config.xml**, el fichero de configuracion del plugin.

Cada plugin llevara detras los ficheros que precise para su propio funcionamiento.



View source document

View source document Get permanent link


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: