Personal tools
gvSIG Desktop
gvSIG Desktop

Cached time 11/21/13 16:47:23 Clear cache and reload

 
.. Warning: This document is under construction.

.. note::

   The utilities described in this document are designed and tested
   on a linux system. It is very likely to work on other
   systems, but it is easy to require some adjustments.

gvSIG supports several types of packages. These packages can install different types of accessories.

Currently there is only one type of package available, the container of plugins. From now on,
herein, when referring to packet will always be talking about a package that installs a plugin.

gvSIG has a plugin that allows us to generate a package of
a plug installed in that instance of gvSIG. This
is a simple way that a developer can generate
plugins packages from the same gvSIG on which it is developing.

The packet generation tool will include
all information in the folder where
live the plugin and also allow us to select other files
inside the gvSIG installation, and include an ant script
to be executed as post-installation script.

In addition to their own files that make up the plugin, we
provide some basic metadata to identify
the package. These are: 

- **Package Code**: Is the name used by the
  folder where you install the plugin into gvSIG.
  Must be unique and should not have two packages with the
  same name, unless it were different versions of
  this. 


- **Version**. The version of the package. Normally
  follow the following schedule: 
    
  mayor[.minor[.revision[-classifier[-build]]]]

  It is very important that no two versions of the same
  different package with the same version number. 

- **Package name**: This is the name displayed to
  the user. By convention this should always be in English.

- **Package description**: Describes the functionality 
  provided by the package. 
  By convention this should always be in English.

- **Owner**: Organization/person name who owns the content of
  package.

- **Source code url**: Which contains the url where to find the
  plugin source code. 

- **Dependencies**: With the specification of the package dependencies
  over other packages. 

- **Operating system**: Contain information on the operating system
  on which you can run this package. For now, systems
  supported OS are "Windows", "Linux" and "All". his is important for 
  packages that need native libraries for implementing
  some of their tasks. 

- **Architecture**: Indicates the hardware architecture for which is
  designed the package, usually will *x86* and *x86_64*.

- **Jvm**: Indicates the minimum version of Java Runtime Environment
  package required to operate.  

package required to operate.

- **Official**, that indicate whether a package is official or not. 

In the plugin directory, there will be a * file * package.info
with all this information, as well as a folder * install * the script
ant to the post-installation called * install.xml *, and all this is packaged in a
zip file with relative paths to the folder where you live in the plugin.

Keep in mind that this zip file should never contain
folder entries, only files. So if you create a package
by hand without using the tool provided by gvSIG we tell
the command * zip * the appropriate option to not include them.

To create our own packages of our plugins, simply
will be compressed in a zip file the folder where the
plugin, making sure they exist, the file * package.info *, the
* install folder * and the file * install / install.xml * if we need it.

Once we created our package we can install it using the
installer is completed, or we can serve for inclusion in a
gvSIG custom installation.


Here is an example of what would contain an install package. Let
specifically see the plugin install support for ECW in 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
  $ 


We observed that we have the file *package.info* containing the description of
the package:

..  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

In addition to this there is a folder *install* with a file
*Install.xml*, which contains the post-installation script of the package and
a folder *files*, a folder with the files that should go elsewhere
gvSIG installation of the outside of the folder plugin.
The post-install script takes care of copying the files native to where it belongs
and in this case set the symlinks to work
native libraries correctly installed:

..  code-block:: xml

    
        
        
            
                
            
        
        
            
                
                
                
            
            
                
                
                
            
            
                
                
                
            
            
                
                
                
            
        
        
          
               
          
        
    



The other files that appear are the plugin files themselves, their jars and
resource files that may need such as the  *config.xml*. In this case
find: 


- **lib/org.gvsig.raster.ermapper.app-2.0.0-SNAPSHOT.jar**. It contains the extension
  associated with the plugin, used to log into your * * Initialize the new data provider
  library for raster. 

- **lib/org.gvsig.raster.ermapper.io-2.0.0-SNAPSHOT.jar** the implementation of
  new data provider. 

- **lib/org.gvsig.jecw-2.0.0-SNAPSHOT.jar**, the java bridge library to the libraries
  native needed by the plugin. 


- **config.xml**, the configuration file of the plugin. 

Each plugin will provide the files needed for their operation.

View source document


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: