Provenance Review
Version: | 1.1 |
---|
Introduction
gvSIG is designed as a base application (core) plus numerous plug-ins that can be installed on it. This document refers to the core and the main plug-ins. For the rest of the plug-ins it will be provided a provenance review report only in case its workgroup thinks it is necessary.
Outstanding Issues
The source code was reviewed in order to find:
Errors in the headers of the source code files.
They were checked and corrected (if needed) all the files.
Fragments of source code coming from external projects.
They were detected fragments of source code from external projects in several areas. When possible, the original libraries were used adding the corresponding dependency. In the rest of the cases the fragments were moved to a new project called gvSIG external so they are perfectly identified. This meta-project contains the following subprojects:
- gvSIG external JEdit
- gvSIG external JUMP
- gvSIG External Raven
- org.gvsig.jdk
In a later review dependencies with some of this projects were eliminated so currently only two of them are being used:
- gvSIG external JUMP
- org.gvsig.jdk
Apart from this, there is still external source code in the following modules inside the project:
- SplitStrategy.java
- ShapeFileHeader2.java
- DbaseFile.java
- DbaseFileHeader.java
- GeneralPathXIterator.java
- GeneralPathXIteratorSimple.java
- DefaultGeneralPathX.java
- DefaultSymbolManager.java
- WKBParsere2.java
- WKBParsere3.java
- URLRetrieveTask
Use of libraries with dubious licence.
It was identified the licence of all the libraries used in the application. In order to avoid some incompatibilities it was updated the project license from GNU General Public License (GPL) version 2 to version 3.
Libraries
All the libraries used in gvSIG have an open source license compatible with GNU General Public License (GPL) version 3.
When possible, versions of libraries available in the Maven Central Repository are used. As a second option it is used the OSGeo Maven repository and as third option it is used the gvSIG Maven repository. There are some libraries that, because historical reasons or because they doesn't have published binaries, its version is not clear. These are the following:
- geojava:geojava
- net.sf:flib-jcalendar
- zql:zql
Non-free Libraries
The project doesn't use non-free libraries.
Code Reviewed
As mentioned before, the gvSIG application is composed by a core and numerous plug-ins that can be installed on it. The development has been done in Java using Maven as construction tool.
The core is composed by the following projects:
- org.gvsig.desktop with around 30000 source files (checked)
- org.gvsig.tools with around 500 source files (checked)
- org.gvsig.projection.api y org.gvsig.proj with around 60 source files (checked)
- org.gvsig.timesupport with around XXX source files (TO DO)
- org.gvsig.app.document.layout.app with around XXX source files (TO DO)
- org.gvsig.jdk with around XXX source files (TO DO)
- org.gvsig.external.jump with around XXX source files (TO DO)
These projects provide gvSIG a basic functionality for managing views, tables and layouts with vector layers and reprojection support.
All the projects that form the core are built using Maven, generating the sites with the information of dependencies and licenses which links are included in the following points:
org.gvsig.desktop
Licence: | GPL3 |
---|---|
Owner: | gvSIG Association |
Home: | https://devel.gvsig.org/redmine/projects/gvsig-desktop |
SVN: | https://devel.gvsig.org/svn/gvsig-desktop/trunk/org.gvsig.desktop |
source files: | 30000 |
Site: | https://devel.gvsig.org/sites/org.gvsig.desktop/2.0.16/ |
mvn repository: | https://devel.gvsig.org/m2repo/j2se/ |
external dependencies: | |
|
|
dependencies with other gvSIG projects: | |
|
It consists in a Maven multi-module project including the gvSIG basic functionality. This Maven project is composed by sub-projects that include libraries and plug-ins.
It is possible to compile this project without recompiling any of the others that forms the basic application, provided that we have access to the gvSIG Maven repository, just downloading the root project and executing "mvn install".
The source code of this project represents approximately the 90% of the code reviewed.
It includes the following sub-project:
└── org.gvsig.desktop ├── org.gvsig.desktop.compat.cdc │ ├── org.gvsig.compat │ │ ├── org.gvsig.compat.api │ │ └── org.gvsig.compat.se │ ├── org.gvsig.fmap.dal │ │ ├── org.gvsig.fmap.dal.api │ │ ├── org.gvsig.fmap.dal.db │ │ │ ├── org.gvsig.fmap.dal.db.h2 │ │ │ ├── org.gvsig.fmap.dal.db.jdbc │ │ │ └── org.gvsig.fmap.dal.db.lib │ │ ├── org.gvsig.fmap.dal.file │ │ │ ├── org.gvsig.fmap.dal.file.dbf │ │ │ ├── org.gvsig.fmap.dal.file.lib │ │ │ └── org.gvsig.fmap.dal.file.shp │ │ ├── org.gvsig.fmap.dal.impl │ │ └── org.gvsig.fmap.dal.spi │ ├── org.gvsig.fmap.geometry │ │ ├── org.gvsig.fmap.geometry.api │ │ ├── org.gvsig.fmap.geometry.impl │ │ └── org.gvsig.fmap.geometry.operation │ ├── org.gvsig.fmap.mapcontext │ │ ├── org.gvsig.fmap.mapcontext.api │ │ ├── org.gvsig.fmap.mapcontext.impl │ │ └── org.gvsig.fmap.mapcontext.operation │ ├── org.gvsig.i18n │ ├── org.gvsig.projection │ │ └── org.gvsig.projection.cresques │ │ ├── org.gvsig.projection.cresques.impl │ │ └── org.gvsig.projection.cresques.ui │ ├── org.gvsig.metadata.basic │ │ ├── org.gvsig.metadata.basic.lib │ │ └── org.gvsig.metadata.basic.swing │ └── org.gvsig.remoteclient │ ├── org.gvsig.desktop.framework │ ├── org.gvsig.andami │ └── org.gvsig.andami.updater │ ├── org.gvsig.desktop.installer │ ├── org.gvsig.desktop.library │ ├── org.gvsig.annotation │ │ ├── org.gvsig.annotation.lib │ │ │ ├── org.gvsig.annotation.lib.api │ │ │ └── org.gvsig.annotation.lib.impl │ │ ├── org.gvsig.annotation.main │ │ └── org.gvsig.annotation.swing │ │ ├── org.gvsig.annotation.swing.api │ │ └── org.gvsig.annotation.swing.impl │ ├── org.gvsig.exportto │ │ ├── org.gvsig.exportto.lib │ │ │ ├── org.gvsig.exportto.lib.api │ │ │ └── org.gvsig.exportto.lib.impl │ │ ├── org.gvsig.exportto.main │ │ └── org.gvsig.exportto.swing │ │ ├── org.gvsig.exportto.swing.api │ │ ├── org.gvsig.exportto.swing.impl │ │ ├── org.gvsig.exportto.swing.prov │ │ │ ├── org.gvsig.exportto.swing.prov.dbf │ │ │ ├── org.gvsig.exportto.swing.prov.dxf │ │ │ ├── org.gvsig.exportto.swing.prov.file │ │ │ ├── org.gvsig.exportto.swing.prov.generic │ │ │ ├── org.gvsig.exportto.swing.prov.jdbc │ │ │ ├── org.gvsig.exportto.swing.prov.mysql │ │ │ ├── org.gvsig.exportto.swing.prov.postgresql │ │ │ └── org.gvsig.exportto.swing.prov.shape │ │ └── org.gvsig.exportto.swing.spi │ ├── org.gvsig.fmap.control │ ├── org.gvsig.installer │ │ ├── org.gvsig.installer.lib │ │ │ ├── org.gvsig.installer.lib.api │ │ │ ├── org.gvsig.installer.lib.impl │ │ │ └── org.gvsig.installer.lib.spi │ │ ├── org.gvsig.installer.main │ │ ├── org.gvsig.installer.maven │ │ ├── org.gvsig.installer.prov │ │ │ └── org.gvsig.installer.prov.plugin │ │ └── org.gvsig.installer.swing │ │ ├── org.gvsig.installer.swing.api │ │ └── org.gvsig.installer.swing.impl │ ├── org.gvsig.newlayer │ │ ├── org.gvsig.newlayer.lib │ │ │ ├── org.gvsig.newlayer.lib.api │ │ │ └── org.gvsig.newlayer.lib.impl │ │ └── org.gvsig.newlayer.prov │ │ ├── org.gvsig.newlayer.prov.file │ │ ├── org.gvsig.newlayer.prov.generic │ │ └── org.gvsig.newlayer.prov.shape │ ├── org.gvsig.personaldb │ │ ├── org.gvsig.personaldb.lib │ │ │ ├── org.gvsig.personaldb.lib.api │ │ │ └── org.gvsig.personaldb.lib.impl │ │ └── org.gvsig.personaldb.main │ ├── org.gvsig.symbology │ │ ├── org.gvsig.symbology.lib │ │ │ ├── org.gvsig.symbology.lib.api │ │ │ └── org.gvsig.symbology.lib.impl │ │ ├── org.gvsig.symbology.main │ │ └── org.gvsig.symbology.swing │ │ ├── org.gvsig.symbology.swing.api │ │ └── org.gvsig.symbology.swing.impl │ ├── org.gvsig.ui │ └── org.gvsig.utils │ └── org.gvsig.desktop.plugin ├── org.gvsig.annotation.app │ └── org.gvsig.annotation.app.mainplugin ├── org.gvsig.app │ └── org.gvsig.app.mainplugin ├── org.gvsig.app.document.table.app │ └── org.gvsig.app.document.table.app.mainplugin ├── org.gvsig.centerviewpoint.app │ └── org.gvsig.centerviewpoint.app.mainplugin ├── org.gvsig.coreplugin.app │ └── org.gvsig.coreplugin.app.mainplugin ├── org.gvsig.daltransform.app │ ├── org.gvsig.daltransform.app.eventtheme │ ├── org.gvsig.daltransform.app.join │ └── org.gvsig.daltransform.app.mainplugin ├── org.gvsig.datalocator.app │ └── org.gvsig.datalocator.app.mainplugin ├── org.gvsig.editing.app │ └── org.gvsig.editing.app.mainplugin ├── org.gvsig.exportto.app │ └── org.gvsig.exportto.app.mainplugin ├── org.gvsig.geodb.app │ └── org.gvsig.geodb.app.mainplugin ├── org.gvsig.geometry.app │ └── org.gvsig.geometry.app.generalpath ├── org.gvsig.geometrymeasurement.app │ └── org.gvsig.geometrymeasurement.app.mainplugin ├── org.gvsig.help.app │ └── org.gvsig.help.app.mainplugin ├── org.gvsig.i18n.app │ └── org.gvsig.i18n.app.mainplugin ├── org.gvsig.installer.app │ └── org.gvsig.installer.app.mainplugin ├── org.gvsig.mkmvnproject.app │ └── org.gvsig.mkmvnproject.app.mainplugin ├── org.gvsig.newlayer.app │ └── org.gvsig.newlayer.app.mainplugin ├── org.gvsig.projection.app │ ├── org.gvsig.projection.app.cresques │ └── org.gvsig.projection.app.proj4j ├── org.gvsig.selectiontools.app │ └── org.gvsig.selectiontools.app.mainplugin └── org.gvsig.symbology.app ├── org.gvsig.symbology.app.importsymbols └── org.gvsig.symbology.app.symbolinstaller
org.gvsig.tools
Licence: | GPL3 |
---|---|
Owner: | gvSIG Association |
Home: | https://devel.gvsig.org/redmine/projects/gvsig-tools |
SVN: | https://devel.gvsig.org/svn/gvsig-tools |
source files: | 500 |
Site: | https://devel.gvsig.org/sites/org.gvsig.tools/3.0.7/ |
mvn repository: | https://devel.gvsig.org/m2repo/j2se/ |
External dependencies: | |
|
|
dependencies with other gvSIG projects: | |
(any) |
It provides the structural elements used by all the gvSIG modules.
org.gvsig.proj
Licence: | GPL3 |
---|---|
Owner: | gvSIG Association |
Home: | https://devel.gvsig.org/redmine/projects/gvsig-jcrs |
SVN: | https://devel.gvsig.org/svn/gvsig-jcrs/org.gvsig.proj/trunk/ https://devel.gvsig.org/svn/gvsig-jcrs/org.gvsig.projection/trunk/ |
source files: | 60 |
Site: | https://devel.gvsig.org/sites/org.gvsig.projection.api/2.0.13/ https://devel.gvsig.org/sites/org.gvsig.proj/1.0.1/ |
mvn repository: | https://devel.gvsig.org/m2repo/j2se/ |
External dependencies: | |
|
|
dependencies with other gvSIG projects: | |
|
Provides the API and an implementation for managing projections. It includes the following projects:
- org.gvsig.projection.api
- org.gvsig.proj, API implementation based on proj4j.
org.gvsig.timesupport
Licence: | GPL2 |
---|---|
Owner: | gvSIG Association |
Home: | https://devel.gvsig.org/redmine/projects/gvsig-sensors |
SVN: | https://devel.gvsig.org/svn//gvsig-sensors/org.gvsig.timesupport/ |
source files: | (TO DO) |
Site: | https://devel.gvsig.org/sites/org.gvsig.timesupport/1.0.0/org.gvsig.timesupport/ |
mvn repository: | https://devel.gvsig.org/m2repo/j2se/ |
External dependencies: | |
|
|
dependencies with other gvSIG projects: | |
|
org.gvsig.jdk
Licence: | GPL2 |
---|---|
Owner: | gvSIG Association |
Home: | https://devel.gvsig.org/redmine/projects/gvsig-external-jdk |
SVN: | https://devel.gvsig.org/svn/gvsig-external-jdk/org.gvsig.jdk/trunk/org.gvsig.jdk/ |
source files: | (TO DO) |
Site: | https://devel.gvsig.org/sites/org.gvsig.jdk/1.0.0/org.gvsig.jdk/ |
mvn repository: | https://devel.gvsig.org/m2repo/j2se/ |
External dependencies: | |
|
|
dependencies with other gvSIG projects: | |
|
This project provides functionalities that depends on the implementation of the JDK used for compiling gvSIG. It contains external source code.
org.gvsig.external.jump
Licence: | GPL2 |
---|---|
Owner: | Asociacion gvSIG |
Home: | https://devel.gvsig.org/redmine/projects/gvsig-external-jump |
SVN: | https://devel.gvsig.org/svn/gvsig-external-jump/trunk/org.gvsig.external.jump/ |
Site: | (TO DO) |
source files: | (TO DO) |
mvn repository: | https://devel.gvsig.org/m2repo/j2se/ |
External dependencies: | |
|
|
dependencies with other gvSIG projects: | |
|
Not reviewed projects
Apart from the projects included in this review there are other libraries and plug-ins that provides extra functionality as:
- org.gvsig.hyperlink.app
- org.gvsig.raster
- org.gvsig.expressionfield
- org.gvsig.mysql
- org.gvsig.projection.cresques
- org.gvsig.jcrs
- org.gvsig.dwg
- org.gvsig.dxf
- org.gvsig.dgn
- org.gvsig.wfs.app
- extGazetteer y appGazetteer
- extCatalog y appCatalog
- org.gvsig.geoprocess
All these projects (which can be installed in gvSIG as plug-ins) are independent from gvSIG. The status, origin and license of its source code is a responsibility of each development team.
versión | Descripción |
---|---|
1.1 | Added to item 2 of Outstanding Issues section some source files with external code to gvSIG. |