Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/pom.xml	(revision 393)
@@ -0,0 +1,15 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>org.gvsig.gdal</artifactId>
+		<version>1.0.60</version>
+	</parent>
+	<artifactId>org.gvsig.gdal.prov</artifactId>
+	<packaging>pom</packaging>
+	<name>org.gvsig.gdal.prov</name>
+	<modules>
+		<module>org.gvsig.gdal.prov.ogr</module>
+		<module>org.gvsig.gdal.prov.gml</module>
+	</modules>
+</project>
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataExplorerParameters.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataExplorerParameters.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataExplorerParameters.java	(revision 393)
@@ -0,0 +1,85 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.gml;
+
+import java.io.File;
+
+import org.gvsig.fmap.dal.DataServerExplorerParameters;
+import org.gvsig.gdal.prov.ogr.OGRDataExplorerParameters;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DelegatedDynObject;
+
+/**
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class GMLDataExplorerParameters extends OGRDataExplorerParameters implements
+    DataServerExplorerParameters {
+
+    /**
+     * 
+     */
+    public static final String PARAMETERS_DEFINITION_NAME = "GMLDataExplorerParameters";
+
+    /**
+     * 
+     */
+    public static final String GFS_SCHEMA_PARAMETER_NAME = "gfsSchema";
+
+    private DelegatedDynObject parameters;
+
+    /**
+     * 
+     */
+    public GMLDataExplorerParameters() {
+        this.parameters =
+            (DelegatedDynObject) ToolsLocator.getDynObjectManager().createDynObject(
+                ToolsLocator.getPersistenceManager().getDefinition(PARAMETERS_DEFINITION_NAME));
+    }
+
+    @Override
+    public String getExplorerName() {
+        return GMLDataExplorer.NAME;
+    }
+
+    @Override
+    protected DelegatedDynObject getDelegatedDynObject() {
+        return this.parameters;
+    }
+
+    /**
+     * 
+     * @return File
+     */
+    public File getGfsSchema() {
+        return (File) this.getDynValue(GFS_SCHEMA_PARAMETER_NAME);
+    }
+
+    /**
+     * @param schema
+     */
+    public void setGfsSchema(File schema) {
+        this.setDynValue(GFS_SCHEMA_PARAMETER_NAME, schema);
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataStoreProvider.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataStoreProvider.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataStoreProvider.java	(revision 393)
@@ -0,0 +1,358 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.gml;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.cresques.cts.ICRSFactory;
+import org.cresques.cts.IProjection;
+import org.gdal.gdal.gdal;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Driver;
+import org.gdal.ogr.FeatureDefn;
+import org.gdal.ogr.FieldDefn;
+import org.gdal.ogr.GeomFieldDefn;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.ogr;
+import org.gdal.ogr.ogrConstants;
+import org.gdal.osr.SpatialReference;
+import org.gvsig.fmap.dal.DataStore;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.exception.CopyException;
+import org.gvsig.fmap.dal.exception.CreateException;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.exception.WriteException;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureSet;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
+import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.gdal.prov.ogr.OGRConverter;
+import org.gvsig.gdal.prov.ogr.OGRDataStoreProvider;
+import org.gvsig.gdal.prov.ogr.OGRUnsupportedFormatException;
+import org.gvsig.tools.dispose.DisposableIterator;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.exception.BaseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class GMLDataStoreProvider extends OGRDataStoreProvider {
+
+    private static final Logger LOG = LoggerFactory.getLogger(GMLDataStoreProvider.class);
+
+    /**
+     *
+     */
+    public static final String NAME = "GMLDataStoreProvider";
+
+    /**
+     *
+     */
+    public static final String DESCRIPTION = "GML provider to open vectorial resources";
+
+    protected GMLDataStoreProvider(DataStoreParameters dataParameters,
+        DataStoreProviderServices storeServices, DynObject metadata) throws InitializeException {
+        super(dataParameters, storeServices, metadata);
+    }
+
+    protected GMLDataStoreProvider(DataStoreParameters dataParameters,
+        DataStoreProviderServices storeServices) throws InitializeException {
+        super(dataParameters, storeServices);
+    }
+
+    @Override
+    protected synchronized DataSource getDataSource() throws OGRUnsupportedFormatException {
+
+        try {
+
+            if (this.dataSource == null) {
+
+                if (getGMLParameters().getXsdSchema() != null
+                    && StringUtils.isBlank(getGMLParameters().getConnectionString())) {
+                    StringBuilder stb = new StringBuilder();
+                    if (StringUtils.isBlank(getGMLParameters().getConnectionString())
+                        && getGMLParameters().getFile() != null) {
+                        stb.append(getGMLParameters().getFile().getAbsolutePath());
+
+                    } else if (StringUtils.isNotBlank(getGMLParameters().getConnectionString())) {
+                        stb.append(getGMLParameters().getConnectionString());
+                    }
+
+                    stb.append(",xsd=");
+                    stb.append(getGMLParameters().getXsdSchema());
+
+                    getGMLParameters().setConnectionString(stb.toString());
+                }
+
+                if (getGMLParameters().getGfsSchema() != null) {
+                    gdal.SetConfigOption("GML_GFS_TEMPLATE", getGMLParameters().getGfsSchema()
+                        .getAbsolutePath());
+                }
+            }
+
+            return super.getDataSource();
+
+        } finally {
+            gdal.SetConfigOption("GML_GFS_TEMPLATE", null);
+        }
+    }
+
+    private GMLDataStoreParameters getGMLParameters() {
+        return (GMLDataStoreParameters) this.getParameters();
+    }
+
+    @Override
+    public boolean allowWrite() {
+        return true;
+    }
+
+    @SuppressWarnings("rawtypes")
+    @Override
+    public void performChanges(Iterator deleteds, Iterator inserteds, Iterator updateds,
+        Iterator featureTypesChanged) throws DataException {
+
+        FeatureStore store = this.getStoreServices().getFeatureStore();
+        FeatureType defaultFeatureType = store.getDefaultFeatureType();
+
+        String baseName = FilenameUtils.getBaseName(getGMLParameters().getFile().getName());
+        File newFile = null;
+        File newSchemaFile = null;
+        try {
+            newFile = File.createTempFile(baseName, null);
+            newSchemaFile = getSchemaFile(newFile);
+        } catch (IOException e) {
+            String msg = String.format("Temp %1s file", new Object[] { baseName });
+            throw new CreateException(msg, e);
+        }
+
+        Driver driver = ogr.GetDriverByName("GML");
+        Vector<String> options = new Vector<String>(1);
+        options.add("FORMAT=GML3.2");
+
+        DataSource newDataSource = driver.CreateDataSource(newFile.getAbsolutePath(), options);
+
+        // Copy other layer to new data source
+        OGRConverter converter = new OGRConverter();
+        for (int i = 0; i < getDataSource().GetLayerCount(); i++) {
+            Layer tmpLayer = getDataSource().GetLayerByIndex(i);
+
+            if (tmpLayer.GetName().equals(getGMLParameters().getLayerName())) {
+                continue;
+            }
+
+            SpatialReference srs = tmpLayer.GetSpatialRef();
+            int ogrGeomType = tmpLayer.GetGeomType();
+
+            List<FieldDefn> fields = new ArrayList<FieldDefn>();
+            FeatureDefn layerDefn = tmpLayer.GetLayerDefn();
+            for (int j = 0; j < layerDefn.GetFieldCount(); j++) {
+                fields.add(layerDefn.GetFieldDefn(j));
+            }
+
+            List<GeomFieldDefn> geomFields = new ArrayList<GeomFieldDefn>();
+            for (int j = 0; j < layerDefn.GetGeomFieldCount(); j++) {
+                geomFields.add(layerDefn.GetGeomFieldDefn(j));
+            }
+
+            List<org.gdal.ogr.Feature> ogrFeatures = new ArrayList<org.gdal.ogr.Feature>();
+            org.gdal.ogr.Feature feature = tmpLayer.GetNextFeature();
+            while(feature!=null){
+                ogrFeatures.add(feature);
+            }
+            createLayer(newDataSource, tmpLayer.GetName(), srs, ogrGeomType, fields, geomFields,
+                ogrFeatures);
+        }
+
+        SpatialReference srs = getLayer().GetSpatialRef();
+        if (srs == null) {
+            IProjection projection = defaultFeatureType.getDefaultSRS();
+            if (projection == null) {
+                projection = (IProjection) this.getDynValue(DataStore.METADATA_CRS);
+                if (projection != null) {
+                    srs = new SpatialReference(projection.export(ICRSFactory.FORMAT_WKT));
+                }
+            }
+        }
+
+        int ogrGeomType = -1;
+        GeometryType geomType = defaultFeatureType.getDefaultGeometryAttribute().getGeomType();
+        if (geomType != null) {
+            ogrGeomType = converter.convertToOGRGeomType(geomType.getType());
+        }
+
+        List<FieldDefn> fields = converter.convertFields(defaultFeatureType);
+        List<GeomFieldDefn> geomFields = converter.convertGeometryFields(defaultFeatureType, true);
+        FeatureSet featureSet = getFeatureStore().getFeatureSet();
+        createLayer(newDataSource, getLayer().GetName(), srs, ogrGeomType, fields, geomFields,
+            featureSet);
+
+        // Release native resources to close file.
+        newDataSource.delete();
+
+        // Close current file
+        getResource().removeConsumer(this);
+        getResource().closeRequest();
+
+        // Delete current file
+        if (getGMLParameters().getFile().delete()) {
+
+            try {
+                FileUtils.copyFile(newFile, getGMLParameters().getFile());
+                FileUtils.copyFile(newSchemaFile, getSchemaFile(getGMLParameters().getFile()));
+            } catch (IOException e) {
+                throw new CopyException(newFile.getName(), e);
+            }
+        }
+
+        this.resourceProvider = null;
+        getResource().addConsumer(this);
+
+        getResource().notifyChanges();
+    }
+
+    private Layer createLayer(DataSource dataSource, String layerName, SpatialReference srs,
+        int ogrGeomType, List<FieldDefn> fields, List<GeomFieldDefn> geomFields,
+        FeatureSet featureSet) throws DataException {
+
+        Layer newLayer = createLayer(dataSource, layerName, srs, ogrGeomType, fields, geomFields);
+
+        OGRConverter converter = new OGRConverter();
+        DisposableIterator iterator = featureSet.fastIterator();
+
+        try {
+            while (iterator.hasNext()) {
+                Feature feature = (Feature) iterator.next();
+                FeatureProvider featureProvider =
+                    getStoreServices().getFeatureProviderFromFeature(feature);
+                org.gdal.ogr.Feature orgFeature = converter.convert(featureProvider);
+                newLayer.CreateFeature(orgFeature);
+            }
+        } catch (BaseException e) {
+            LOG.error("Can not convert featureProvider to OGR Feature", e);
+            throw new WriteException(newLayer.GetName(), e);
+        } finally {
+            iterator.dispose();
+        }
+
+        return newLayer;
+    }
+
+    private Layer createLayer(DataSource dataSource, String layerName, SpatialReference srs,
+        int ogrGeomType, List<FieldDefn> fields, List<GeomFieldDefn> geomFields,
+        List<org.gdal.ogr.Feature> ogrFeatures) throws DataException {
+
+        Layer newLayer = createLayer(dataSource, layerName, srs, ogrGeomType, fields, geomFields);
+        OGRConverter converter = new OGRConverter();
+        // Save features to new layer
+        for (org.gdal.ogr.Feature feature : ogrFeatures) {
+            org.gdal.ogr.Feature fixedFeature = converter.convert(newLayer.GetLayerDefn(), feature);
+            newLayer.CreateFeature(fixedFeature);
+        }
+
+        return newLayer;
+    }
+
+    private Layer createLayer(DataSource dataSource, String layerName, SpatialReference srs,
+        int ogrGeomType, List<FieldDefn> fields, List<GeomFieldDefn> geomFields) {
+
+        Layer newLayer = null;
+
+        // Create new layer
+        if (srs == null) {
+            newLayer = dataSource.CreateLayer(layerName);
+        } else if (ogrGeomType == -1) {
+            newLayer = dataSource.CreateLayer(layerName, srs);
+        } else {
+            newLayer = dataSource.CreateLayer(layerName, srs, ogrGeomType);
+        }
+
+        // Creating fields
+        if (newLayer.TestCapability(ogrConstants.OLCCreateField)) {
+            for (FieldDefn fieldDefn : fields) {
+                newLayer.CreateField(fieldDefn);
+            }
+        } else {
+            LOG.warn("{} driver does not support creation of fields", dataSource.GetDriver()
+                .getName());
+        }
+
+        // Creating geometry fields
+        if (newLayer.TestCapability(ogrConstants.OLCCreateGeomField)) {
+            for (GeomFieldDefn geomFieldDefn : geomFields) {
+                newLayer.CreateGeomField(geomFieldDefn);
+            }
+        } else {
+            LOG.warn("{} driver does not support creation of geometry fields, only default"
+                + " OGR geometry field has been created", dataSource.GetDriver().getName());
+        }
+
+        return newLayer;
+    }
+
+    private File getSchemaFile(File newFile) {
+        String baseName = FilenameUtils.getBaseName(newFile.getName());
+        File xsdFiel = new File(newFile.getParentFile(), baseName + ".xsd");
+        return xsdFiel;
+    }
+
+    public void resourceChanged(ResourceProvider resource) {
+
+        if (getGMLParameters().getXsdSchema() == null) {
+            File schemaFile = getSchemaFile(getGMLParameters().getFile());
+            if(schemaFile.exists()){
+                getGMLParameters().setXsdSchema(schemaFile);
+            } else {
+                getGMLParameters().setXsdSchema(null);
+            }
+        }
+
+        FeatureStore store = this.getStoreServices().getFeatureStore();
+        FeatureType defaultFeatureType = null;
+        try {
+            defaultFeatureType = store.getDefaultFeatureType();
+            getGMLParameters().setDefaultGeometryField(
+                defaultFeatureType.getDefaultGeometryAttributeName());
+        } catch (DataException e) {
+            LOG.error("Can not default featury type of {}", this.getName());
+            return;
+        }
+        super.resourceChanged(resource);
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLLibrary.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLLibrary.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLLibrary.java	(revision 393)
@@ -0,0 +1,78 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.gml;
+
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.FileHelper;
+import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
+import org.gvsig.gdal.prov.ogr.OGRLibrary;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+
+/**
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class GMLLibrary extends AbstractLibrary {
+
+    @Override
+    public void doRegistration() {
+        registerAsImplementationOf(GMLLibrary.class);
+        require(OGRLibrary.class);
+    }
+
+    @Override
+    protected void doInitialize() throws LibraryException {
+
+    }
+
+    @Override
+    protected void doPostInitialize() throws LibraryException {
+
+        // Register GML parameters definition
+        FileHelper.registerParametersDefinition(GMLDataStoreParameters.PARAMETERS_DEFINITION_NAME,
+            GMLDataStoreParameters.class, "GMLDataStoreParameters.xml");
+
+        // Register data explorer parameters definition
+        FileHelper.registerParametersDefinition(
+            GMLDataExplorerParameters.PARAMETERS_DEFINITION_NAME, GMLDataExplorerParameters.class,
+            "GMLExplorerParameters.xml");
+
+        DataManagerProviderServices dataman =
+            (DataManagerProviderServices) DALLocator.getDataManager();
+
+        // Register GML provider factory
+        if (!dataman.getStoreProviders().contains(GMLDataStoreProvider.NAME)) {
+            dataman.registerStoreProviderFactory(new GMLDataStoreProviderFactory(
+                GMLDataStoreProvider.NAME, GMLDataStoreProvider.DESCRIPTION));
+        }
+
+        // Register GML data explorer provider
+        if (!dataman.getExplorerProviders().contains(GMLDataExplorer.NAME)) {
+            dataman.registerExplorerProvider(GMLDataExplorer.NAME, GMLDataExplorer.class,
+                GMLDataExplorerParameters.class);
+        }
+
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataStoreProviderFactory.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataStoreProviderFactory.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataStoreProviderFactory.java	(revision 393)
@@ -0,0 +1,119 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.gml;
+
+import java.io.File;
+
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Driver;
+import org.gdal.ogr.ogr;
+import org.gvsig.fmap.dal.DataParameters;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.DataStoreProvider;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.gdal.prov.ogr.BasicOGRDataStoreProviderFactory;
+import org.gvsig.gdal.prov.ogr.OGRDataStoreProviderFactory;
+import org.gvsig.tools.dynobject.DynObject;
+
+/**
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class GMLDataStoreProviderFactory extends BasicOGRDataStoreProviderFactory implements
+    OGRDataStoreProviderFactory {
+    
+    private static final String DRIVER_NAME = "GML";
+
+    /**
+     * @param name
+     *            Name of factory
+     * @param description
+     *            Description of factory
+     */
+    public GMLDataStoreProviderFactory(String name, String description) {
+        super(name, description);
+    }
+
+    @Override
+    public DataStoreProvider createProvider(DataParameters dataParameters,
+        DataStoreProviderServices providerServices) throws InitializeException {
+        return new GMLDataStoreProvider((DataStoreParameters) dataParameters, providerServices);
+    }
+
+    @Override
+    public DynObject createParameters() {
+        return new GMLDataStoreParameters();
+    }
+
+    @Override
+    public DynObject createParameters(Object connectionObject) {
+        if (canOpen(connectionObject)) {
+            return new GMLDataStoreParameters();
+        }
+        return null;
+    }
+
+    @Override
+    public DynObject createDataExplorerParameters(Object connectionObject) {
+        if (canOpen(connectionObject)) {
+            return new GMLDataExplorerParameters();
+        }
+        return null;
+    }
+
+    private boolean canOpen(Object connectionObject) {
+        
+        if (connectionObject instanceof File) {
+            File file = (File) connectionObject;
+            if (file.isFile() && file.exists()) {
+                Driver driver = ogr.GetDriverByName(getDriver());
+                DataSource dataSource = driver.Open(file.getAbsolutePath());
+                if (dataSource != null) {
+                    dataSource.delete();
+                    dataSource = null;
+                    return true;
+                }
+            }
+        } else if (connectionObject instanceof String) {
+            String connectionString = (String) connectionObject;
+            Driver driver = ogr.GetDriverByName(getDriver());
+            DataSource dataSource = driver.Open(connectionString);
+            if (dataSource != null) {
+                dataSource.delete();
+                dataSource = null;
+                return true;
+            }
+        } else {
+            throw new IllegalArgumentException(
+                "Connection object must be a file or a connection string");
+        }
+        return false;
+    }
+    
+    @Override
+    public String getDriver() {
+        return DRIVER_NAME;
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataExplorer.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataExplorer.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataExplorer.java	(revision 393)
@@ -0,0 +1,144 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.gml;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gdal.gdal.gdal;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Layer;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.NewDataStoreParameters;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.spi.DataServerExplorerProviderServices;
+import org.gvsig.gdal.prov.ogr.OGRDataExplorer;
+import org.gvsig.gdal.prov.ogr.OGRDataExplorerParameters;
+import org.gvsig.gdal.prov.ogr.OGRDataStoreProvider;
+import org.gvsig.gdal.prov.ogr.OGRNewDataStoreParameters;
+import org.gvsig.gdal.prov.ogr.OGRUnsupportedFormatException;
+
+/**
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class GMLDataExplorer extends OGRDataExplorer {
+
+    /**
+     * 
+     */
+    public static final String NAME = "GMLDataExplorer";
+
+    /**
+     * @param parameters
+     *            Parameters to open data explorer.
+     * @param providerServices
+     *            Available services
+     * @throws InitializeException
+     *             If there is some error initializating this store provider
+     */
+    public GMLDataExplorer(OGRDataExplorerParameters parameters,
+        DataServerExplorerProviderServices providerServices) throws InitializeException {
+        super(parameters, providerServices);
+    }
+
+    @Override
+    protected synchronized DataSource getDataSource() throws OGRUnsupportedFormatException {
+        try {
+            if (this.parameters instanceof GMLDataExplorerParameters) {
+                GMLDataExplorerParameters gmlDataExplorerParameters =
+                    (GMLDataExplorerParameters) this.parameters;
+
+                if (gmlDataExplorerParameters.getGfsSchema() != null) {
+                    gdal.SetConfigOption("GML_GFS_TEMPLATE", gmlDataExplorerParameters
+                        .getGfsSchema().getAbsolutePath());
+                }
+
+                return super.getDataSource();
+            } else {
+                throw new IllegalStateException(
+                    "Parameters of GML Data explorer is not instance of GMLDataExplorerParameters");
+            }
+        } finally {
+            gdal.SetConfigOption("GML_GFS_TEMPLATE", null);
+        }
+    }
+
+    @Override
+    public NewDataStoreParameters getAddParameters(String storeName) throws DataException {
+        if (getDataStoreProviderNames().contains(storeName)) {
+
+            NewDataStoreParameters newDataStoreParameters = super.getAddParameters(storeName);
+            if (OGRDataStoreProvider.NAME.equals(storeName)) {
+
+                return newDataStoreParameters;
+            } else if (GMLDataStoreProvider.NAME.equals(storeName)
+                && newDataStoreParameters instanceof OGRNewDataStoreParameters) {
+
+                ((OGRNewDataStoreParameters) newDataStoreParameters).setDriverName("GML");
+                return newDataStoreParameters;
+            }
+        }
+
+        return null;
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public List getDataStoreProviderNames() {
+        List<String> providerNames = super.getDataStoreProviderNames();
+        providerNames.add(GMLDataStoreProvider.NAME);
+        return providerNames;
+    }
+
+    @Override
+    public List list(int mode) throws DataException {
+
+        List<Layer> layerList = getLayerList();
+        List<GMLDataStoreParameters> parametersList = new ArrayList<GMLDataStoreParameters>();
+        DataManager dataManager = DALLocator.getDataManager();
+        GMLDataExplorerParameters gmlDataExplorerParameters =
+            (GMLDataExplorerParameters) this.parameters;
+
+        for (Layer layer : layerList) {
+
+            GMLDataStoreParameters storeParameters =
+                (GMLDataStoreParameters) dataManager
+                    .createStoreParameters(GMLDataStoreProvider.NAME);
+            String connectionString = gmlDataExplorerParameters.getConnectionString();
+            File file = gmlDataExplorerParameters.getFile();
+            File gfsSchema = gmlDataExplorerParameters.getGfsSchema();
+            storeParameters.setConnectionString(connectionString);
+            storeParameters.setFile(file);
+            storeParameters.setGfsSchema(gfsSchema);
+            storeParameters.setLayerName(layer.GetName());
+            parametersList.add(storeParameters);
+        }
+
+        return parametersList;
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataStoreParameters.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataStoreParameters.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/java/org/gvsig/gdal/prov/gml/GMLDataStoreParameters.java	(revision 393)
@@ -0,0 +1,104 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.gml;
+
+import java.io.File;
+
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.gdal.prov.ogr.OGRDataStoreParameters;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DelegatedDynObject;
+
+/**
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class GMLDataStoreParameters extends OGRDataStoreParameters {
+    
+    /**
+     * 
+     */
+    public static final String PARAMETERS_DEFINITION_NAME = "GMLDataStoreParameters";
+    
+    /**
+     * 
+     */
+    public static final String XSD_SCHEMA_PARAMTER_NAME = "xsdSchema";
+
+    /**
+     * 
+     */
+    public static final String GFS_SCHEMA_PARAMTER_NAME = "gfsSchema";
+    
+    /**
+     * 
+     */
+    public GMLDataStoreParameters() {
+        this.parameters = (DelegatedDynObject) ToolsLocator.getDynObjectManager().createDynObject(
+            ToolsLocator.getPersistenceManager().getDefinition(PARAMETERS_DEFINITION_NAME));
+        this.setDynValue(DataStoreProviderServices.PROVIDER_PARAMTER_NAME,
+            GMLDataStoreProvider.NAME);
+    }
+    
+    /**
+     * @return Schema of this GML Store provider
+     */
+    public File getXsdSchema() {
+        return (File) this.getDynValue(XSD_SCHEMA_PARAMTER_NAME);
+    }
+
+    /**
+     * @param schema
+     *            Schema of this GML Store provider
+     */
+    public void setXsdSchema(File schema) {
+        this.setDynValue(XSD_SCHEMA_PARAMTER_NAME, schema);
+    }
+
+    /**
+     * @return Schema of this GML Store provider
+     */
+    public File getGfsSchema() {
+        return (File) this.getDynValue(GFS_SCHEMA_PARAMTER_NAME);
+    }
+
+    /**
+     * @param schema
+     *            Schema of this GML Store provider
+     */
+    public void setGfsSchema(File schema) {
+        this.setDynValue(GFS_SCHEMA_PARAMTER_NAME, schema);
+    }
+    
+    @Override
+    public String getDataStoreName() {
+        return GMLDataStoreProvider.NAME;
+    }
+
+    @Override
+    public String getDescription() {
+        return GMLDataStoreProvider.DESCRIPTION;
+    }
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/resources/org/gvsig/gdal/prov/gml/GMLDataStoreParameters.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/resources/org/gvsig/gdal/prov/gml/GMLDataStoreParameters.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/resources/org/gvsig/gdal/prov/gml/GMLDataStoreParameters.xml	(revision 393)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<definitions>
+	<version>1.0.0</version>
+	<classes>
+		<class name="GMLDataStoreParameters">
+			<description>Store the parameters needed to open a GML store
+			</description>
+			<extends>
+				<class>OGRDataStoreParameters</class>
+			</extends>
+			<fields>
+				<field name="xsdSchema" type="file" mandatory="false" group="Basic">
+					<description>XSD Schema of this GML store</description>
+				</field>
+				<field name="gfsSchema" type="file" mandatory="false" group="Basic">
+					<description>GFS Schema of this GML store</description>
+				</field>
+			</fields>
+		</class>
+	</classes>
+</definitions>  
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/resources/org/gvsig/gdal/prov/gml/GMLExplorerParameters.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/resources/org/gvsig/gdal/prov/gml/GMLExplorerParameters.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/resources/org/gvsig/gdal/prov/gml/GMLExplorerParameters.xml	(revision 393)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<definitions>
+	<version>1.0.0</version>
+	<classes>
+		<class name="GMLDataExplorerParameters">
+			<description>Store the parameters needed to create GML data explorers
+			</description>
+			<extends>
+				<class>OGRDataExplorerParameters</class>
+			</extends>
+			<fields>
+				<field name="gfsSchema" type="file" mandatory="false" group="Basic">
+					<description>GFS Schema definition to explorer GML</description>
+				</field>
+			</fields>
+		</class>
+	</classes>
+</definitions>
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 393)
@@ -0,0 +1 @@
+org.gvsig.gdal.prov.gml.GMLLibrary
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml/pom.xml	(revision 393)
@@ -0,0 +1,22 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>org.gvsig.gdal.prov</artifactId>
+		<version>1.0.60</version>
+	</parent>
+	<artifactId>org.gvsig.gdal.prov.gml</artifactId>
+	<name>org.gvsig.gdal.prov.gml</name>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.gdal.prov.ogr</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.gdal</groupId>
+			<artifactId>gdal</artifactId>
+		</dependency>
+	</dependencies>
+
+</project>
\ No newline at end of file

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.gml
___________________________________________________________________
Added: svn:ignore
   + target


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataExplorer.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataExplorer.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataExplorer.java	(revision 393)
@@ -0,0 +1,464 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.cresques.cts.ICRSFactory;
+import org.cresques.cts.IProjection;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.FieldDefn;
+import org.gdal.ogr.GeomFieldDefn;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.ogr;
+import org.gdal.ogr.ogrConstants;
+import org.gdal.osr.SpatialReference;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.DataServerExplorerParameters;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.NewDataStoreParameters;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.exception.ReadRuntimeException;
+import org.gvsig.fmap.dal.feature.EditableFeatureType;
+import org.gvsig.fmap.dal.resource.ResourceAction;
+import org.gvsig.fmap.dal.resource.file.FileResource;
+import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
+import org.gvsig.fmap.dal.resource.spi.ResourceManagerProviderServices;
+import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
+import org.gvsig.fmap.dal.spi.AbstractDataServerExplorer;
+import org.gvsig.fmap.dal.spi.DataServerExplorerProvider;
+import org.gvsig.fmap.dal.spi.DataServerExplorerProviderServices;
+import org.gvsig.tools.dynobject.DynField;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRDataExplorer extends AbstractDataServerExplorer implements DataServerExplorerProvider, ResourceConsumer {
+
+    private static final Logger LOG = LoggerFactory.getLogger(OGRDataExplorer.class);
+
+    /**
+     * 
+     */
+    public static final String NAME = "OGRDataExplorer";
+
+    private DataServerExplorerProviderServices providerServives;
+    protected OGRDataExplorerParameters parameters;
+
+    private ResourceProvider resourceProvider;
+
+    protected DataSource dataSource;
+
+    protected Boolean updateSupport;
+
+    private List<Layer> layerList;
+
+    /**
+     * @param parameters
+     *            Parameters to open data explorer.
+     * @param providerServices
+     *            Available services
+     * @throws InitializeException
+     *             If there is some error initializing this store provider
+     */
+    public OGRDataExplorer(OGRDataExplorerParameters parameters,
+        DataServerExplorerProviderServices providerServices) throws InitializeException {
+        super(parameters, providerServices);
+        this.providerServives = providerServices;
+        this.parameters = parameters;
+
+        getResourceProvider().addConsumer(this);
+    }
+
+    private ResourceProvider getResourceProvider() {
+        if (this.resourceProvider == null) {
+            ResourceManagerProviderServices manager =
+                (ResourceManagerProviderServices) DALLocator.getResourceManager();
+
+            if (StringUtils.isBlank(parameters.getConnectionString())) {
+                try {
+                    this.resourceProvider =
+                        (FileResource) manager.createAddResource(FileResource.NAME,
+                            new Object[] { this.parameters.getFile().getAbsolutePath() });
+                } catch (InitializeException e) {
+                    throw new ReadRuntimeException(getProviderName(), e);
+                }
+            } else {
+                try {
+                    this.resourceProvider =
+                        (OGRResource) manager.createAddResource(OGRResource.NAME,
+                            new Object[] { this.parameters.getConnectionString() });
+                } catch (InitializeException e) {
+                    throw new ReadRuntimeException(getProviderName(), e);
+                }
+            }
+        }
+        return this.resourceProvider;
+    }
+
+    protected synchronized DataSource getDataSource() throws OGRUnsupportedFormatException {
+        if (this.dataSource == null) {
+            // Prioritize connection string over file
+            if (StringUtils.isNotBlank(this.parameters.getConnectionString())) {
+                // Trying to open in update mode
+                this.dataSource = ogr.Open(this.parameters.getConnectionString(), 1);
+
+                if (this.dataSource == null) {
+                    this.dataSource = ogr.Open(this.parameters.getConnectionString());
+                    updateSupport = false;
+                } else {
+                    updateSupport = true;
+                }
+
+            } else if (this.parameters.getFile() != null && this.parameters.getFile().exists()) {
+
+                // Trying to open in update mode
+                this.dataSource = ogr.Open(this.parameters.getFile().getAbsolutePath(), 1);
+
+                if (this.dataSource == null) {
+                    this.dataSource = ogr.Open(this.parameters.getFile().getAbsolutePath());
+                    updateSupport = false;
+                } else {
+                    updateSupport = true;
+                }
+
+            } else {
+                throw new IllegalStateException(
+                    "Invalid parameters. Connection string must not be blank or file must exists");
+            }
+        }
+
+        if (this.dataSource == null) {
+
+            if (StringUtils.isNotBlank(this.parameters.getConnectionString())) {
+                throw new OGRUnsupportedFormatException(this.parameters.getConnectionString());
+            }
+        }
+
+        return this.dataSource;
+    }
+
+    @SuppressWarnings("unchecked")
+    protected List<Layer> getLayerList() {
+        if (this.layerList == null) {
+            this.layerList = (List<Layer>) getResourceProvider().execute(new ResourceAction() {
+
+                @Override
+                public Object run() throws Exception {
+                    List<Layer> layers = new ArrayList<Layer>();
+
+                    for (int i = 0; i < getDataSource().GetLayerCount(); i++) {
+                        layers.add(getDataSource().GetLayer(i));
+                    }
+
+                    return layers;
+                }
+            });
+        }
+        return this.layerList;
+    }
+
+    private Boolean hasUpdateSupport() throws OGRUnsupportedFormatException {
+        if (this.updateSupport == null) {
+            // Open data source to check update support of driver
+            getDataSource();
+        }
+        return this.updateSupport;
+    }
+
+    @Override
+    public String getProviderName() {
+        return NAME;
+    }
+
+    @Override
+    public boolean canAdd() {
+
+        return (boolean) getResourceProvider().execute(new ResourceAction() {
+
+            @Override
+            public Object run() throws Exception {
+                return getDataSource().TestCapability(ogrConstants.ODsCCreateLayer)
+                    && getDataSource().TestCapability(ogrConstants.ODsCDeleteLayer)
+                    && hasUpdateSupport();
+            }
+        });
+    }
+
+    @Override
+    public boolean canAdd(String storeName) throws DataException {
+        return getDataStoreProviderNames().contains(storeName) && canAdd();
+    }
+
+    @SuppressWarnings("rawtypes")
+    @Override
+    public List list() throws DataException {
+        return list(MODE_ALL);
+    }
+
+    @SuppressWarnings("rawtypes")
+    @Override
+    public List list(int mode) throws DataException {
+        List<Layer> layerList = getLayerList();
+        DataManager dataManager = DALLocator.getDataManager();
+        
+        List<OGRDataStoreParameters> parametersList = new ArrayList<OGRDataStoreParameters>();
+        for (Layer layer : layerList) {
+            
+            OGRDataStoreParameters storeParameters =
+                (OGRDataStoreParameters) dataManager.createStoreParameters(OGRDataStoreProvider.NAME);
+            String connectionString = this.parameters.getConnectionString();
+            File file = this.parameters.getFile();
+            storeParameters.setConnectionString(connectionString);
+            storeParameters.setFile(file);
+            storeParameters.setLayerName(layer.GetName());
+            parametersList.add(storeParameters);
+        }
+        return parametersList;
+    }
+
+    @Override
+    public boolean add(String provider, final NewDataStoreParameters parameters,
+        final boolean overwrite) throws DataException {
+
+        if (canAdd()) {
+
+            return (boolean) getResourceProvider().execute(new ResourceAction() {
+
+                @Override
+                public Object run() throws Exception {
+
+                    if (parameters instanceof OGRNewDataStoreParameters) {
+                        OGRNewDataStoreParameters ogrParameters =
+                            (OGRNewDataStoreParameters) parameters;
+
+                        String layerName = ogrParameters.getLayerName();
+                        if (overwrite) {
+                            for (int i = 0; i < getLayerList().size(); i++) {
+                                if (getLayerList().get(i).GetName().equals(layerName)) {
+                                    getDataSource().DeleteLayer(i);
+                                }
+                            }
+                        } else {
+                            for (Layer layer : getLayerList()) {
+                                if (layer.GetName().equals(layerName)) {
+                                    return false;
+                                }
+                            }
+                        }
+
+                        EditableFeatureType editableFeatureType =
+                            ogrParameters.getDefaultFeatureType();
+
+                        OGRConverter converter = new OGRConverter();
+
+                        // If SRS is defined convert it to spatial reference
+                        IProjection projection = editableFeatureType.getDefaultSRS();
+                        SpatialReference srs = null;
+                        if (projection != null) {
+                            srs = new SpatialReference(projection.export(ICRSFactory.FORMAT_PROJ4));
+                        }
+
+                        // Convert to geometry type to OGR Geometry type
+                        Integer ogrGeometryType = null;
+                        if (editableFeatureType.getDefaultGeometryAttribute() != null) {
+                            int geomType =
+                                editableFeatureType.getDefaultGeometryAttribute().getGeomType()
+                                    .getType();
+                            ogrGeometryType = converter.convertToOGRGeomType(geomType);
+                        }
+
+                        // Create layer
+                        Layer newlayer = null;
+                        if (srs == null) {
+                            newlayer = getDataSource().CreateLayer(layerName);
+                        } else if (ogrGeometryType == null && srs != null) {
+                            newlayer = getDataSource().CreateLayer(layerName, srs);
+                        } else if (ogrGeometryType != null && srs != null) {
+                            newlayer = getDataSource().CreateLayer(layerName, srs, ogrGeometryType);
+                        }
+
+                        List<FieldDefn> fields =
+                            converter.convertFields(editableFeatureType.getNotEditableCopy());
+                        for (FieldDefn fieldDefn : fields) {
+                            newlayer.CreateField(fieldDefn);
+                        }
+
+                        List<GeomFieldDefn> geometryFields =
+                            converter.convertGeometryFields(
+                                editableFeatureType.getNotEditableCopy(), false);
+                        for (GeomFieldDefn geomFieldDefn : geometryFields) {
+                            newlayer.CreateGeomField(geomFieldDefn);
+                        }
+                        return true;
+                    }
+                    return false;
+                }
+            });
+        }
+        return false;
+    }
+
+    @Override
+    public void remove(final DataStoreParameters parameters) throws DataException {
+
+        if (canAdd()) {
+
+            getResourceProvider().execute(new ResourceAction() {
+
+                @Override
+                public Object run() throws Exception {
+                    if (parameters instanceof OGRNewDataStoreParameters) {
+                        OGRNewDataStoreParameters ogrParameters =
+                            (OGRNewDataStoreParameters) parameters;
+
+                        String layerName = ogrParameters.getLayerName();
+                        for (int i = 0; i < getLayerList().size(); i++) {
+                            if (getLayerList().get(i).GetName().equals(layerName)) {
+                                getDataSource().DeleteLayer(i);
+                                return true;
+                            }
+                        }
+                    }
+                    return false;
+                }
+            });
+        }
+    }
+
+    @Override
+    public NewDataStoreParameters getAddParameters(String storeName) throws DataException {
+
+        if (getDataStoreProviderNames().contains(storeName)) {
+            OGRNewDataStoreParameters newParameters = new OGRNewDataStoreParameters();
+            newParameters.setFile(this.parameters.getFile());
+            newParameters.setConnectionString(this.parameters.getConnectionString());
+            return newParameters;
+        }
+
+        return null;
+    }
+
+    @Override
+    public DataServerExplorerParameters getParameters() {
+        return parameters;
+    }
+
+    @SuppressWarnings("rawtypes")
+    @Override
+    public List getDataStoreProviderNames() {
+        List<String> providerNames = new ArrayList<String>();
+        providerNames.add(OGRDataStoreProvider.NAME);
+        return providerNames;
+    }
+
+    @Override
+    public void doDispose() {
+
+        try {
+            getDataSource().SyncToDisk();
+            getDataSource().delete();
+        } catch (OGRUnsupportedFormatException e) {
+            LOG.warn("Can not dispose OGRDataExplorer", e);
+        }
+
+        this.dataSource = null;
+        this.layerList = null;
+
+        getResourceProvider().removeConsumer(this);
+        this.resourceProvider = null;
+    }
+
+    @Override
+    public DataServerExplorerProviderServices getServerExplorerProviderServices() {
+        return providerServives;
+    }
+
+    @Override
+    public boolean closeResourceRequested(ResourceProvider resource) {
+
+        try {
+            getDataSource().SyncToDisk();
+            getDataSource().delete();
+        } catch (OGRUnsupportedFormatException e) {
+            LOG.warn(String.format("Can not close requested resource %1s", resource), e);
+        }
+
+        this.dataSource = null;
+        this.layerList = null;
+        return true;
+    }
+
+    @Override
+    public void resourceChanged(ResourceProvider resource) {
+
+        try {
+            getDataSource().SyncToDisk();
+            getDataSource().delete();
+        } catch (OGRUnsupportedFormatException e) {
+            LOG.warn("Can not sync to disk or release native resources to reopen data source", e);
+        }
+
+        this.dataSource = null;
+        this.layerList = null;
+    }
+
+    @Override
+    public DataStoreParameters get(String name) throws DataException {
+        // "name" es un nombre de fichero sin path.
+        
+        // No tengo nada clara esta implementacion
+        OGRDataStoreParameters params = new OGRDataStoreParameters();
+        //
+        // Copiamos los paramametros que se llamen igual entre el explorer y
+        // el DataStoreParametes
+        for( DynField field : params.getDynClass().getDynFields() ) {
+            String fieldName = field.getName();
+            if( parameters.hasDynValue(fieldName) ) {
+                params.setDynValue(fieldName, parameters.getDynValue(fieldName));
+            }
+        }
+        // Si el file es una carpeta asignamos como file el fichero name que haya
+        // en ella
+        // Si el file es un fichero cogemos el fichero name que se encuentre en
+        // su misma carpeta.
+        if( parameters.getFile().isDirectory() ) {
+            params.setFile(new File(parameters.getFile(),name));
+        } else {
+            params.setFile(new File(parameters.getFile().getParentFile(),name));
+        }
+        // Usamos como layer el nombre del fichero pasado como parametro.
+        params.setLayerName(name);
+        return params;
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataStoreParameters.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataStoreParameters.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataStoreParameters.java	(revision 393)
@@ -0,0 +1,195 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.io.File;
+
+import org.apache.commons.lang3.StringUtils;
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
+import org.gvsig.fmap.dal.spi.AbstractDataParameters;
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DelegatedDynObject;
+
+/**
+ *
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRDataStoreParameters extends AbstractDataParameters implements OpenFeatureStoreParameters,
+    FilesystemStoreParameters {
+
+    /**
+     *
+     */
+    public static final String PARAMETERS_DEFINITION_NAME = "OGRDataStoreParameters";
+
+    /**
+     *
+     */
+    public static final String FILE_PARAMTER_NAME = "file";
+
+    /**
+     *
+     */
+    public static final String LAYER_NAME_PARAMTER_NAME = "layerName";
+
+    /**
+     *
+     */
+    public static final String CONNECTION_STRING_PARAMETER_NAME = "connectionString";
+
+    /**
+     *
+     */
+    public static final String DEFAULT_GEOMETRY_PARAMETER_NAME = "defaultGeometryField";
+
+    /**
+     *
+     */
+    public static final String CRS_PARAMETER_NAME = "crs";
+
+    /**
+     *
+     */
+    public static final String IGNORE_SPATIAL_FILTER = "ignoreSpatialFilter";
+
+
+    protected DelegatedDynObject parameters;
+
+    /**
+     *
+     */
+    public OGRDataStoreParameters() {
+        this.parameters =
+            (DelegatedDynObject) ToolsLocator.getDynObjectManager().createDynObject(
+                ToolsLocator.getPersistenceManager().getDefinition(PARAMETERS_DEFINITION_NAME));
+        this.setDynValue(DataStoreProviderServices.PROVIDER_PARAMTER_NAME,
+            OGRDataStoreProvider.NAME);
+    }
+
+    @Override
+    public String getDataStoreName() {
+        return OGRDataStoreProvider.NAME;
+    }
+
+    @Override
+    public String getDescription() {
+        return OGRDataStoreProvider.DESCRIPTION;
+    }
+
+    /**
+     * @return File
+     */
+    public File getFile() {
+        return (File) this.getDynValue(FILE_PARAMTER_NAME);
+    }
+
+    /**
+     * @return String
+     */
+    public String getLayerName() {
+        return (String) this.getDynValue(LAYER_NAME_PARAMTER_NAME);
+    }
+
+    /**
+     * @return String
+     */
+    public String getConnectionString() {
+        return (String) this.getDynValue(CONNECTION_STRING_PARAMETER_NAME);
+    }
+
+    /**
+     * @return String
+     */
+    public String getDefaultGeometryField() {
+        return (String) this.getDynValue(DEFAULT_GEOMETRY_PARAMETER_NAME);
+    }
+
+    /**
+     *
+     * @return String
+     */
+    public IProjection getCRS() {
+        return (IProjection) this.getDynValue(CRS_PARAMETER_NAME);
+    }
+
+    /**
+     * @param file
+     *            File
+     */
+    public void setFile(File file) {
+        this.setDynValue(FILE_PARAMTER_NAME, file);
+    }
+
+    /**
+     * @param layerName
+     *            Name of layer
+     */
+    public void setLayerName(String layerName) {
+        this.setDynValue(LAYER_NAME_PARAMTER_NAME, layerName);
+    }
+
+    /**
+     * @param connectionString
+     *            Connection string
+     */
+    public void setConnectionString(String connectionString) {
+        this.setDynValue(CONNECTION_STRING_PARAMETER_NAME, connectionString);
+    }
+
+    /**
+     * @param defaultGeoemtryField
+     *            Name of defualt geometry field.
+     */
+    public void setDefaultGeometryField(String defaultGeoemtryField) {
+        this.setDynValue(DEFAULT_GEOMETRY_PARAMETER_NAME, defaultGeoemtryField);
+    }
+
+    /**
+     *
+     * @param crs
+     */
+    public void setCRS(IProjection crs) {
+        this.setDynValue(CRS_PARAMETER_NAME, crs);
+    }
+
+    @Override
+    public boolean isValid() {
+        if ((this.getFile() != null && this.getFile().exists())
+            || StringUtils.isNotBlank(this.getConnectionString())) {
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    protected DelegatedDynObject getDelegatedDynObject() {
+        return parameters;
+    }
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/BasicOGRDataStoreProviderFactory.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/BasicOGRDataStoreProviderFactory.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/BasicOGRDataStoreProviderFactory.java	(revision 393)
@@ -0,0 +1,131 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gvsig.fmap.dal.DataParameters;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.DataStoreProvider;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.feature.spi.AbstractFeatureStoreProviderFactory;
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.tools.dynobject.DynObject;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class BasicOGRDataStoreProviderFactory extends AbstractFeatureStoreProviderFactory implements
+    OGRDataStoreProviderFactory {
+
+    /**
+     * @param name
+     *            Name of factory
+     * @param description
+     *            Description of factory
+     */
+    public BasicOGRDataStoreProviderFactory(String name, String description) {
+        super(name, description);
+    }
+
+    @Override
+    public DataStoreProvider createProvider(DataParameters dataParameters,
+        DataStoreProviderServices providerServices) throws InitializeException {
+        return new OGRDataStoreProvider((DataStoreParameters) dataParameters, providerServices);
+    }
+
+    @Override
+    public DynObject createParameters() {
+        return new OGRDataStoreParameters();
+    }
+
+    public int allowMultipleGeometryTypes() {
+        return UNKNOWN;
+    }
+
+    public int allowEditableFeatureType() {
+        return UNKNOWN;
+    }
+
+    /**
+     * See {@link OGRConverter#convertToDataType(int)} method. The list of data
+     * type of OGR. If the list of OGR types changes update this method.
+     */
+    @SuppressWarnings("rawtypes")
+    public List getSupportedDataTypes() {
+
+        List<Integer> supportedDataTypes = new ArrayList<Integer>();
+
+        supportedDataTypes.add(DataTypes.BOOLEAN);
+        supportedDataTypes.add(DataTypes.DATE);
+        supportedDataTypes.add(DataTypes.FLOAT);
+        supportedDataTypes.add(DataTypes.DOUBLE);
+        supportedDataTypes.add(DataTypes.STRING);
+        supportedDataTypes.add(DataTypes.INT);
+        supportedDataTypes.add(DataTypes.LONG);
+        supportedDataTypes.add(DataTypes.TIME);
+
+        return supportedDataTypes;
+    }
+
+    @SuppressWarnings("rawtypes")
+    public List getSupportedGeometryTypesSubtypes() {
+        List<Integer> supportedSubtypes = new ArrayList<Integer>();
+        supportedSubtypes.add(SUBTYPES.GEOM2D);
+        return supportedSubtypes;
+    }
+
+    public boolean allowsMandatoryAttributes() {
+        return false;
+    }
+
+    public boolean allowsPrimaryKeyAttributes() {
+        return false;
+    }
+
+    public int useLocalIndexesCanImprovePerformance() {
+        return UNKNOWN;
+    }
+
+    @Override
+    public DynObject createDataExplorerParameters(Object connectionString) {
+        return new OGRDataExplorerParameters();
+    }
+
+    @Override
+    public DynObject createParameters(Object connectionObject) {
+        return createParameters();
+    }
+
+    @Override
+    public String getDriver() {
+        return null;
+    }
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRResourceParameters.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRResourceParameters.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRResourceParameters.java	(revision 393)
@@ -0,0 +1,126 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright (C) 2007-2016 gvSIG Association.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import org.gvsig.fmap.dal.resource.spi.AbstractResourceParameters;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dataTypes.DataTypes;
+import org.gvsig.tools.dynobject.DelegatedDynObject;
+import org.gvsig.tools.dynobject.DynClass;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRResourceParameters extends AbstractResourceParameters {
+
+    /**
+     * 
+     */
+    public static final String DYNCLASS_NAME = "OGRResourceParameters";
+
+    /**
+     * 
+     */
+    private static final String DYNFIELDNAME_NAME = "name";
+
+    /**
+     * 
+     */
+    private static final String DYNFIELDNAME_CONNECTION_STRING = "connectionString";
+
+    private DelegatedDynObject delegatedDynObject;
+
+    /**
+     * 
+     */
+    public OGRResourceParameters() {
+        super();
+        PersistenceManager manager = ToolsLocator.getPersistenceManager();
+        DynClass definition = (DynClass) manager.getDefinition(DYNCLASS_NAME);
+        this.delegatedDynObject =
+            (DelegatedDynObject) ToolsLocator.getDynObjectManager().createDynObject(definition);
+    }
+
+    /**
+     * 
+     * @param connectionString
+     *            Connection string
+     */
+    public OGRResourceParameters(String connectionString) {
+        this();
+        setDynValue(DYNFIELDNAME_NAME,
+            String.valueOf(connectionString.hashCode()).concat("@OGResource"));
+        setDynValue(DYNFIELDNAME_CONNECTION_STRING, connectionString);
+    }
+
+    /**
+     * 
+     * @param params
+     *            Array with parameter values
+     */
+    public OGRResourceParameters(Object[] params) {
+        this((String) params[0]);
+    }
+
+    @Override
+    public String getTypeName() {
+        return OGRResource.NAME;
+    }
+
+    @Override
+    protected DelegatedDynObject getDelegatedDynObject() {
+        return delegatedDynObject;
+    }
+
+    /**
+     * @return String
+     */
+    public String getName() {
+        return (String) this.getDynValue(DYNFIELDNAME_NAME);
+    }
+
+    /**
+     * @return String
+     */
+    public String getConnectionString() {
+        return (String) this.getDynValue(DYNFIELDNAME_CONNECTION_STRING);
+    }
+
+    protected static void registerPersistenceDefinition() {
+        PersistenceManager manager = ToolsLocator.getPersistenceManager();
+        DynClass definition = (DynClass) manager.getDefinition(DYNCLASS_NAME);
+        if (definition == null) {
+            definition = (DynClass) manager.addDefinition(OGRResourceParameters.class,
+                DYNCLASS_NAME, DYNCLASS_NAME + " persistence definition", null, null);
+
+            definition.addDynField(DYNFIELDNAME_NAME).setType(DataTypes.STRING)
+                .setDescription("Name of resource");
+            definition.addDynField(DYNFIELDNAME_CONNECTION_STRING).setType(DataTypes.STRING)
+                .setDescription("Connection string");
+        }
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataExplorerParameters.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataExplorerParameters.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataExplorerParameters.java	(revision 393)
@@ -0,0 +1,109 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.io.File;
+
+import org.gvsig.fmap.dal.DataServerExplorerParameters;
+import org.gvsig.fmap.dal.spi.AbstractDataParameters;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DelegatedDynObject;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRDataExplorerParameters extends AbstractDataParameters
+    implements DataServerExplorerParameters {
+
+    /**
+     * 
+     */
+    public static final String PARAMETERS_DEFINITION_NAME = "OGRDataExplorerParameters";
+
+    /**
+     * 
+     */
+    public static final String FILE_PARAMETER_NAME = "file";
+
+    /**
+     * 
+     */
+    public static final String CONNECTION_STRING_PARAMETER_NAME = "connectionString";
+
+    private DelegatedDynObject parameters;
+
+    /**
+     * 
+     */
+    public OGRDataExplorerParameters() {
+        this.parameters = (DelegatedDynObject) ToolsLocator.getDynObjectManager().createDynObject(
+            ToolsLocator.getPersistenceManager().getDefinition(PARAMETERS_DEFINITION_NAME));
+    }
+
+    @Override
+    public String getExplorerName() {
+        return OGRDataExplorer.NAME;
+    }
+
+    @Override
+    protected DelegatedDynObject getDelegatedDynObject() {
+        return this.parameters;
+    }
+
+    /**
+     * 
+     * @return File
+     */
+    public File getFile() {
+        return (File) this.getDynValue(FILE_PARAMETER_NAME);
+    }
+
+    /**
+     * 
+     * @return String
+     */
+    public String getConnectionString() {
+        return (String) this.getDynValue(CONNECTION_STRING_PARAMETER_NAME);
+    }
+
+    /**
+     * 
+     * @param file
+     *            File
+     */
+    public void setFile(File file) {
+        this.setDynValue(FILE_PARAMETER_NAME, file);
+    }
+
+    /**
+     * 
+     * @param connection
+     *            Connection string
+     */
+    public void setConnectionString(String connection) {
+        this.setDynValue(CONNECTION_STRING_PARAMETER_NAME, connection);
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRUnsupportedFormatException.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRUnsupportedFormatException.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRUnsupportedFormatException.java	(revision 393)
@@ -0,0 +1,86 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.util.Map;
+
+import org.gvsig.fmap.dal.exception.DataException;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+@SuppressWarnings("unchecked")
+public class OGRUnsupportedFormatException extends DataException {
+
+    private static final long serialVersionUID = -2670314598211236837L;
+
+    private final static String MESSAGE =
+        "Unsupported vectorial format. There are not any OGR driver registered to open %(connectionString)";
+
+    private final static String KEY = "_UnsupportedVectorialFormatException";
+
+    /**
+     * @param messageFormat
+     *            Message format
+     * @param cause
+     *            Cause
+     * @param messageKey
+     *            Message key
+     * @param code
+     *            code
+     * @param values
+     *            Values
+     */
+    public OGRUnsupportedFormatException(String messageFormat, Throwable cause, String messageKey,
+        long code, Map<Object, Object> values) {
+        super(messageFormat, cause, messageKey, code);
+        this.values.putAll(values);
+    }
+
+    /**
+     * @param messageFormat
+     *            Message format
+     * @param cause
+     *            Cause
+     * @param values
+     *            Values
+     */
+    public OGRUnsupportedFormatException(String messageFormat, Throwable cause,
+        Map<Object, Object> values) {
+        super(messageFormat, cause, KEY, serialVersionUID);
+        this.values.putAll(values);
+    }
+
+    /**
+     * @param connectionString
+     *            Conenction string
+     */
+    public OGRUnsupportedFormatException(String connectionString) {
+        super(MESSAGE, KEY, serialVersionUID);
+        this.values.put("connectionString", connectionString);
+    }
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataStoreProvider.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataStoreProvider.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataStoreProvider.java	(revision 393)
@@ -0,0 +1,631 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Feature;
+import org.gdal.ogr.FeatureDefn;
+import org.gdal.ogr.FieldDefn;
+import org.gdal.ogr.GeomFieldDefn;
+import org.gdal.ogr.Geometry;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.ogr;
+import org.gdal.ogr.ogrConstants;
+
+import org.gvsig.fmap.dal.DataStore;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.FileHelper;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.exception.OpenException;
+import org.gvsig.fmap.dal.exception.ReadRuntimeException;
+import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureQuery;
+import org.gvsig.fmap.dal.feature.FeatureQueryOrder;
+import org.gvsig.fmap.dal.feature.FeatureQueryOrder.FeatureQueryOrderMember;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.dal.feature.spi.AbstractFeatureStoreProvider;
+import org.gvsig.fmap.dal.feature.spi.DefaultFeatureProvider;
+import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
+import org.gvsig.fmap.dal.feature.spi.FeatureReferenceProviderServices;
+import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider;
+import org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider;
+import org.gvsig.fmap.dal.resource.ResourceAction;
+import org.gvsig.fmap.dal.resource.file.FileResource;
+import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
+import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.evaluator.Evaluator;
+import org.gvsig.tools.exception.BaseException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRDataStoreProvider extends AbstractFeatureStoreProvider implements
+    FeatureStoreProvider, ResourceConsumer {
+
+    private static final Logger LOG = LoggerFactory.getLogger(OGRDataStoreProvider.class);
+
+    /**
+     *
+     */
+    public static final String METADATA_DEFINITION_NAME = "OGRDataStoreProvider";
+
+    /**
+     *
+     */
+    public static final String NAME = "OGRDataStoreProvider";
+
+    /**
+     *
+     */
+    public static final String DESCRIPTION = "OGR provider to open vectorial resources";
+
+    protected DataSource dataSource;
+
+    private Envelope envelope;
+
+    private Layer newLayer;
+
+    protected ResourceProvider resourceProvider;
+
+    private Boolean updateSupport;
+
+    private boolean opened = false;
+
+    protected OGRDataStoreProvider(DataStoreParameters dataParameters,
+        DataStoreProviderServices storeServices, DynObject metadata) throws InitializeException {
+        super(dataParameters, storeServices, metadata);
+
+        // Set CRS parameter to metadata
+        this.setDynValue(DataStore.METADATA_CRS, dataParameters.getDynValue(DataStore.METADATA_CRS));
+
+        getResource().addConsumer(this);
+
+        try {
+            this.open();
+        } catch (OpenException e) {
+            throw new InitializeException(NAME, e);
+        }
+    }
+
+    protected OGRDataStoreProvider(DataStoreParameters dataParameters,
+        DataStoreProviderServices storeServices) throws InitializeException {
+        this(dataParameters, storeServices, FileHelper
+            .newMetadataContainer(METADATA_DEFINITION_NAME));
+    }
+
+    /*
+     * Lazy initialization of data source
+     */
+    protected synchronized DataSource getDataSource() throws OGRUnsupportedFormatException {
+        if (this.dataSource == null) {
+
+            // Prioritize connection string over file
+            if (StringUtils.isNotBlank(getOGRParameters().getConnectionString())) {
+
+                // Trying to open in update mode
+                this.dataSource = ogr.Open(getOGRParameters().getConnectionString(), 1);
+
+                if (this.dataSource == null) {
+                    this.dataSource = ogr.Open(getOGRParameters().getConnectionString());
+                    updateSupport = false;
+                } else {
+                    updateSupport = true;
+                }
+
+            } else if (getOGRParameters().getFile() != null
+                && getOGRParameters().getFile().exists()) {
+
+                // Trying to open in update mode
+                this.dataSource = ogr.Open(getOGRParameters().getFile().getAbsolutePath(), 1);
+
+                if (this.dataSource == null) {
+                    this.dataSource = ogr.Open(getOGRParameters().getFile().getAbsolutePath());
+                    updateSupport = false;
+                } else {
+                    updateSupport = true;
+                }
+
+            } else {
+                throw new IllegalStateException(
+                    "Invalid parameters. Connection string must not be blank or file must exists");
+            }
+        }
+
+        if (this.dataSource == null) {
+
+            if (StringUtils.isNotBlank(getOGRParameters().getConnectionString())) {
+                throw new OGRUnsupportedFormatException(getOGRParameters().getConnectionString());
+            }
+        }
+
+        return this.dataSource;
+    }
+
+    /*
+     * Lazy initialization of update support flag
+     */
+    private Boolean hasUpdateSupport() throws OGRUnsupportedFormatException {
+        if (this.updateSupport == null) {
+            getDataSource();
+        }
+        return this.updateSupport;
+    }
+
+    /*
+     * Lazy initialization of layer
+     */
+    protected Layer getLayer() throws OGRUnsupportedFormatException {
+        if (this.newLayer == null) {
+            this.newLayer = getDataSource().GetLayer(getOGRParameters().getLayerName());
+            // this.layer = getDataSource().GetLayer(0);
+            if (this.newLayer == null) {
+                LOG.warn("Can not get layer with {} name. Get first layer of data source",
+                    getOGRParameters().getLayerName());
+                this.newLayer = getDataSource().GetLayer(0);
+                getOGRParameters().setLayerName(this.newLayer.GetName());
+            }
+        }
+        return this.newLayer;
+    }
+
+    /*
+     * Lazy envelope initialization
+     */
+    @Override
+    public Envelope getEnvelope() throws DataException {
+        open();
+        if (this.envelope == null) {
+            this.envelope = (Envelope) getResource().execute(new ResourceAction() {
+
+                @Override
+                public Object run() throws Exception {
+                    Layer layer = getLayer();
+                    double[] extent = layer.GetExtent(true);
+                    if (extent != null) {
+                        return GeometryLocator.getGeometryManager().createEnvelope(extent[0],
+                            extent[2], extent[1], extent[3], SUBTYPES.GEOM2D);
+                    } else {
+                        Envelope tmpEnvelope =
+                            GeometryLocator.getGeometryManager().createEnvelope(SUBTYPES.GEOM2D);
+                        FeatureType featureType = getStoreServices().getDefaultFeatureType();
+                        layer.ResetReading();
+                        Feature feature = layer.GetNextFeature();
+                        while (feature!=null) {
+                            double[] envelope = new double[4];
+                            int geomFieldIndex =
+                                layer.GetLayerDefn().GetGeomFieldIndex(
+                                    featureType.getDefaultGeometryAttributeName());
+                            Geometry ogrGeometry = feature.GetGeomFieldRef(geomFieldIndex);
+                            ogrGeometry.GetEnvelope(envelope);
+                            tmpEnvelope.add(GeometryLocator.getGeometryManager()
+                                .createEnvelope(envelope[0], envelope[2], envelope[1], envelope[3],
+                                    SUBTYPES.GEOM2D));
+                            feature = layer.GetNextFeature();
+                        }
+
+                        return tmpEnvelope;
+                    }
+                }
+            });
+        }
+        return this.envelope;
+    }
+
+    @Override
+    public String getFullName() {
+
+        StringBuilder stb = new StringBuilder();
+        stb.append(NAME);
+        stb.append(":");
+        if (StringUtils.isBlank(getOGRParameters().getConnectionString())) {
+            stb.append(getOGRParameters().getFile().getAbsolutePath());
+            stb.append(":");
+            stb.append(getOGRParameters().getLayerName());
+        } else {
+            stb.append(getOGRParameters().getConnectionString());
+        }
+        return stb.toString();
+    }
+
+    @Override
+    public String getName() {
+        return getOGRParameters().getLayerName();
+    }
+
+    @Override
+    public String getProviderName() {
+        return NAME;
+    }
+
+    @Override
+    public boolean allowWrite() {
+        try {
+            return getLayer().TestCapability(ogrConstants.OLCAlterFieldDefn)
+                && getLayer().TestCapability(ogrConstants.OLCCreateField)
+                && getLayer().TestCapability(ogrConstants.OLCDeleteField)
+                && getLayer().TestCapability(ogrConstants.OLCDeleteFeature) && hasUpdateSupport();
+        } catch (OGRUnsupportedFormatException e) {
+            LOG.error("Can not determinate if data source allows write", e);
+            return false;
+        }
+    }
+
+    @Override
+    public ResourceProvider getResource() {
+
+        if (this.resourceProvider == null) {
+            if (StringUtils.isBlank(getOGRParameters().getConnectionString())) {
+                try {
+                    this.resourceProvider =
+                        this.createResource(FileResource.NAME, new Object[] { getOGRParameters()
+                            .getFile().getAbsolutePath() });
+                } catch (InitializeException e) {
+                    throw new ReadRuntimeException(String.format(
+                        "Can not create file resource with %1s path", getOGRParameters().getFile()
+                            .getAbsolutePath()), e);
+                }
+            } else {
+                try {
+                    this.resourceProvider =
+                        this.createResource(OGRResource.NAME, new Object[] { getOGRParameters()
+                            .getConnectionString() });
+                } catch (InitializeException e) {
+                    throw new ReadRuntimeException(String.format(
+                        "Can not create OGR resource with %1s", getOGRParameters()
+                            .getConnectionString()), e);
+                }
+            }
+        }
+
+        return resourceProvider;
+    }
+
+    @Override
+    public Object getSourceId() {
+        return this.getOGRParameters().getFile();
+    }
+
+    @Override
+    public void open() throws OpenException {
+
+        if (opened == false) {
+            try {
+                this.opened = loadFeatureType();
+            } catch (BaseException e) {
+                LOG.error("Can not load feature type", e);
+                throw new OpenException(getFullName(), e);
+            }
+        }
+    }
+
+    protected boolean loadFeatureType() throws OGRUnsupportedFormatException,
+        GeometryTypeNotSupportedException, GeometryTypeNotValidException {
+
+        return (boolean) getResource().execute(new ResourceAction() {
+
+            @Override
+            public Object run() throws Exception {
+                FeatureDefn featureDefn = getLayer().GetLayerDefn();
+                OGRConverter converter = new OGRConverter();
+                String defaultGeometryField = getOGRParameters().getDefaultGeometryField();
+                FeatureType featureType = converter.convert(featureDefn, defaultGeometryField);
+
+                if (featureType.getDefaultSRS() != null) {
+                    setDynValue(DataStore.METADATA_CRS, featureType.getDefaultSRS());
+                }
+
+                List<FeatureType> featureTypes = new ArrayList<FeatureType>();
+                featureTypes.add(featureType);
+
+                getStoreServices().setFeatureTypes(featureTypes, featureType);
+                return true;
+            }
+        });
+    }
+
+    @SuppressWarnings("rawtypes")
+    @Override
+    public void performChanges(final Iterator deleteds, final Iterator inserteds,
+        final Iterator updateds, final Iterator featureTypesChanged) throws DataException {
+
+        getResource().execute(new ResourceAction() {
+
+            @Override
+            public Object run() throws Exception {
+                OGRConverter converter = new OGRConverter();
+
+                if (getLayer().TestCapability(ogrConstants.OLCTransactions)) {
+                    getLayer().StartTransaction();
+                }
+
+                while (featureTypesChanged.hasNext()) {
+                    FeatureTypeChanged featureTypeChange =
+                        (FeatureTypeChanged) featureTypesChanged.next();
+                    FeatureType source = featureTypeChange.getSource();
+                    FeatureType target = featureTypeChange.getTarget();
+
+                    for (int i = 0; i < source.getAttributeDescriptors().length; i++) {
+                        EditableFeatureAttributeDescriptor eAttDescriptor =
+                            source.getEditable().getEditableAttributeDescriptor(i);
+
+                        if (eAttDescriptor.getOriginalName() != null) {
+                            int index =
+                                getLayer().GetLayerDefn().GetFieldIndex(
+                                    eAttDescriptor.getOriginalName());
+
+                            FieldDefn field = converter.convertField(eAttDescriptor);
+                            getLayer().AlterFieldDefn(index, field, ogrConstants.ALTER_ALL_FLAG);
+                        } else if (target.getAttributeDescriptor(eAttDescriptor.getName()) == null) {
+                            int index = getLayer().FindFieldIndex(eAttDescriptor.getName(), 1);
+                            getLayer().DeleteField(index);
+                        }
+                    }
+
+                    List<FieldDefn> fields = converter.convertFields(target);
+                    for (FieldDefn fieldDefn : fields) {
+                        int index = getLayer().GetLayerDefn().GetFieldIndex(fieldDefn.GetName());
+                        if (index == -1) {
+                            getLayer().CreateField(fieldDefn);
+                        } else {
+                            getLayer()
+                                .AlterFieldDefn(index, fieldDefn, ogrConstants.ALTER_ALL_FLAG);
+                        }
+                    }
+
+                    if (getLayer().TestCapability(ogrConstants.OLCCreateGeomField)) {
+                        List<GeomFieldDefn> geometryFields =
+                            converter.convertGeometryFields(target, true);
+                        for (GeomFieldDefn geomFieldDefn : geometryFields) {
+                            int index =
+                                getLayer().GetLayerDefn()
+                                    .GetGeomFieldIndex(geomFieldDefn.GetName());
+                            if (index == -1) {
+                                getLayer().CreateGeomField(geomFieldDefn);
+                            }
+                        }
+                    } else {
+                        StringBuilder stb = new StringBuilder();
+                        stb.append("Driver '");
+                        stb.append(getDataSource().GetDriver().GetName());
+                        stb.append("' does not support create geometry fields");
+                        LOG.warn(stb.toString());
+                    }
+                }
+
+                while (deleteds.hasNext()) {
+                    FeatureReferenceProviderServices reference =
+                        (FeatureReferenceProviderServices) deleteds.next();
+                    getLayer().DeleteFeature((int) reference.getOID());
+                }
+
+                while (inserteds.hasNext()) {
+                    FeatureProvider featureProvider = (FeatureProvider) inserteds.next();
+                    getLayer().CreateFeature(converter.convert(featureProvider));
+                }
+
+                while (updateds.hasNext()) {
+                    FeatureProvider featureProvider = (FeatureProvider) updateds.next();
+                    Feature ogrFeature = converter.convert(featureProvider);
+                    getLayer().SetFeature(ogrFeature);
+                }
+
+                if (getLayer().TestCapability(ogrConstants.OLCTransactions)) {
+                    getLayer().CommitTransaction();
+                }
+                getDataSource().SyncToDisk();
+                repack();
+                getResource().notifyChanges();
+
+                return null;
+            }
+        });
+    }
+
+    protected void repack() throws OGRUnsupportedFormatException {
+        LOG.debug("Running SQL: REPACK ".concat(getLayer().GetName()));
+        getDataSource().ExecuteSQL("REPACK ".concat(getLayer().GetName()));
+    }
+
+    @Override
+    public Object createNewOID() {
+        try {
+            return getFeatureCount() + 1;
+        } catch (DataException e) {
+            LOG.error("Can't get feature count", e);
+            throw new ReadRuntimeException(getFullName(), e);
+        }
+    }
+
+    @Override
+    public FeatureSetProvider createSet(FeatureQuery query, FeatureType featureType)
+        throws DataException {
+        open();
+        return new OGRFetureSetProvider(this, query, featureType);
+    }
+
+    @Override
+    public long getFeatureCount() throws DataException {
+        open();
+        return ((Number) getResource().execute(new ResourceAction() {
+
+            @Override
+            public Object run() throws Exception {
+
+                int featureCount = getLayer().GetFeatureCount(0);
+                if( featureCount == -1 ) {
+                    featureCount = getLayer().GetFeatureCount();
+                }
+                return featureCount;
+            }
+        })).longValue();
+    }
+
+    @Override
+    public int getOIDType() {
+        return DataTypes.LONG;
+    }
+
+    @Override
+    protected FeatureProvider internalGetFeatureProviderByReference(
+        FeatureReferenceProviderServices providerServices, FeatureType featureType)
+        throws DataException {
+
+        int oid = (int)providerServices.getOID();
+        // Parece que hay un bug en el proveedor de SQLite para gdal.
+        // Cuando se lee la capa, el m�todo GetFID est� indexado empezando por 0,
+        // pero cuando se busca una ogrFeature a partir de dicho FID
+        // el m�todo GetFeature(fid) est� indexado empezando por 1.
+        // Esto es para rodear el problema.
+        if(this.dataSource.GetDriver().getName().equalsIgnoreCase("SQLite")){
+            oid++;
+        }
+        Feature ogrFeature = getLayer().GetFeature(oid);
+        int fid = ogrFeature.GetFID();
+        FeatureProvider featureProvider =
+            new DefaultFeatureProvider(featureType, fid);
+        OGRConverter converter = new OGRConverter();
+        featureProvider = converter.convert(featureProvider, featureType, ogrFeature);
+        return featureProvider;
+    }
+
+    private OGRDataStoreParameters getOGRParameters() {
+        return (OGRDataStoreParameters) this.getParameters();
+    }
+
+    @SuppressWarnings("rawtypes")
+    protected String compoundSelect(FeatureType type, Evaluator evaluator,
+        FeatureQueryOrder featureQueryOrder) {
+
+        StringBuilder query = new StringBuilder();
+        query.append("SELECT ");
+        FeatureAttributeDescriptor[] attributeDescriptors = type.getAttributeDescriptors();
+        for (int i = 0; i < attributeDescriptors.length; i++) {
+            query.append("\"");
+            query.append(attributeDescriptors[i].getName());
+            query.append("\"");
+            // Don't add the last comma
+            if (i < attributeDescriptors.length - 1) {
+                query.append(",");
+            }
+        }
+
+        query.append(" FROM ");
+        query.append("\"");
+        query.append(getOGRParameters().getLayerName());
+        query.append("\"");
+
+        if (featureQueryOrder != null && featureQueryOrder.iterator().hasNext()) {
+            query.append(" ORDER BY ");
+            Iterator iterator = featureQueryOrder.iterator();
+            while (iterator.hasNext()) {
+                FeatureQueryOrderMember member = (FeatureQueryOrderMember) iterator.next();
+
+                if (member.hasEvaluator()) {
+                    // TODO
+                } else {
+                    query.append("\"");
+                    query.append(member.getAttributeName());
+                    query.append("\"");
+                }
+                if (member.getAscending()) {
+                    query.append(" ASC");
+                } else {
+                    query.append(" DESC");
+                }
+                if (iterator.hasNext()) {
+                    query.append(", ");
+                } else {
+                    query.append(' ');
+                    break;
+                }
+            }
+        }
+
+        return query.toString();
+    }
+
+    @Override
+    protected void doDispose() throws BaseException {
+        super.doDispose();
+        getResource().removeConsumer(this);
+        this.resourceProvider = null;
+        getDataSource().delete();
+        this.envelope = null;
+        this.newLayer = null;
+        this.dataSource = null;
+        this.opened = false;
+        this.updateSupport = null;
+    }
+
+    @Override
+    public boolean closeResourceRequested(ResourceProvider resource) {
+
+        try {
+            getDataSource().delete();
+        } catch (OGRUnsupportedFormatException e) {
+            LOG.warn(String.format("Can not close resource requested %1s", resource), e);
+        }
+        this.envelope = null;
+        this.newLayer = null;
+        this.dataSource = null;
+        this.opened = false;
+        this.updateSupport = null;
+        return true;
+    }
+
+    @Override
+    public void resourceChanged(ResourceProvider resource) {
+
+        try {
+            getDataSource().delete();
+        } catch (OGRUnsupportedFormatException e) {
+            LOG.warn(String.format("Can not close resource requested %1s", resource), e);
+        }
+        this.envelope = null;
+        this.newLayer = null;
+        this.dataSource = null;
+        this.opened = false;
+        this.updateSupport = null;
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRFetureSetProvider.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRFetureSetProvider.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRFetureSetProvider.java	(revision 393)
@@ -0,0 +1,259 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.cresques.cts.ICRSFactory;
+import org.cresques.cts.IProjection;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Feature;
+import org.gdal.ogr.Geometry;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.ogr;
+import org.gdal.ogr.ogrConstants;
+import org.gdal.osr.SpatialReference;
+import org.gvsig.fmap.crs.CRSFactory;
+import org.gvsig.fmap.dal.DataStore;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.FeatureQuery;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.dal.feature.exception.ConcurrentDataModificationException;
+import org.gvsig.fmap.dal.feature.spi.AbstractFeatureProviderIterator;
+import org.gvsig.fmap.dal.feature.spi.AbstractFeatureSetProvider;
+import org.gvsig.fmap.dal.feature.spi.AbstractFeatureStoreProvider;
+import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
+import org.gvsig.fmap.dal.feature.spi.FeatureSetProvider;
+import org.gvsig.fmap.dal.feature.spi.FeatureStoreProvider;
+import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
+import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.exception.BaseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRFetureSetProvider extends AbstractFeatureSetProvider implements FeatureSetProvider,
+    ResourceConsumer {
+
+    private static final Logger LOG = LoggerFactory.getLogger(OGRFetureSetProvider.class);
+
+    private static final String regularExpresion =
+        "\\s*ST_intersects[(]\\s*ST_GeomFromText[(]\\s*'([^']*)'\\s*,\\s*'([^']*)'\\s*[)],\\s*(?s).*";
+
+    /**
+     * @param store
+     *            Source of this feature set
+     * @param query
+     *            Query
+     * @param featureType
+     *            Featuretype requested
+     */
+    public OGRFetureSetProvider(AbstractFeatureStoreProvider store, FeatureQuery query,
+        FeatureType featureType) {
+        super(store, query, featureType);
+
+        getStore().getResource().addConsumer(this);
+    }
+
+    @Override
+    public boolean canFilter() {
+        return false;
+    }
+
+    @Override
+    public boolean canOrder() {
+        return true;
+    }
+
+    @Override
+    public boolean canIterateFromIndex() {
+        return true;
+    }
+
+    @Override
+    public long getSize() throws DataException {
+        return getStore().getFeatureCount();
+    }
+
+    @Override
+    public boolean isEmpty() throws DataException {
+        return getSize() == 0;
+    }
+
+    @Override
+    protected AbstractFeatureProviderIterator createIterator(long index) throws DataException {
+        return createFastIterator(index);
+    }
+
+    @Override
+    protected AbstractFeatureProviderIterator createFastIterator(long index) throws DataException {
+        String sql =
+            getOGRStoreProvider().compoundSelect(getFeatureType(), getQuery().getFilter(),
+                getQuery().getOrder());
+
+        DataSource dataSource = getOGRStoreProvider().getDataSource();
+        LOG.debug("Running query {} over {}", new Object[] { sql, dataSource.getName() });
+
+        Layer layer = null;
+        boolean ignoreSpatialFilter = (boolean) getStore().getParameters().getDynValue(OGRDataStoreParameters.IGNORE_SPATIAL_FILTER);
+        if (!ignoreSpatialFilter && getOGRStoreProvider().getLayer().TestCapability(ogrConstants.OLCFastSpatialFilter)
+            && getQuery().hasFilter()) {
+
+            String evaluatorSQL = getQuery().getFilter().getSQL();
+            Pattern pattern = Pattern.compile(regularExpresion);
+            Matcher matcher = pattern.matcher(evaluatorSQL);
+
+            if (matcher.matches()) {
+                String wktGeometry = matcher.group(1);
+                String crsCode = matcher.group(2);
+
+                IProjection projection = CRSFactory.getCRS(crsCode);
+                SpatialReference srs =
+                    new SpatialReference(projection.export(ICRSFactory.FORMAT_WKT));
+                Geometry ogrGeometry = ogr.CreateGeometryFromWkt(wktGeometry, srs);
+
+                if (getOGRStoreProvider().getDynValue(DataStore.METADATA_CRS) != null) {
+
+                    IProjection projectionProvider =
+                        (IProjection) getOGRStoreProvider().getDynValue(DataStore.METADATA_CRS);
+                    if (!crsCode.equals(projectionProvider.getAbrev())) {
+                        SpatialReference srsDst =
+                            new SpatialReference(projectionProvider.export(ICRSFactory.FORMAT_WKT));
+                        ogrGeometry.TransformTo(srsDst);
+                    }
+                }
+                layer = dataSource.ExecuteSQL(sql, ogrGeometry);
+            }
+        } else {
+            layer = dataSource.ExecuteSQL(sql);
+        }
+
+        if(layer == null){
+            LOG.warn("The result of query is null. SQL {} FeatureType {}", sql, getFeatureType());
+            LOG.warn("Getting data without SQL filter");
+            OGRDataStoreParameters ogrParameters = (OGRDataStoreParameters) getOGRStoreProvider().getParameters();
+            layer = dataSource.ExecuteSQL("SELECT * FROM ".concat(ogrParameters.getLayerName()));
+        }
+
+        return new OGRFastIterator(getStore(), layer, index);
+    }
+
+    @Override
+    protected void doDispose() throws BaseException {
+        getStore().getResource().removeConsumer(this);
+    }
+
+    @Override
+    public boolean closeResourceRequested(ResourceProvider resource) {
+        return true;
+    }
+
+    @Override
+    public void resourceChanged(ResourceProvider resource) {
+    }
+
+    class OGRFastIterator extends AbstractFeatureProviderIterator implements ResourceConsumer {
+
+        private long index;
+
+        private Layer layer;
+
+        private OGRConverter converter;
+
+        private FeatureProvider featureProvider;
+
+        private Feature currentOgrFeature;
+        private Feature nextOgrFeature;
+
+        public OGRFastIterator(FeatureStoreProvider storeProvider, Layer layer, long index)
+            throws OGRUnsupportedFormatException {
+            super(storeProvider);
+            ToolsLocator.getDisposableManager().bind(storeProvider);
+            getResource().addConsumer(this);
+            this.converter = new OGRConverter();
+            this.index = index;
+            this.layer = layer;
+            this.layer.GetFeatureCount();
+            this.layer.ResetReading();
+            if(index!=0){
+                this.layer.SetNextByIndex((int) index);
+            }
+            this.currentOgrFeature = null;
+            this.nextOgrFeature =  this.layer.GetNextFeature();
+        }
+
+        @Override
+        public void remove() {
+            if (currentOgrFeature != null) {
+                this.layer.DeleteFeature(currentOgrFeature.GetFID());
+                currentOgrFeature=null;
+            }
+        }
+
+        @Override
+        protected Object internalNext() {
+            this.currentOgrFeature = this.nextOgrFeature;
+            this.featureProvider = null;
+            this.featureProvider = converter.convert(featureProvider, getFeatureType(), this.nextOgrFeature);
+            this.nextOgrFeature =  this.layer.GetNextFeature();
+            return this.featureProvider;
+        }
+
+        @Override
+        protected boolean internalHasNext() {
+            return nextOgrFeature!=null;
+        }
+
+        @Override
+        protected void doDispose() throws BaseException {
+            ToolsLocator.getDisposableManager().release(getStore());
+            getOGRStoreProvider().getDataSource().ReleaseResultSet(layer);
+            getResource().removeConsumer(this);
+            this.converter = null;
+            this.featureProvider = null;
+            this.layer = null;
+        }
+
+        @Override
+        public boolean closeResourceRequested(ResourceProvider resource) {
+            this.featureProvider = null;
+            return true;
+        }
+
+        @Override
+        public void resourceChanged(ResourceProvider resource) {
+            throw new ConcurrentDataModificationException(getOGRStoreProvider().getName());
+        }
+    }
+
+    private OGRDataStoreProvider getOGRStoreProvider() {
+        return (OGRDataStoreProvider) getStore();
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRLibrary.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRLibrary.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRLibrary.java	(revision 393)
@@ -0,0 +1,200 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import org.apache.commons.lang3.StringUtils;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.FeatureDefn;
+import org.gdal.ogr.GeomFieldDefn;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.ogr;
+import org.gvsig.fmap.dal.DALFileLibrary;
+import org.gvsig.fmap.dal.DALFileLocator;
+import org.gvsig.fmap.dal.DALLibrary;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.FileHelper;
+import org.gvsig.fmap.dal.resource.spi.ResourceManagerProviderServices;
+import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
+import org.gvsig.metadata.MetadataLibrary;
+import org.gvsig.metadata.exceptions.MetadataException;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynClass;
+import org.gvsig.tools.dynobject.DynField;
+import org.gvsig.tools.dynobject.DynField_v2;
+import org.gvsig.tools.dynobject.DynField_v2.AvailableValuesProvider;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.dynobject.DynObjectManager;
+import org.gvsig.tools.dynobject.DynObjectValueItem;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRLibrary extends AbstractLibrary {
+
+    @Override
+    public void doRegistration() {
+        registerAsImplementationOf(OGRLibrary.class);
+        require(DALLibrary.class);
+        require(DALFileLibrary.class);
+        require(MetadataLibrary.class);
+    }
+
+    @Override
+    protected void doInitialize() throws LibraryException {
+
+        // Register all drivers
+        ogr.RegisterAll();
+    }
+
+    @Override
+    protected void doPostInitialize() throws LibraryException {
+
+        // Register OGR parameters definition
+        FileHelper.registerParametersDefinition(OGRDataStoreParameters.PARAMETERS_DEFINITION_NAME,
+            OGRDataStoreParameters.class, "OGRDataStoreParameters.xml");
+
+        FileHelper.registerParametersDefinition(
+            OGRNewDataStoreParameters.PARAMETERS_DEFINITION_NAME, OGRNewDataStoreParameters.class,
+            "OGRNewDataStoreParameters.xml");
+
+        FileHelper.registerParametersDefinition(
+            OGRDataExplorerParameters.PARAMETERS_DEFINITION_NAME, OGRDataExplorerParameters.class,
+            "OGRExplorerParameters.xml");
+
+        // Register OGR metadata definition
+        try {
+            FileHelper.registerMetadataDefinition(OGRDataStoreProvider.METADATA_DEFINITION_NAME,
+                OGRDataStoreProvider.class, "OGRMetadata.xml");
+        } catch (MetadataException e) {
+            throw new LibraryException(getClass(), e);
+        }
+
+        // Register OGR provider factory
+        DataManagerProviderServices dataman =
+            (DataManagerProviderServices) DALLocator.getDataManager();
+        if (!dataman.getStoreProviders().contains(OGRDataStoreProvider.NAME)) {
+            dataman.registerStoreProviderFactory(new BasicOGRDataStoreProviderFactory(
+                OGRDataStoreProvider.NAME, OGRDataStoreProvider.DESCRIPTION));
+        }
+
+        // Register OGR data explorer provider
+        if (!dataman.getExplorerProviders().contains(OGRDataExplorer.NAME)) {
+            dataman.registerExplorerProvider(OGRDataExplorer.NAME, OGRDataExplorer.class,
+                OGRDataExplorerParameters.class);
+        }
+
+        // Register OGR file system server provider
+        DALFileLocator.getFilesystemServerExplorerManager().registerProvider(
+            OGRDataStoreProvider.NAME, OGRDataStoreProvider.DESCRIPTION,
+            OGRFilesystemServerProvider.class);
+
+        DynObjectManager dynMan = ToolsLocator.getDynObjectManager();
+        DynClass dynClass = dynMan.get(OGRDataStoreProvider.METADATA_DEFINITION_NAME);
+        if (dynClass == null) {
+            dynClass = dynMan.add(OGRDataStoreProvider.METADATA_DEFINITION_NAME);
+
+        }
+
+        // Register OGR resource provider
+        ResourceManagerProviderServices resman =
+            (ResourceManagerProviderServices) DALLocator.getResourceManager();
+        if (!resman.getResourceProviders().contains(OGRResource.NAME)) {
+            resman.register(OGRResource.NAME, OGRResource.DESCRIPTION, OGRResource.class,
+                OGRResourceParameters.class);
+        }
+
+        // Register persistence definition of OGR resource parameters
+        OGRResourceParameters.registerPersistenceDefinition();
+
+        fixDataParameters();
+    }
+
+    private void fixDataParameters() {
+        
+        // XXX: This code is commented because until version of gvSIG tools at
+        // gvSIG Desktop POM is greater or equal to 3.0.78. If the version is
+        // greater or equals remove this comment and uncomment code.
+        
+        
+        // DynObjectManager dynObjectManager =
+        // ToolsLocator.getDynObjectManager();
+        // DynClass dynClass =
+        // dynObjectManager.get(PersistenceManager.PERSISTENCE_NAMESPACE,
+        // OGRDataStoreParameters.PARAMETERS_DEFINITION_NAME);
+        // DynField_v2 dynField = (DynField_v2)
+        // dynClass.getDynField("defaultGeometryField");
+        // dynField.setAvailableValuesProvider(new AvailableValuesProvider() {
+        //
+        // @Override
+        // public DynObjectValueItem[] getValues(DynField field, DynObject
+        // dynObject) {
+        //
+        // if (dynObject instanceof OGRDataStoreParameters) {
+        //
+        // DataSource dataSource = null;
+        // try {
+        // // Open connection string
+        // OGRDataStoreParameters ogrParameters = (OGRDataStoreParameters)
+        // dynObject;
+        // if (StringUtils.isNotBlank(ogrParameters.getConnectionString())) {
+        // dataSource = ogr.Open(ogrParameters.getConnectionString());
+        // } else if (ogrParameters.getFile() != null
+        // && ogrParameters.getFile().exists()) {
+        // dataSource = ogr.Open(ogrParameters.getFile().getAbsolutePath());
+        // }
+        //
+        // // Get layer
+        // Layer layer = null;
+        // if (StringUtils.isNotBlank(ogrParameters.getLayerName())) {
+        // layer = dataSource.GetLayerByName(ogrParameters.getLayerName());
+        // }
+        //
+        // // Get geometry fields
+        // if (layer != null) {
+        // FeatureDefn layerDefn = layer.GetLayerDefn();
+        // DynObjectValueItem[] valueItems =
+        // new DynObjectValueItem[layerDefn.GetGeomFieldCount()];
+        // for (int i = 0; i < layerDefn.GetGeomFieldCount(); i++) {
+        // GeomFieldDefn geomFieldDefn = layerDefn.GetGeomFieldDefn(i);
+        // valueItems[i] = new DynObjectValueItem(geomFieldDefn.GetName());
+        // }
+        //
+        // return valueItems;
+        // }
+        // } finally {
+        // // Free native resources
+        // dataSource.delete();
+        // }
+        // }
+        // return null;
+        // }
+        //
+        // });
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRNewDataStoreParameters.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRNewDataStoreParameters.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRNewDataStoreParameters.java	(revision 393)
@@ -0,0 +1,112 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.util.List;
+import java.util.Vector;
+
+import org.gvsig.fmap.dal.feature.EditableFeatureType;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DelegatedDynObject;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRNewDataStoreParameters extends OGRDataStoreParameters implements
+    NewFeatureStoreParameters {
+
+    /**
+     * 
+     */
+    public static final String PARAMETERS_DEFINITION_NAME = "OGRNewDataStoreParameters";
+
+    /**
+     * 
+     */
+    public static final String DRIVER_NAME_PARAMETER_NAME = "driverName";
+
+    /**
+     * 
+     */
+    public static final String DATASET_CREATION_OPTION_PARAMETER_NAME = "datasetCreationOptions";
+
+    /**
+     * 
+     */
+    public OGRNewDataStoreParameters() {
+        parameters =
+            (DelegatedDynObject) ToolsLocator.getDynObjectManager().createDynObject(
+                ToolsLocator.getPersistenceManager().getDefinition(PARAMETERS_DEFINITION_NAME));
+        this.setDynValue(DataStoreProviderServices.PROVIDER_PARAMTER_NAME,
+            OGRDataStoreProvider.NAME);
+    }
+
+    @Override
+    public void setDefaultFeatureType(FeatureType defaultFeatureType) {
+        this.setDynValue(FEATURETYPE_PARAMTER_NAME, defaultFeatureType);
+    }
+
+    @Override
+    public EditableFeatureType getDefaultFeatureType() {
+        return (EditableFeatureType) this.getDynValue(FEATURETYPE_PARAMTER_NAME);
+    }
+
+    /**
+     * @param driverName
+     *            Sets driver that will be used to create new stores
+     */
+    public void setDriverName(String driverName) {
+        this.setDynValue(DRIVER_NAME_PARAMETER_NAME, driverName);
+    }
+
+    /**
+     * @return Name of driver to create new data stores
+     */
+    public String getDriverName() {
+        return (String) this.getDynValue(DRIVER_NAME_PARAMETER_NAME);
+    }
+
+    /**
+     * 
+     * @param options
+     *            Set dataset creation options
+     */
+    @SuppressWarnings("rawtypes")
+    public void setDatasetCreationOptions(List options) {
+        this.setDynValue(DATASET_CREATION_OPTION_PARAMETER_NAME, options);
+    }
+
+    /**
+     * @return Dataset creation options
+     */
+    @SuppressWarnings("rawtypes")
+    public List getDatasetCreationOptions() {
+        return (Vector) this.getDynValue(DATASET_CREATION_OPTION_PARAMETER_NAME);
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRFilesystemServerProvider.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRFilesystemServerProvider.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRFilesystemServerProvider.java	(revision 393)
@@ -0,0 +1,353 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.io.File;
+import java.util.List;
+import java.util.Vector;
+
+import org.apache.commons.lang3.StringUtils;
+import org.cresques.cts.ICRSFactory;
+import org.cresques.cts.IProjection;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Driver;
+import org.gdal.ogr.FieldDefn;
+import org.gdal.ogr.GeomFieldDefn;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.ogr;
+import org.gdal.ogr.ogrConstants;
+import org.gdal.osr.SpatialReference;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.NewDataStoreParameters;
+import org.gvsig.fmap.dal.exception.CreateException;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.exception.RemoveException;
+import org.gvsig.fmap.dal.feature.EditableFeatureType;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.resource.ResourceAction;
+import org.gvsig.fmap.dal.resource.exception.ResourceExecuteException;
+import org.gvsig.fmap.dal.resource.file.FileResource;
+import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
+import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.impl.AbstractFilesystemServerExplorerProvider;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProviderServices;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRFilesystemServerProvider extends AbstractFilesystemServerExplorerProvider implements
+    FilesystemServerExplorerProvider, ResourceConsumer {
+
+    private static final Logger LOG = LoggerFactory.getLogger(OGRFilesystemServerProvider.class);
+
+    private FilesystemServerExplorerProviderServices serverExplorer;
+
+    @Override
+    public String getDataStoreProviderName() {
+        return OGRDataStoreProvider.NAME;
+    }
+
+    @Override
+    public String getDescription() {
+        return OGRDataStoreProvider.DESCRIPTION;
+    }
+
+    @Override
+    public boolean accept(File pathname) {
+        if (pathname.isFile() && ogr.Open(pathname.getAbsolutePath(), 1)!=null){
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public boolean closeResourceRequested(ResourceProvider resource) {
+        // Do nothing
+        return true;
+    }
+
+    @Override
+    public void resourceChanged(ResourceProvider resource) {
+        // Do nothing
+    }
+
+    @Override
+    public void initialize(FilesystemServerExplorerProviderServices serverExplorer) {
+        this.serverExplorer = serverExplorer;
+    }
+
+    @Override
+    public boolean canCreate() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void create(NewDataStoreParameters parameters, boolean overwrite) throws CreateException {
+
+        if (parameters instanceof OGRNewDataStoreParameters) {
+
+            final OGRNewDataStoreParameters newOGRDataStoreParameters =
+                (OGRNewDataStoreParameters) parameters;
+
+            final File file = newOGRDataStoreParameters.getFile();
+
+            if (file.isFile() && file.exists()) {
+                if (overwrite) {
+                    // Deleting existing file
+                    try {
+                        this.remove(newOGRDataStoreParameters);
+                    } catch (RemoveException e) {
+                        throw new CreateException("Can not overwrite file", e);
+                    }
+                } else {
+                    throw new CreateException(file.getAbsolutePath(), new IllegalArgumentException(
+                        String.format("%1s exists and overwrite option is false",
+                            file.getAbsolutePath())));
+                }
+            }
+
+            try {
+                final FileResource resource =
+                    (FileResource) serverExplorer.getServerExplorerProviderServices()
+                        .createResource(FileResource.NAME, new Object[] { file.getAbsolutePath() });
+
+                resource.addConsumer(this);
+                resource.execute(new ResourceAction() {
+
+                    @Override
+                    public Object run() throws Exception {
+
+                        String driverName = newOGRDataStoreParameters.getDriverName();
+                        Driver driver = ogr.GetDriverByName(driverName);
+                        if (driver == null || StringUtils.isBlank(driverName)) {
+                            throw new IllegalArgumentException(
+                                "Driver name can not be blank and driver must exist.");
+                        }
+
+                        List options = newOGRDataStoreParameters.getDatasetCreationOptions();
+                        DataSource dataSource = null;
+                        if (options == null) {
+                            dataSource =
+                                driver.CreateDataSource(resource.getFile().getAbsolutePath());
+                        } else {
+                            dataSource =
+                                driver.CreateDataSource(resource.getFile().getAbsolutePath(),
+                                    new Vector<String>(options));
+                        }
+
+                        if (dataSource == null) {
+                            LOG.error("Can not open datasource from {} and {} options", resource
+                                .getFile().getAbsoluteFile(), options);
+                            throw new ResourceExecuteException(resource, null);
+                        }
+
+                        String layerName = newOGRDataStoreParameters.getLayerName();
+                        if (StringUtils.isBlank(layerName)) {
+                            layerName = file.getName();
+                        }
+
+                        // Check if layer already exist at dataSource
+                        Layer existingLayer = dataSource.GetLayerByName(layerName);
+                        if (existingLayer != null) {
+                            for (int i = 0; i < dataSource.GetLayerCount(); i++) {
+                                if (dataSource.GetLayerByIndex(i).GetName()
+                                    .equals(existingLayer.GetName())) {
+                                    dataSource.DeleteLayer(i); // Delete it if
+                                                               // exist
+                                    break;
+                                }
+                            }
+                        }
+
+                        OGRConverter converter = new OGRConverter();
+
+                        FeatureAttributeDescriptor geometryAttribute =
+                            newOGRDataStoreParameters.getDefaultFeatureType()
+                                .getDefaultGeometryAttribute();
+                        Integer ogrType = null;
+                        SpatialReference srs = null;
+
+                        // Determinate if featureType has SRS and geometry type
+                        // defined
+                        if (geometryAttribute != null) {
+                            int type = geometryAttribute.getGeomType().getType();
+                            ogrType = converter.convertToOGRGeomType(type);
+
+                            IProjection projection = geometryAttribute.getSRS();
+                            if (projection == null && newOGRDataStoreParameters.getCRS() != null) {
+                                projection = newOGRDataStoreParameters.getCRS();
+                                srs =
+                                    new SpatialReference(projection.export(ICRSFactory.FORMAT_WKT));
+                            }
+                        }
+
+                        Layer layer = null;
+                        if (srs == null) {
+                            layer = dataSource.CreateLayer(layerName);
+                        } else if (ogrType == null) {
+                            layer = dataSource.CreateLayer(layerName, srs);
+                        } else {
+                            layer = dataSource.CreateLayer(layerName, srs, ogrType);
+                        }
+
+                        // Creating fields
+                        if (layer.TestCapability(ogrConstants.OLCCreateField)) {
+                            List<FieldDefn> fields =
+                                converter.convertFields(newOGRDataStoreParameters
+                                    .getDefaultFeatureType());
+                            for (FieldDefn fieldDefn : fields) {
+                                layer.CreateField(fieldDefn);
+                            }
+                        } else {
+                            LOG.warn("{} driver does not support creation of fields",
+                                driver.getName());
+                        }
+
+                        // Creating additional geometry fields, skipping default
+                        // geometry column.
+                        // When a OGR Layer is created, if feature type has
+                        // default geometry column
+                        // it will be set when layer is created
+                        if (layer.TestCapability(ogrConstants.OLCCreateGeomField)) {
+                            List<GeomFieldDefn> geomFields =
+                                converter.convertGeometryFields(
+                                    newOGRDataStoreParameters.getDefaultFeatureType(), false);
+                            for (GeomFieldDefn geomFieldDefn : geomFields) {
+                                layer.CreateGeomField(geomFieldDefn);
+                            }
+                        } else {
+                            LOG.warn(
+                                "{} driver does not support creation of geometry fields, only default"
+                                    + " OGR geometry field has been created", driver.getName());
+                        }
+
+                        // Release native resource to close file
+                        dataSource.delete();
+                        return null;
+                    }
+                });
+            } catch (InitializeException e) {
+                throw new CreateException("Can not create file resource to create it", e);
+            }
+        }
+
+    }
+
+    @Override
+    public NewDataStoreParameters getCreateParameters() throws DataException {
+        OGRNewDataStoreParameters newParameters = new OGRNewDataStoreParameters();
+        EditableFeatureType editableFeatureType = DALLocator.getDataManager().createFeatureType();
+        newParameters.setDefaultFeatureType(editableFeatureType);
+        return newParameters;
+    }
+
+    @Override
+    public void remove(DataStoreParameters parameters) throws RemoveException {
+
+        if (parameters instanceof OGRNewDataStoreParameters) {
+
+            final OGRNewDataStoreParameters newOGRDataStoreParameters =
+                (OGRNewDataStoreParameters) parameters;
+
+            File file = newOGRDataStoreParameters.getFile();
+
+            if (!file.exists() && !file.canWrite()) {
+                throw new RemoveException(file.getAbsolutePath(), new IllegalArgumentException(
+                    String.format("%1s does not exist", file.getAbsolutePath())));
+            }
+
+            try {
+                final FileResource resource =
+                    (FileResource) serverExplorer.getServerExplorerProviderServices()
+                        .createResource(FileResource.NAME, new Object[] { file.getAbsolutePath() });
+
+                resource.addConsumer(this);
+                resource.execute(new ResourceAction() {
+
+                    @Override
+                    public Object run() throws Exception {
+                        resource.closeRequest();
+                        String driverName = newOGRDataStoreParameters.getDriverName();
+                        Driver driver = ogr.GetDriverByName(driverName);
+                        if (driver == null || StringUtils.isBlank(driverName)) {
+                            LOG.warn("Driver name is blank or driver null, trying to get it opening datasource of resource");
+                            DataSource dataSource = ogr.Open(resource.getFile().getAbsolutePath());
+                            if (dataSource == null) {
+                                LOG.error("Can not determiante driver to remove resource");
+                                throw new RemoveException(resource.getName(), null);
+                            }
+                            driver = dataSource.GetDriver();
+                        }
+
+                        if (driver.TestCapability(ogrConstants.ODrCDeleteDataSource)) {
+                            driver.DeleteDataSource(resource.getFile().getAbsolutePath());
+                        } else {
+                            LOG.error("{} driver does not support delete data source",
+                                driver.getName());
+                            throw new RemoveException(resource.getFile().getAbsolutePath(), null);
+                        }
+                        return null;
+                    }
+                });
+                resource.addConsumer(this);
+            } catch (InitializeException e) {
+                throw new RemoveException("Can not create file resource to remove it", e);
+            }
+        }
+    }
+
+    @Override
+    public boolean canCreate(NewDataStoreParameters parameters) {
+        if (parameters instanceof OGRNewDataStoreParameters) {
+
+            OGRNewDataStoreParameters newOGRDataStoreParameters =
+                (OGRNewDataStoreParameters) parameters;
+
+            String driverName = newOGRDataStoreParameters.getDriverName();
+            Driver driver = null;
+            if (StringUtils.isNotBlank(driverName)) {
+                driver = ogr.GetDriverByName(driverName);
+            } else {
+                return false;
+            }
+
+            if (driver.TestCapability(ogrConstants.ODrCCreateDataSource)
+                && driver.TestCapability(ogrConstants.OLCCreateField)) {
+
+                File file = newOGRDataStoreParameters.getFile();
+                if (file != null && file.canWrite()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRConverter.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRConverter.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRConverter.java	(revision 393)
@@ -0,0 +1,679 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.cresques.cts.ICRSFactory;
+import org.cresques.cts.IProjection;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Feature;
+import org.gdal.ogr.FeatureDefn;
+import org.gdal.ogr.FieldDefn;
+import org.gdal.ogr.GeomFieldDefn;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.ogr;
+import org.gdal.ogr.ogrConstants;
+import org.gdal.osr.SpatialReference;
+import org.gvsig.fmap.crs.CRSFactory;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.EditableFeatureType;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.dal.feature.spi.DefaultFeatureProvider;
+import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.Geometry.SUBTYPES;
+import org.gvsig.fmap.geom.Geometry.TYPES;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
+import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
+import org.gvsig.tools.exception.BaseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Converter class used to parse OGR layer defn, feature, types... to gvSIG
+ * objects and constant.
+ *
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRConverter {
+
+    /**
+     * Default geometry column name used when the geometry column of layer does
+     * not have name. This is necessary to create FeatureType and it must take
+     * into account when feature geometry is requested.
+     */
+    private final String DEFAULT_GEOMETRY_COLUMN_NAME = "ogr_geometry";
+
+    private static final Logger LOG = LoggerFactory.getLogger(OGRConverter.class);
+
+    /**
+     *
+     */
+    public OGRConverter() {
+
+    }
+
+    /**
+     * Converts {@link FeatureDefn} to {@link FeatureType} and sets
+     * default geometry field to created {@link FeatureType}.
+     *
+     * @param featureDefn
+     *            OGR definition to be converted
+     * @param defaultGeometryField
+     *            Default geometry field. If it is not founded, this method will
+     *            take the first geometry field.
+     * @return FeatureType Feature type equivalent
+     * @throws GeometryTypeNotSupportedException
+     *             If there are problems parsing OGR geometry
+     * @throws GeometryTypeNotValidException
+     *             If type of OGR Geometry is not supported
+     */
+    public FeatureType convert(FeatureDefn featureDefn, String defaultGeometryField)
+        throws GeometryTypeNotSupportedException, GeometryTypeNotValidException {
+
+        EditableFeatureType editableFeatureType = DALLocator.getDataManager().createFeatureType();
+        editableFeatureType.setHasOID(true);
+
+        for (int i = 0; i < featureDefn.GetFieldCount(); i++) {
+            FieldDefn fieldDefn = featureDefn.GetFieldDefn(i);
+
+            EditableFeatureAttributeDescriptor attributeDescriptor =
+                editableFeatureType.add(fieldDefn.GetName(),
+                    this.convertToDataType(fieldDefn.GetFieldType()));
+            attributeDescriptor.setPrecision(fieldDefn.GetPrecision());
+        }
+
+        for (int i = 0; i < featureDefn.GetGeomFieldCount(); i++) {
+            GeomFieldDefn geomFieldDefn = featureDefn.GetGeomFieldDefn(i);
+
+            String name = null;
+            if (StringUtils.isBlank(geomFieldDefn.GetName())) {
+                // Set default geometry column name
+                name = DEFAULT_GEOMETRY_COLUMN_NAME;
+            } else {
+                name = geomFieldDefn.GetName();
+            }
+
+            EditableFeatureAttributeDescriptor attributeDescriptor =
+                editableFeatureType.add(name, DataTypes.GEOMETRY);
+
+            // GDAL 1.11.2 Only supports 2D geometries
+            GeometryManager geometryManager = GeometryLocator.getGeometryManager();
+            GeometryType geometryType =
+                geometryManager.getGeometryType(
+                    this.convertToGeomType(geomFieldDefn.GetFieldType()), SUBTYPES.GEOM2D);
+            attributeDescriptor.setGeometryType(geometryType);
+
+            if (geomFieldDefn.GetSpatialRef() != null) {
+                IProjection projection =
+                    CRSFactory.getCRSFactory().get(ICRSFactory.FORMAT_WKT,
+                        geomFieldDefn.GetSpatialRef().ExportToWkt());
+                attributeDescriptor.setSRS(projection);
+            }
+        }
+
+        if (editableFeatureType.getAttributeDescriptor(defaultGeometryField) != null) {
+            editableFeatureType.setDefaultGeometryAttributeName(defaultGeometryField);
+        } else {
+            FeatureAttributeDescriptor[] attributeDescriptors =
+                editableFeatureType.getAttributeDescriptors();
+            for (int i = 0; i < attributeDescriptors.length; i++) {
+
+                if (attributeDescriptors[i].getDataType().getType() != DataTypes.GEOMETRY) {
+                    continue;
+                }
+
+                if (attributeDescriptors[i].getGeomType().getType() == convertToGeomType(featureDefn
+                    .GetGeomType())) {
+                    editableFeatureType.setDefaultGeometryAttributeName(attributeDescriptors[i]
+                        .getName());
+                    LOG.warn(
+                        "Default geometry field {} has not been found. Setting \"{}\" as default geometry field",
+                        new Object[] { defaultGeometryField, attributeDescriptors[i].getName() });
+                    break;
+                }
+            }
+
+            if (editableFeatureType.getDefaultGeometryAttributeName() == null) {
+                LOG.warn("The default geometry field can not be set");
+            }
+        }
+
+        return editableFeatureType.getNotEditableCopy();
+    }
+
+    /**
+     * Converts {@link FeatureAttributeDescriptor} of {@link FeatureType} to
+     * {@link FieldDefn}
+     *
+     * @param featureType
+     *            Fields to be converted
+     * @return FieldDefn list OGR fields
+     */
+    public List<FieldDefn> convertFields(FeatureType featureType) {
+
+        List<FieldDefn> fields = new ArrayList<FieldDefn>();
+
+        for (int i = 0; i < featureType.getAttributeDescriptors().length; i++) {
+            FeatureAttributeDescriptor attributeDescriptor = featureType.getAttributeDescriptor(i);
+            if (attributeDescriptor.getType() != DataTypes.GEOMETRY) {
+                fields.add(convertField(attributeDescriptor));
+            }
+        }
+        return fields;
+    }
+
+    /**
+     * Converts {@link FeatureAttributeDescriptor} to {@link FieldDefn}
+     *
+     * @param attDescriptor
+     * @return FieldDefn
+     */
+    public FieldDefn convertField(FeatureAttributeDescriptor attDescriptor) {
+        if (attDescriptor != null) {
+            FieldDefn fieldDefn =
+                new FieldDefn(attDescriptor.getName(), this.convertToOGRType(attDescriptor
+                    .getType()));
+            fieldDefn.SetPrecision(attDescriptor.getPrecision());
+            return fieldDefn;
+        }
+        return null;
+    }
+
+    /**
+     * Converts geometry {@link FeatureAttributeDescriptor} of
+     * {@link FeatureType} to {@link GeomFieldDefn}
+     *
+     * @param featureType
+     *            Geometry fields to be converted
+     * @param convertDefaultGeometryColumn
+     *            True if default geometry will be converted, otherwise default
+     *            geometry field won't be converted.
+     * @return GeomFieldDefn list OGR Geometry fields
+     */
+    public List<GeomFieldDefn> convertGeometryFields(FeatureType featureType,
+        boolean convertDefaultGeometryColumn) {
+
+        List<GeomFieldDefn> geometryFields = new ArrayList<GeomFieldDefn>();
+
+        for (int i = 0; i < featureType.getAttributeDescriptors().length; i++) {
+            FeatureAttributeDescriptor attributeDescriptor = featureType.getAttributeDescriptor(i);
+
+            if (attributeDescriptor.getType() == DataTypes.GEOMETRY) {
+                // Check if default geometry column must be converted too
+                if (i != featureType.getDefaultGeometryAttributeIndex()
+                    || (i == featureType.getDefaultGeometryAttributeIndex() && convertDefaultGeometryColumn)) {
+                    geometryFields.add(convertGeomField(attributeDescriptor));
+                }
+            }
+        }
+        return geometryFields;
+    }
+
+    /**
+     * Converts {@link FeatureAttributeDescriptor} to {@link GeomFieldDefn}
+     *
+     * @param attDescriptor
+     *            Attribute to be converted
+     * @return GeomFieldDefn OGR Geometry field
+     */
+    public GeomFieldDefn convertGeomField(FeatureAttributeDescriptor attDescriptor) {
+
+        String name = attDescriptor.getName();
+        if (attDescriptor.getName().equals(DEFAULT_GEOMETRY_COLUMN_NAME)) {
+            name = "";
+        }
+
+        GeomFieldDefn geomFieldDefn =
+            new GeomFieldDefn(name,
+                this.convertToOGRGeomType(attDescriptor.getGeomType().getType()));
+
+        if (attDescriptor.getSRS() != null) {
+            SpatialReference srs =
+                new SpatialReference(attDescriptor.getSRS().export(ICRSFactory.FORMAT_WKT));
+            geomFieldDefn.SetSpatialRef(srs);
+        }
+
+        return geomFieldDefn;
+    }
+
+    /**
+     * Converts {@link Feature} to {@link FeatureProvider}. If
+     * {@link FeatureProvider} is null, it will be instantiated. This method
+     * only takes into account the fields of received {@link FeatureType}.
+     *
+     * @param featureProvider
+     *
+     * @param featureType
+     *            Type of feature provider
+     * @param ogrFeature
+     *            OGR Feature to be converted
+     * @return FeatureProvider
+     *         FeatureProvder with OGR Feature values
+     */
+    public FeatureProvider convert(FeatureProvider featureProvider, FeatureType featureType,
+        Feature ogrFeature) {
+
+        int fid = ogrFeature.GetFID();
+        if (featureProvider == null) {
+            featureProvider = new DefaultFeatureProvider(featureType, fid);
+        } else {
+            featureProvider.setOID(fid);
+        }
+
+        FeatureDefn defnRef = ogrFeature.GetDefnRef();
+        FeatureAttributeDescriptor[] attributeDescriptors = featureType.getAttributeDescriptors();
+        for (int i = 0; i < attributeDescriptors.length; i++) {
+
+            if (attributeDescriptors[i].getDataType().getType() == DataTypes.GEOMETRY) {
+
+                String name = attributeDescriptors[i].getName();
+
+                org.gdal.ogr.Geometry ogrGeometry = null;
+                int fieldIndex = -1;
+
+                if (name.equals(DEFAULT_GEOMETRY_COLUMN_NAME)) {
+                    // If geometry column name equals default column name,
+                    // change it to empty string.
+                    fieldIndex = defnRef.GetGeomFieldIndex("");
+                } else {
+                    fieldIndex = defnRef.GetGeomFieldIndex(name);
+                }
+
+                ogrGeometry = ogrFeature.GetGeomFieldRef(fieldIndex);
+                if (ogrGeometry != null) {
+                    Geometry geometry = null;
+                    try {
+                        geometry =
+                            GeometryLocator.getGeometryManager().createFrom(
+                                ogrGeometry.ExportToWkb());
+                    } catch (BaseException e) {
+                        LOG.warn(
+                            String
+                                .format(
+                                    "Can not create geometry from %1s. Setting null value to geometry field",
+                                    ogrGeometry.ExportToWkt()), e);
+                        geometry = null;
+                    }
+
+                    if (attributeDescriptors[i].getName().equals(
+                        featureType.getDefaultGeometryAttributeName())) {
+                        featureProvider.setDefaultGeometry(geometry);
+                    }
+
+                    featureProvider.set(name, geometry);
+                }
+
+            } else {
+
+                String name = attributeDescriptors[i].getName();
+                int fieldIndex = defnRef.GetFieldIndex(name);
+                FieldDefn fieldDefn = defnRef.GetFieldDefn(fieldIndex);
+                int dataType = convertToDataType(fieldDefn.GetFieldType());
+
+                Object value = null;
+
+                if (dataType == DataTypes.INT) {
+                    value = ogrFeature.GetFieldAsInteger(i);
+                } else if (dataType == DataTypes.DOUBLE) {
+                    value = ogrFeature.GetFieldAsDouble(i);
+                } else {
+                    value = ogrFeature.GetFieldAsString(i);
+                }
+
+                featureProvider.set(fieldDefn.GetName(), value);
+            }
+        }
+        return featureProvider;
+    }
+
+    /**
+     * Converts {@link FeatureProvider} to {@link Feature}.
+     *
+     * @param featureProvider
+     *            Feature provider to be converted
+     * @return Feature OGR Feature with feature provider values.
+     * @throws GeometryOperationNotSupportedException
+     *             If operation used to convert geometries is not supported
+     * @throws GeometryOperationException
+     *             If there are some problems converting geometries
+     */
+    public Feature convert(FeatureProvider featureProvider)
+        throws GeometryOperationNotSupportedException, GeometryOperationException {
+
+        if (featureProvider == null) {
+            return null;
+        }
+
+        FeatureType featureType = featureProvider.getType();
+        FeatureDefn featureDefn = new FeatureDefn();
+        List<FieldDefn> fields = this.convertFields(featureType);
+        for (FieldDefn fieldDefn : fields) {
+            featureDefn.AddFieldDefn(fieldDefn);
+        }
+
+        List<GeomFieldDefn> geometryFields = this.convertGeometryFields(featureType, true);
+        for (GeomFieldDefn geomFieldDefn : geometryFields) {
+            featureDefn.AddGeomFieldDefn(geomFieldDefn);
+        }
+
+        Feature feature = new Feature(featureDefn);
+
+        Integer oid = null;
+        if (featureProvider.getOID() instanceof Integer) {
+            oid = (Integer) featureProvider.getOID();
+        } else if (featureProvider.getOID() instanceof Long) {
+            oid = ((Long) featureProvider.getOID()).intValue();
+        }
+
+        feature.SetFID(oid);
+        FeatureAttributeDescriptor[] attributeDescriptors = featureType.getAttributeDescriptors();
+        for (int i = 0; i < attributeDescriptors.length; i++) {
+
+            Integer fieldIndex = null;
+            if (attributeDescriptors[i].getType() == DataTypes.GEOMETRY
+                && attributeDescriptors[i].getName().equals(DEFAULT_GEOMETRY_COLUMN_NAME)) {
+                fieldIndex = featureDefn.GetGeomFieldIndex("");
+            } else if (attributeDescriptors[i].getType() == DataTypes.GEOMETRY) {
+                fieldIndex = featureDefn.GetGeomFieldIndex(attributeDescriptors[i].getName());
+            } else {
+                fieldIndex = featureDefn.GetFieldIndex(attributeDescriptors[i].getName());
+            }
+
+            Object value = featureProvider.get(i);
+
+            if (value == null) {
+                continue;
+            }
+
+            if (attributeDescriptors[i].getType() == DataTypes.STRING) {
+                feature.SetField(fieldIndex, (String) value);
+            } else if (attributeDescriptors[i].getType() == DataTypes.DOUBLE) {
+                feature.SetField(fieldIndex, (Double) value);
+            } else if (attributeDescriptors[i].getType() == DataTypes.BOOLEAN) {
+                feature.SetField(fieldIndex, ((Boolean) value).toString());
+            } else if (attributeDescriptors[i].getType() == DataTypes.DATE) {
+                Date date = (Date) value;
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(date);
+                feature.SetField(i, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
+                    calendar.get(Calendar.DAY_OF_WEEK), calendar.get(Calendar.HOUR),
+                    calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND), 0);
+            } else if (attributeDescriptors[i].getType() == DataTypes.GEOMETRY) {
+                org.gvsig.fmap.geom.Geometry geometry = (Geometry) value;
+                if (geometry != null) {
+                    org.gdal.ogr.Geometry ogrGeometry = null;
+                    if (attributeDescriptors[i].getSRS() != null) {
+                        IProjection projection = attributeDescriptors[i].getSRS();
+                        SpatialReference srs =
+                            new SpatialReference(projection.export(ICRSFactory.FORMAT_WKT));
+                        ogrGeometry = ogr.CreateGeometryFromWkt(geometry.convertToWKT(), srs);
+                        feature.SetGeomField(i, ogrGeometry);
+                    } else {
+                        ogrGeometry = ogr.CreateGeometryFromWkt(geometry.convertToWKT());
+                        feature.SetGeomField(fieldIndex, ogrGeometry);
+                    }
+                }
+            }
+        }
+
+        return feature;
+    }
+
+    /**
+     * Convert gvSIG geometry type to OGR geometry type. See
+     * {@link ogrConstants}.
+     *
+     * @param type
+     *            A type of {@link TYPES}
+     * @return int Equivalent type of {@link ogrConstants}
+     */
+    public int convertToOGRGeomType(int type) {
+
+        switch (type) {
+        case TYPES.POINT:
+            return ogrConstants.wkbPoint;
+
+        case TYPES.CURVE:
+        case TYPES.LINE:
+        case TYPES.CIRCLE:
+        case TYPES.ARC:
+        case TYPES.ELLIPSE:
+        case TYPES.SPLINE:
+        case TYPES.ELLIPTICARC:
+        case TYPES.CIRCUMFERENCE:
+        case TYPES.PERIELLIPSE:
+            return ogrConstants.wkbLineString;
+
+        case TYPES.SURFACE:
+        case TYPES.POLYGON:
+        case TYPES.FILLEDSPLINE:
+            return ogrConstants.wkbPolygon;
+
+        case TYPES.AGGREGATE:
+            return ogrConstants.wkbGeometryCollection;
+
+        case TYPES.MULTIPOINT:
+            return ogrConstants.wkbMultiPoint;
+
+        case TYPES.MULTICURVE:
+        case TYPES.MULTILINE:
+            return ogrConstants.wkbMultiLineString;
+
+        case TYPES.MULTISURFACE:
+        case TYPES.MULTIPOLYGON:
+            return ogrConstants.wkbMultiPolygon;
+
+        case TYPES.NULL:
+            return ogrConstants.wkbNone;
+
+        case TYPES.GEOMETRY:
+        case TYPES.MULTISOLID:
+        case TYPES.SOLID:
+        case TYPES.COMPLEX:
+        default:
+            return ogrConstants.wkbUnknown;
+        }
+    }
+
+    /**
+     * Convert OGR geometry type to gvSIG geometry type. See {@link TYPES}.
+     *
+     * @param type
+     *            A type of {@link ogrConstants}
+     * @return int Equivalent type of {@link TYPES}
+     */
+    public int convertToGeomType(int type) {
+
+        switch (type) {
+        case ogrConstants.wkbPoint:
+            return TYPES.POINT;
+
+        case ogrConstants.wkbLineString:
+            return TYPES.CURVE;
+
+        case ogrConstants.wkbPolygon:
+            return TYPES.SURFACE;
+
+        case ogrConstants.wkbGeometryCollection:
+            return TYPES.AGGREGATE;
+
+        case ogrConstants.wkbMultiPoint:
+            return TYPES.MULTIPOINT;
+
+        case ogrConstants.wkbMultiLineString:
+            return TYPES.MULTILINE;
+
+        case ogrConstants.wkbMultiPolygon:
+            return TYPES.MULTISURFACE;
+
+        case ogrConstants.wkbNone:
+            return TYPES.NULL;
+
+        case ogrConstants.wkbUnknown:
+        default:
+            return TYPES.GEOMETRY;
+        }
+    }
+
+    /**
+     * Convert gvSIG type to OGR type. See {@link ogrConstants}.
+     *
+     * @param type
+     *            A type of {@link DataTypes}
+     * @return int Equivalent type of {@link ogrConstants}
+     */
+    public int convertToOGRType(int type) {
+
+        switch (type) {
+        case DataTypes.DATE:
+            return ogrConstants.OFTDate;
+        case DataTypes.DOUBLE:
+        case DataTypes.FLOAT:
+            return ogrConstants.OFTReal;
+        case DataTypes.STRING:
+            return ogrConstants.OFTString;
+        case DataTypes.CHAR:
+            return ogrConstants.OFTString;
+        case DataTypes.INT:
+            return ogrConstants.OFTInteger;
+        case DataTypes.LONG: // There is not LONG type support
+        default:
+            return ogrConstants.OFTString;
+        }
+    }
+
+    /**
+     * Convert OGR type to gvSIG type. See {@link DataTypes}.
+     *
+     * @param type
+     *            A type of {@link ogrConstants}
+     * @return int Equivalent type of {@link DataTypes}
+     */
+    public int convertToDataType(int type) {
+
+        switch (type) {
+        case ogrConstants.OFTDate:
+            return DataTypes.DATE;
+        case ogrConstants.OFTReal:
+            return DataTypes.DOUBLE;
+        case ogrConstants.OFTInteger:
+            return DataTypes.INT;
+        case ogrConstants.OFTTime:
+            return DataTypes.TIME;
+        case ogrConstants.OFTString:
+        default:
+            return DataTypes.STRING;
+        }
+
+    }
+
+    /**
+     * Convert OGR Feature to another OGR Feature. This method take into account
+     * only {@link FeatureDefn} fields to create new feature. This method is
+     * useful when OGR {@link Layer} is copied to new {@link DataSource}.
+     *
+     * @param layerDefn
+     *            Definition of new feature
+     * @param feature
+     *            OGR feature to be converted
+     * @return Fixed feature
+     */
+    public org.gdal.ogr.Feature convert(FeatureDefn layerDefn, org.gdal.ogr.Feature feature) {
+
+        Feature newFeature = new Feature(layerDefn);
+        for (int i = 0; i < feature.GetDefnRef().GetFieldCount(); i++) {
+
+            FieldDefn fieldDefn = feature.GetDefnRef().GetFieldDefn(i);
+            int fieldIndex = newFeature.GetDefnRef().GetFieldIndex(fieldDefn.GetName());
+
+            if (fieldIndex != -1) {
+
+                int fieldType = feature.GetDefnRef().GetFieldDefn(i).GetFieldType();
+
+                switch (fieldType) {
+                case ogrConstants.OFTDate:
+
+                    int[] year = new int[1];
+                    int[] month = new int[1];
+                    int[] day = new int[1];
+                    int[] hour = new int[1];
+                    int[] minute = new int[1];
+                    int[] second = new int[1];
+                    int[] flags = new int[1];
+                    feature.GetFieldAsDateTime(i, year, month, day, hour, minute, second, flags);
+                    newFeature.SetField(i, year[0], month[0], day[0], hour[0], minute[0],
+                        second[0], flags[0]);
+                    break;
+                case ogrConstants.OFTReal:
+                    newFeature.SetField(i, feature.GetFieldAsDouble(i));
+                    break;
+                case ogrConstants.OFTInteger:
+                    newFeature.SetField(i, feature.GetFieldAsInteger(i));
+                    break;
+                case ogrConstants.OFTString:
+                default:
+                    newFeature.SetField(i, feature.GetFieldAsString(i));
+                    break;
+                }
+            }
+
+        }
+
+        for (int i = 0; i < feature.GetDefnRef().GetGeomFieldCount(); i++) {
+            GeomFieldDefn geomFieldDefn = feature.GetDefnRef().GetGeomFieldDefn(i);
+            int fieldIndex = newFeature.GetDefnRef().GetGeomFieldIndex(geomFieldDefn.GetName());
+
+            if (fieldIndex != -1) {
+
+                if (geomFieldDefn.GetFieldType() == newFeature.GetGeomFieldDefnRef(fieldIndex)
+                    .GetFieldType()) {
+                    org.gdal.ogr.Geometry geometry =
+                        feature.GetGeomFieldRef(geomFieldDefn.GetName());
+                    newFeature.SetGeomField(fieldIndex, geometry);
+                } else {
+                    LOG.warn(
+                        "Ignoring geometry field. Can not fix {}. Geometry type is not equals",
+                        geomFieldDefn.GetName());
+                }
+            }
+        }
+
+        return newFeature;
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRResource.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRResource.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRResource.java	(revision 393)
@@ -0,0 +1,84 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.resource.ResourceParameters;
+import org.gvsig.fmap.dal.resource.exception.AccessResourceException;
+import org.gvsig.fmap.dal.resource.exception.ResourceException;
+import org.gvsig.fmap.dal.resource.spi.AbstractResource;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRResource extends AbstractResource {
+
+    /**
+     * 
+     */
+    public static final String NAME = "OGRResource";
+
+    /**
+     * 
+     */
+    public static final String DESCRIPTION = "Any resource that can be opened by OGR";
+
+    /**
+     * 
+     * @param parameters
+     *            Parameters to open this resource
+     * @throws InitializeException
+     *             If there is some error initializating this resource
+     */
+    public OGRResource(OGRResourceParameters parameters) throws InitializeException {
+        super(parameters);
+    }
+
+    @Override
+    public boolean isThis(ResourceParameters parameters) throws ResourceException {
+        if (parameters instanceof OGRResourceParameters) {
+
+            OGRResourceParameters thisParameters = (OGRResourceParameters) getParameters();
+            OGRResourceParameters otherParameters = (OGRResourceParameters) parameters;
+            if (thisParameters.getName().equals(otherParameters.getName()) && thisParameters
+                .getConnectionString().equals(otherParameters.getConnectionString())) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public String getName() throws AccessResourceException {
+        return ((OGRResourceParameters) getParameters()).getName();
+    }
+
+    @Override
+    public Object get() throws AccessResourceException {
+        return ((OGRResourceParameters) getParameters()).getConnectionString();
+    }
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataStoreProviderFactory.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataStoreProviderFactory.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/java/org/gvsig/gdal/prov/ogr/OGRDataStoreProviderFactory.java	(revision 393)
@@ -0,0 +1,70 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.prov.ogr;
+
+import org.gvsig.fmap.dal.feature.FeatureStoreProviderFactory;
+import org.gvsig.tools.dynobject.DynObject;
+
+/**
+ * OGR Provider factory to create parameters to create specific server data
+ * explorers and specific data store providers.
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public interface OGRDataStoreProviderFactory extends FeatureStoreProviderFactory {
+
+    /**
+     * 
+     * @return Name of driver used to open sources
+     */
+    public String getDriver();
+
+    /**
+     * Creates specific parameters if factory can open connection object. If it
+     * can not open, it will be return null.
+     * 
+     * @param connectionObject
+     *            File or connection string to be opened
+     * @return Data explorer parameters If this factory can open connection
+     *         object it will be return specific parameters, otherwise return
+     *         null.
+     */
+    public DynObject createParameters(Object connectionObject);
+
+    /**
+     * Creates specific data explorer parameters if factory can open connection
+     * object. If it
+     * can not open, it will be return null.
+     * 
+     * @param connectionObject
+     *            File or connection string to be opened
+     * @return Data explorer parameters If this factory can open connection
+     *         object it will be return specific data explrer parameters,
+     *         otherwise return
+     *         null.
+     */
+    public DynObject createDataExplorerParameters(Object connectionObject);
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 393)
@@ -0,0 +1 @@
+org.gvsig.gdal.prov.ogr.OGRLibrary
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRMetadata.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRMetadata.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRMetadata.xml	(revision 393)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!--
+Definitions of metadata fields of a shp file.  
+ -->
+<definitions>
+  <version>1.0.0</version>
+  <classes>
+    
+    <class name="OGRDataStoreProvider" namespace="Metadata">
+      <extends>
+      	<class namespace="Metadata" name="SpatialProvider"/>
+      </extends>
+      <description>Metadata of a OGR provider</description>
+      <fields>
+      </fields>
+    </class>
+
+  </classes>
+</definitions>  
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRExplorerParameters.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRExplorerParameters.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRExplorerParameters.xml	(revision 393)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<definitions>
+	<version>1.0.0</version>
+	<classes>
+		<class name="OGRDataExplorerParameters">
+			<description>Store the parameters needed to create OGR data explorers
+			</description>
+			<fields>
+				<field name="file" type="file" mandatory="false" group="Basic">
+					<description>Resource file</description>
+				</field>
+				<field name="connectionString" type="string" mandatory="false"
+					group="Basic">
+					<description>Connection string to open data source</description>
+				</field>
+			</fields>
+		</class>
+	</classes>
+</definitions>
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRNewDataStoreParameters.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRNewDataStoreParameters.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRNewDataStoreParameters.xml	(revision 393)
@@ -0,0 +1,21 @@
+<definitions>
+	<version>1.0.0</version>
+	<classes>
+		<class name="OGRNewDataStoreParameters">
+			<description>Store the parameters needed to create OGR data stores
+			</description>
+			<extends>
+				<class namespace="dal" name="NewProviderParameters" />
+				<class>OGRDataStoreParameters</class>
+			</extends>
+			<fields>
+				<field name="driverName" type="string" mandatory="false" group="Basic">
+					<description>Name of driver</description>
+				</field>
+				<field name="datasetCreationOptions" type="List" mandatory="false" group="Basic">
+					<description>Name of driver</description>
+				</field>
+			</fields>
+		</class>
+	</classes>
+</definitions>
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRDataStoreParameters.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRDataStoreParameters.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/src/main/resources/org/gvsig/gdal/prov/ogr/OGRDataStoreParameters.xml	(revision 393)
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<definitions>
+	<version>1.0.0</version>
+	<classes>
+		<class name="OGRDataStoreParameters">
+			<extends>
+				<class namespace="dal" name="ProviderParameters" />
+			</extends>
+			<description>Store the parameters needed to open OGR stores
+			</description>
+			<fields>
+				<field name="CRS" type="crs" mandatory="false" group="Basic">
+					<description>Coordinate reference system used</description>
+				</field>
+				<field name="file" type="file" mandatory="false" group="Basic">
+					<description>Resource file</description>
+				</field>
+				<field name="connectionString" type="string" mandatory="false"
+					group="Basic">
+					<description>Connection string to open data source</description>
+				</field>
+				<field name="layerName" type="string" mandatory="false" group="Basic">
+					<description>Layer name of data source</description>
+				</field>
+				<field name="defaultGeometryField" type="string" mandatory="false"
+					group="Basic">
+					<description>Name of default geometry field</description>
+				</field>
+        <field name="ignoreSpatialFilter" type="boolean" mandatory="false"
+          group="Advanced" defaultValue="true">
+          <description>Ignore spatial filter</description>
+        </field>
+			</fields>
+		</class>
+	</classes>
+</definitions>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr/pom.xml	(revision 393)
@@ -0,0 +1,35 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>org.gvsig.gdal.prov</artifactId>
+		<version>1.0.60</version>
+	</parent>
+	<artifactId>org.gvsig.gdal.prov.ogr</artifactId>
+	<name>org.gvsig.gdal.prov.ogr</name>
+
+
+	<dependencies>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.fmap.dal.file.lib</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.fmap.dal.spi</artifactId>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.tools.lib</artifactId>
+			<scope>compile</scope>
+		</dependency>
+
+		<!-- External dependencies -->
+		<dependency>
+			<groupId>org.gdal</groupId>
+			<artifactId>gdal</artifactId>
+		</dependency>
+
+	</dependencies>
+</project>
\ No newline at end of file

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.prov/org.gvsig.gdal.prov.ogr
___________________________________________________________________
Added: svn:ignore
   + target


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRLibrary.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRLibrary.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRLibrary.java	(revision 393)
@@ -0,0 +1,117 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+
+/*
+* AUTHORS (In addition to CIT):
+* 2009 {Iver T.I.}   {Task}
+*/
+ 
+package org.gvsig.fmap.dal.store.gpx;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gvsig.fmap.dal.DALFileLibrary;
+import org.gvsig.fmap.dal.DALFileLocator;
+import org.gvsig.fmap.dal.DALLibrary;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.FileHelper;
+import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
+import org.gvsig.metadata.MetadataLibrary;
+import org.gvsig.metadata.exceptions.MetadataException;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynClass;
+import org.gvsig.tools.dynobject.DynField;
+import org.gvsig.tools.dynobject.DynObjectManager;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class OGRLibrary extends AbstractLibrary {
+
+	private static final Logger logger = LoggerFactory.getLogger(OGRLibrary.class);
+   
+	@Override
+    public void doRegistration() {
+        registerAsImplementationOf(OGRLibrary.class);
+        require(DALLibrary.class);
+        require(DALFileLibrary.class);
+        require(MetadataLibrary.class);
+    }
+
+	@Override
+	protected void doInitialize() throws LibraryException {
+	}
+
+	@Override
+	protected void doPostInitialize() throws LibraryException {
+		List<Throwable> exs = new ArrayList<Throwable>();
+		
+		FileHelper.registerParametersDefinition(
+				OGRStoreParameters.PARAMETERS_DEFINITION_NAME, 
+				OGRStoreParameters.class,
+				"OGRParameters.xml"
+		);
+		try {
+			FileHelper.registerMetadataDefinition(
+					OGRStoreProvider.METADATA_DEFINITION_NAME, 
+					OGRStoreProvider.class,
+					"OGRMetadata.xml"
+			);
+		} catch (MetadataException e) {
+			throw new LibraryException(getClass(), e);
+		}
+
+		DataManagerProviderServices dataman = (DataManagerProviderServices) DALLocator
+				.getDataManager();
+		try {
+			if (!dataman.getStoreProviders().contains(OGRStoreProvider.NAME)) {
+				dataman.registerStoreProviderFactory(new OGRStoreProviderFactory(OGRStoreProvider.NAME, OGRStoreProvider.DESCRIPTION));
+			}
+		} catch (RuntimeException e) {
+			exs.add(e);
+		}
+
+
+		DALFileLocator.getFilesystemServerExplorerManager().registerProvider(
+				OGRStoreProvider.NAME, OGRStoreProvider.DESCRIPTION,
+				OGRFilesystemServerProvider.class);
+
+		DynObjectManager dynMan = ToolsLocator.getDynObjectManager();
+		DynClass dynClass = dynMan.get(
+				OGRStoreProvider.METADATA_DEFINITION_NAME);
+		DynField field;
+		if (dynClass == null) {
+			dynClass = dynMan.add(
+					OGRStoreProvider.METADATA_DEFINITION_NAME);
+
+		}
+		
+		if (exs.size() > 0) {
+			throw new LibraryException(this.getClass(), exs);
+		}
+	}
+}
+
+
+

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRLibrary.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRFilesystemServerProvider.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRFilesystemServerProvider.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRFilesystemServerProvider.java	(revision 393)
@@ -0,0 +1,121 @@
+package org.gvsig.fmap.dal.store.gpx;
+
+import java.io.File;
+
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.DataServerExplorer;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.NewDataStoreParameters;
+import org.gvsig.fmap.dal.exception.CreateException;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.FileNotFoundException;
+import org.gvsig.fmap.dal.exception.RemoveException;
+import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
+import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
+import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.impl.AbstractFilesystemServerExplorerProvider;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProviderServices;
+
+public class OGRFilesystemServerProvider extends AbstractFilesystemServerExplorerProvider 
+	implements FilesystemServerExplorerProvider, ResourceConsumer {
+
+	//private FilesystemServerExplorerProviderServices serverExplorer;
+
+	public String getDataStoreProviderName() {
+		return OGRStoreProvider.NAME;
+	}
+
+	public int getMode() {
+		return DataServerExplorer.MODE_FEATURE | DataServerExplorer.MODE_GEOMETRY;
+	}
+
+	public boolean accept(File pathname) {
+		return (pathname.getName().toLowerCase().endsWith(".gpx"));
+		//return true;
+	}
+
+	public String getDescription() {
+		return OGRStoreProvider.DESCRIPTION;
+	}
+
+	public DataStoreParameters getParameters(File file) throws DataException {
+		DataManager manager = DALLocator.getDataManager();
+		OGRStoreParameters params = (OGRStoreParameters) manager
+				.createStoreParameters(this
+				.getDataStoreProviderName());
+		params.setFileName(file.getPath());
+		return params;
+	}
+
+	public boolean canCreate() {
+		return true;
+	}
+
+	public boolean canCreate(NewDataStoreParameters parameters) {
+		if (!(parameters instanceof OGRStoreParameters)) {
+			throw new IllegalArgumentException(); // FIXME ???
+		}
+		OGRStoreParameters driverParams = (OGRStoreParameters) parameters;
+		// TODO comporbar si el ftype es correcto (para este formato es fijo)
+		File file = new File(driverParams.getFileName());
+
+		if (driverParams.getCRS() == null) {
+			return false;
+		}
+		// TODO comprobamos extension del fichero ??
+		if (file.exists()) {
+			return file.canWrite();
+		} else {
+			return file.getParentFile().canWrite();
+		}
+	}
+
+	public void create(NewDataStoreParameters parameters, boolean overwrite)
+			throws CreateException {
+		// FIXME Exception
+		throw new UnsupportedOperationException();
+	}
+
+	public NewDataStoreParameters getCreateParameters() throws DataException {
+		return (NewFeatureStoreParameters) DALLocator.getDataManager()
+				.createStoreParameters(this.getDataStoreProviderName());
+	}
+
+	public void initialize(
+			FilesystemServerExplorerProviderServices serverExplorer) {
+		//this.serverExplorer = serverExplorer;
+	}
+
+	public void remove(DataStoreParameters parameters) throws RemoveException {
+		File file = new File(((OGRStoreParameters) parameters).getFileName());
+		if (!file.exists()) {
+			throw new RemoveException(this.getDataStoreProviderName(),
+					new FileNotFoundException(file));
+		}
+		if (!file.delete()) {
+			// FIXME throws ???
+		}
+
+	}
+
+	public boolean closeResourceRequested(ResourceProvider resource) {
+		// while it is using a resource anyone can't close it
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see
+	 * org.gvsig.fmap.dal.resource.spi.ResourceConsumer#resourceChanged(org.
+	 * gvsig.fmap.dal.resource.spi.ResourceProvider)
+	 */
+	public void resourceChanged(ResourceProvider resource) {
+		//Do nothing
+
+	}
+
+
+}

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRFilesystemServerProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreProvider.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreProvider.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreProvider.java	(revision 393)
@@ -0,0 +1,586 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright (C) 2007-2013 gvSIG Association.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.fmap.dal.store.gpx;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.gdal.gdal.gdal;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Driver;
+import org.gdal.ogr.FeatureDefn;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.ogr;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.DataServerExplorer;
+import org.gvsig.fmap.dal.DataStoreNotification;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.FileHelper;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.exception.OpenException;
+import org.gvsig.fmap.dal.exception.ReadException;
+import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
+import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.EditableFeatureType;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
+import org.gvsig.fmap.dal.feature.spi.FeatureStoreProviderServices;
+import org.gvsig.fmap.dal.feature.spi.memory.AbstractMemoryStoreProvider;
+import org.gvsig.fmap.dal.resource.file.FileResource;
+import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
+import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters;
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryException;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.exception.CreateGeometryException;
+import org.gvsig.fmap.geom.primitive.Envelope;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dataTypes.CoercionException;
+import org.gvsig.tools.dataTypes.DataTypesManager;
+import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
+import org.gvsig.tools.exception.BaseException;
+import org.gvsig.tools.exception.NotYetImplemented;
+import org.gvsig.tools.locator.LocatorException;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+import org.gvsig.tools.task.SimpleTaskStatus;
+import org.gvsig.tools.task.TaskStatusManager;
+import org.gvsig.tools.visitor.VisitCanceledException;
+import org.gvsig.tools.visitor.Visitor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class OGRStoreProvider extends AbstractMemoryStoreProvider implements
+ResourceConsumer {
+    private static final Logger logger = LoggerFactory.getLogger(OGRStoreProvider.class);
+
+    public static final String NAME = "OGR_DRIVER";
+    public static final String DESCRIPTION = "GPX file";
+
+    public static final String METADATA_DEFINITION_NAME = NAME;
+
+    private ResourceProvider resource;
+
+    private long counterNewsOIDs = 0;
+    private Envelope envelope;
+    private boolean need_calculate_envelope = false;
+    private SimpleTaskStatus taskStatus;
+
+
+    public OGRStoreProvider(OGRStoreParameters parameters,
+        DataStoreProviderServices storeServices) throws InitializeException {
+        super(
+            parameters, 
+            storeServices,
+            FileHelper.newMetadataContainer(METADATA_DEFINITION_NAME)
+        );
+        
+        gdal.AllRegister();
+		ogr.RegisterAll();
+
+        TaskStatusManager manager = ToolsLocator.getTaskStatusManager();
+        this.taskStatus = manager.createDefaultSimpleTaskStatus("Driver");
+
+        counterNewsOIDs = 0;
+
+        File file = getDriverParameters().getFile();
+        resource = this.createResource(
+            FileResource.NAME,
+            new Object[] { file.getAbsolutePath() }
+        );
+
+        resource.addConsumer(this);
+        initializeFeatureTypes();
+    }
+
+    private OGRStoreParameters getDriverParameters() {
+        return (OGRStoreParameters) this.getParameters();
+    }
+
+    public String getProviderName() {
+        return NAME;
+    }
+
+    public boolean allowWrite() {
+        return false;
+    }
+
+    private String getFullFileName() {
+    	// Usar solo para mostrar mensajes en el logger.
+		String s = "(unknow)";
+		try { 
+			s = getDriverParameters().getFile().getAbsolutePath();
+		} catch(Exception e2) {
+			s = "(unknow)";
+		}
+		return s;
+    }
+    
+    public void open() throws OpenException {
+        if (this.data != null) {
+            return;
+        }
+        this.data = new ArrayList<FeatureProvider>();
+        resource.setData(new HashMap());
+        counterNewsOIDs = 0;
+		try {
+			loadFeatures();
+		} catch (RuntimeException e) {
+			logger.warn("Can't load features from Driver '"+getFullFileName()+"'.", e);
+			throw e;
+		} catch (Exception e) {
+			logger.warn("Can't load features from Driver '"+getFullFileName()+"'.", e);
+			throw new RuntimeException(e);
+		}
+    }
+
+    public DataServerExplorer getExplorer() throws ReadException {
+        DataManager manager = DALLocator.getDataManager();
+        FilesystemServerExplorerParameters params;
+        try {
+            params = (FilesystemServerExplorerParameters) manager
+            .createServerExplorerParameters(FilesystemServerExplorer.NAME);
+            params.setRoot(this.getDriverParameters().getFile().getParent());
+            return manager.openServerExplorer(FilesystemServerExplorer.NAME,params);
+        } catch (DataException e) {
+            throw new ReadException(this.getProviderName(), e);
+        } catch (ValidateDataParametersException e) {
+            throw new ReadException(this.getProviderName(), e);
+        }
+
+    }
+
+    public boolean closeResourceRequested(ResourceProvider resource) {
+        return true;
+    }
+
+    public int getOIDType() {
+        return DataTypes.LONG;
+    }
+
+    public boolean supportsAppendMode() {
+        return false;
+    }
+
+    public void append(FeatureProvider featureProvider) {
+    	throw new UnsupportedOperationException();
+    }
+
+    public void beginAppend() {
+    	throw new UnsupportedOperationException();
+    }
+
+    public void endAppend() {
+    	throw new UnsupportedOperationException();
+    }
+
+    public void saveToState(PersistentState state) throws PersistenceException {
+        throw new NotYetImplemented();
+    }
+
+    public void loadFromState(PersistentState state) throws PersistenceException {
+        throw new NotYetImplemented();
+    }
+
+    public Object createNewOID() {
+        return new Long(counterNewsOIDs++);
+    }
+
+    protected void initializeFeatureTypes() throws InitializeException {
+        try {
+            this.open();
+        } catch (OpenException e) {
+            throw new InitializeException(this.getProviderName(), e);
+        }
+    }
+
+    public Envelope getEnvelope() throws DataException {
+        this.open();
+        if( this.envelope!= null )  {
+        	return this.envelope;
+        }
+        if( !this.need_calculate_envelope ) {
+        	return null;
+        }
+        FeatureStore fs = this.getFeatureStore();
+        FeatureType ft = fs.getDefaultFeatureType();
+        FeatureAttributeDescriptor fad = ft.getAttributeDescriptor(ft.getDefaultGeometryAttributeIndex());
+
+        try {
+            this.envelope = GeometryLocator.getGeometryManager().createEnvelope(fad.getGeomType().getSubType());
+			fs.accept(new Visitor() {
+				public void visit(Object obj) throws VisitCanceledException, BaseException {
+					Feature f = (Feature) obj;
+					Geometry geom = f.getDefaultGeometry();
+					envelope.add(geom.getEnvelope());
+				}
+			});
+		} catch (BaseException e) {
+			logger.warn("Can't calculate the envelope of GPX file '"+this.getFullName()+"'.",e);
+			this.envelope = null;
+		}
+        
+        this.need_calculate_envelope = false;
+        return this.envelope;
+    }
+
+    public Object getDynValue(String name) throws DynFieldNotFoundException {
+//        if( DataStore.METADATA_ENVELOPE.equalsIgnoreCase(name) ) {
+//            try {
+//                return this.getEnvelope();
+//            } catch (DataException e) {
+//                return null;
+//            }
+//        } else {
+//            if( DataStore.METADATA_CRS.equalsIgnoreCase(name) ) {
+//                IProjection pro = DriverStoreParameters.getCRS(this.getDriverParameters());
+//                if (pro != null){
+//                    return pro;
+//                }
+//            }
+//        }
+        return super.getDynValue(name);
+    }
+
+
+    public void resourceChanged(ResourceProvider resource) {
+        this.getStoreServices().notifyChange(
+            DataStoreNotification.RESOURCE_CHANGED,
+            resource);
+    }
+
+
+    public Object getSourceId() {
+        return this.getDriverParameters().getFile();
+    }
+
+    public String getName() {
+        String name = this.getDriverParameters().getFile().getName();
+        return FilenameUtils.getBaseName(name);
+    }
+
+    public String getFullName() {
+        return this.getDriverParameters().getFile().getAbsolutePath();
+    }
+
+    public ResourceProvider getResource() {
+        return resource;
+    }
+
+    
+	private void loadFeatures() throws IOException, DataException,
+			CoercionException, CloneNotSupportedException {
+		
+		boolean bReadOnly = false;
+		boolean bVerbose = false;
+		File file = this.getDriverParameters().getFile();
+		String pszDataSource = file.getAbsolutePath();
+		
+		DataSource poDS = ogr.Open(pszDataSource, !bReadOnly);
+	    if (poDS == null && !bReadOnly){
+	        poDS = ogr.Open(pszDataSource, false);
+	        if (poDS == null && bVerbose){
+	        	logger.warn( "Had to open data source read-only.");
+	        }
+	    }
+	
+	   if(poDS == null){	
+		   logger.warn(file +" -> Unable to open datasource " + 
+        		 "with the available drivers.");
+	     
+	     if(ogr.GetDriverCount() == 0){
+	    	 logger.warn("ERROR: no drivers availables");
+	     }
+	    	 
+	   }
+	    
+	    if(poDS != null){ 
+	    	Driver poDriver = poDS.GetDriver();
+	    	logger.warn(file + " -> Opened using driver '" + poDriver.GetName() + "' successfully.");
+	    	
+	    	// Initialize the feature types
+	    	FeatureStoreProviderServices store = this.getStoreServices();
+	    	
+	    	for(int ij=0; ij<poDS.GetLayerCount(); ij++){
+		    	Layer layer = poDS.GetLayer(ij);
+		    	FeatureDefn layerDef = layer.GetLayerDefn();
+		    	
+		    	String[] headers = new String[layerDef.GetFieldCount()];
+		    	int[] types = new int[layerDef.GetFieldCount()];
+		    	for(int ji=0; ji<layerDef.GetFieldCount(); ji++){
+		    		headers[ji] = layerDef.GetFieldDefn(ji).GetName(); 
+		    		types[ji]  = layerDef.GetFieldDefn(ji).GetFieldType();
+		    	}
+		    	
+		    	EditableFeatureType edftype = this.getFeatureType(headers, types);
+		    	String geomColumn = layer.GetGeometryColumn();
+		    	if(!StringUtils.isBlank(geomColumn)){
+		    		edftype.setDefaultGeometryAttributeName(layer.GetGeometryColumn());
+		    	}else{
+		    		edftype.setDefaultGeometryAttributeName("GEOM");
+		    	}
+		    	
+	            FeatureType ftype = edftype.getNotEditableCopy();
+	            List<FeatureType> ftypes = new ArrayList<FeatureType>();
+	            ftypes.add(ftype);
+	            store.setFeatureTypes(ftypes, ftype);
+	
+	            if ( ftype.getDefaultGeometryAttributeName() != null ) {
+	                this.need_calculate_envelope = true;
+	            }
+	            
+	            taskStatus.message("_loading");
+	            int count = 0;
+	            int count_errors = 0;
+	            boolean ignore_errors = false;
+	            
+	            if(layer.GetFeatureCount()>0){
+		            org.gdal.ogr.Feature row = layer.GetNextFeature();
+		            while ( row != null ) {
+		                taskStatus.setCurValue(++count);
+		                FeatureProvider feature = this.createFeatureProvider(ftype);
+		                for ( int i = 0; i < row.GetFieldCount(); i++ ) {
+		                    try {
+		                        feature.set(i, this.getFieldValue(row, i));
+		                    } catch (RuntimeException ex) {
+		                        if ( !ignore_errors ) {
+		                            throw ex;
+		                        }
+		                        if ( count_errors++ < 10 ) {
+		                            logger.warn("Can't load value of attribute " + i + " in row " + count + ".", ex);
+		                        }
+		                        if ( count_errors == 10 ) {
+		                            logger.info("Too many errors, suppress messages.");
+		                        }
+		                    }
+		                }
+		                org.gdal.ogr.Geometry geom = row.GetGeometryRef();
+	                    if(geom != null){
+	                    	Geometry geometry;
+							try {
+								geometry = GeometryLocator.getGeometryManager().createFrom(geom.ExportToWkt());
+								feature.setDefaultGeometry(geometry);
+							} catch (CreateGeometryException e) {
+								// TODO Auto-generated catch block
+								e.printStackTrace();
+							} catch (LocatorException e) {
+								// TODO Auto-generated catch block
+								e.printStackTrace();
+							} catch (GeometryException e) {
+								// TODO Auto-generated catch block
+								e.printStackTrace();
+							}
+	                    	
+	                    }
+		                this.addFeatureProvider(feature);
+		                row = layer.GetNextFeature();
+		            }
+	            }
+
+	            taskStatus.terminate();
+	    	}
+	    }
+	}
+	
+	
+    private Object getFieldValue(org.gdal.ogr.Feature row, int i) {
+		int gdalType = row.GetDefnRef().GetFieldDefn(i).GetFieldType();
+		switch(this.getFieldType(gdalType)){
+			case DataTypes.STRING:
+				return row.GetFieldAsString(i);
+			case DataTypes.INT:
+				return row.GetFieldAsInteger(i);
+			default:
+				return row.GetFieldAsString(i);
+		}
+	}
+
+	private EditableFeatureType getFeatureType(String headers[], int automaticTypes[]) {
+        EditableFeatureType fType = getStoreServices().createFeatureType(this.getName());
+        fType.setHasOID(true);
+        DataTypesManager dataTypesManager = ToolsLocator.getDataTypesManager();
+
+        FieldTypeParser[] fieldTypes = new FieldTypeParser[headers.length];
+        //
+        // Calculamos cuales pueden ser los tipos de datos
+        //
+        for ( int i = 0; i < fieldTypes.length; i++ ) {
+            fieldTypes[i] = new FieldTypeParser(headers[i], this.getFieldType(automaticTypes[i]));
+        }
+
+        //
+        // Una vez ya sabemos los tipos de datos rellenamos el feature-type
+        //
+        for ( int i = 0; i < fieldTypes.length; i++ ) {
+            EditableFeatureAttributeDescriptor fad = fType.add(
+                    fieldTypes[i].name,
+                    fieldTypes[i].type
+            );
+            fad.setSize(fieldTypes[i].size);
+            fad.setAllowNull(fieldTypes[i].allowNulls);
+            if ( fieldTypes[i].type == DataTypes.GEOMETRY
+                    && fType.getDefaultGeometryAttributeName() == null ) {
+                fType.setDefaultGeometryAttributeName(fieldTypes[i].name);
+            }
+        }
+        EditableFeatureAttributeDescriptor attr = fType.add("GEOM", DataTypes.GEOMETRY);
+        GeometryManager geommgr = GeometryLocator.getGeometryManager();
+        GeometryType gt;
+        try {
+        	gt = geommgr.getGeometryType(Geometry.TYPES.GEOMETRY, Geometry.SUBTYPES.GEOM3D);
+
+        	attr.setGeometryType(gt);
+        } catch (Exception e) {
+        	logger.warn("Can't set geometry type for the calculated field in GPX file '" + getFullFileName() + "'.", e);
+        }
+        return fType;
+    }
+
+	
+	private int getFieldType(int gdalType) {
+		switch(gdalType){
+			case 2:
+				return DataTypes.FLOAT;
+			case 11:
+				return DataTypes.DATE;
+			case 4: 
+				return DataTypes.STRING;
+			default: 
+				return DataTypes.STRING; 
+		}
+	}
+
+	public String getDriver(int index){
+		return ogr.GetDriver(index).getName();
+	}
+	
+	public int getDriverCount(){
+		return ogr.GetDriverCount();
+	}
+	
+	 public List<String> getAvailableDrivers(){
+		 List<String> aux = new ArrayList<String>();
+	     for(int iDriver = 0; iDriver < ogr.GetDriverCount(); iDriver++ ){
+	         aux.add( ogr.GetDriver(iDriver).GetName() );
+	     }
+	     return aux;
+	 }
+
+	 public String getOGRVersion(){
+		 return gdal.VersionInfo();
+	 }
+	 
+	 
+	 
+	 private class FieldTypeParser {
+
+	        public String name = null;
+	        public int type = DataTypes.STRING;
+	        public int size = 0;
+	        public boolean allowNulls = true;
+
+	        private String typename = "string";
+
+	        FieldTypeParser(String name, int type) {
+	        	this.name = name;
+	        	this.type = type;
+	        }
+
+	        private int getType(String value) {
+	            DataTypesManager dataTypesManager = ToolsLocator.getDataTypesManager();
+	            return dataTypesManager.getType(typename);
+	        }
+
+	        // El formato seria:
+	        //   name[:typename[:size[:notnull|null]]]
+	        //   name[__typename[__size[__notnull|null]]]
+	        //
+	        public boolean parse(String value) {
+	            String typename = null;
+	            String[] ss = null;
+	            if ( value.contains(":") ) {
+	                ss = value.split(":");
+	            } else if ( value.contains("__") ) {
+	                ss = value.split("__");
+	            }
+	            if ( ss == null ) {
+	                this.name = value;
+	                return true;
+	            }
+	            switch (ss.length) {
+	            case 4:
+	                if ( ss[3].length() > 0 ) {
+	                    if ( "notnull".equalsIgnoreCase(ss[3]) ) {
+	                        this.allowNulls = false;
+	                    } else {
+	                        this.allowNulls = true;
+	                    }
+	                }
+	            case 3:
+	                if ( ss[2].length() > 0 ) {
+	                    try {
+	                        this.size = Integer.parseInt(ss[2]);
+	                    } catch (Exception ex) {
+	                        logger.warn("Ignore incorrect field size for field " + value + " in JExcel header of '" + getFullFileName() + "'.", ex);
+	                    }
+	                }
+	            case 2:
+	                if ( ss[1].length() > 0 ) {
+	                    this.typename = ss[1];
+	                    this.type = this.getType(this.typename);
+	                    if ( this.type == DataTypes.INVALID ) {
+	                        this.type = DataTypes.STRING;
+	                        logger.info("Type '" + typename + "' not valid for attribute '" + value + "' in JExcel file '" + getFullFileName() + "'.");
+	                    }
+	                }
+	            case 1:
+	                this.name = ss[0];
+	                break;
+	            }
+
+	            if ( this.type != DataTypes.STRING ) {
+	                this.size = 0;
+	            }
+	            return true;
+	        }
+
+	    }
+	 
+}

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/UnsupportedOGRVersionException.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/UnsupportedOGRVersionException.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/UnsupportedOGRVersionException.java	(revision 393)
@@ -0,0 +1,22 @@
+package org.gvsig.fmap.dal.store.gpx;
+
+import org.gvsig.fmap.dal.exception.DataException;
+
+public class UnsupportedOGRVersionException extends DataException {
+
+	/**
+	 *
+	 */
+	private static final long serialVersionUID = -7335241420683266251L;
+	private final static String MESSAGE_FORMAT = "Unssuported version of Driver of file '%(file)'. Try to convert using Autodesk convertor from '%(autodeskurl)'";
+	private final static String MESSAGE_KEY = "_UnsupportedDriverVersionException";
+
+	public final static String AUTODESK_URL = "http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=7024151";
+
+	public UnsupportedOGRVersionException(String file,
+			Throwable cause) {
+		super(MESSAGE_FORMAT, cause, MESSAGE_KEY, serialVersionUID);
+		setValue("file", file);
+		setValue("autodeskurl", AUTODESK_URL);
+	}
+}
\ No newline at end of file

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/UnsupportedOGRVersionException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreProviderFactory.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreProviderFactory.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreProviderFactory.java	(revision 393)
@@ -0,0 +1,82 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright (C) 2007-2013 gvSIG Association.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.fmap.dal.store.gpx;
+
+import org.gvsig.fmap.dal.DataParameters;
+import org.gvsig.fmap.dal.DataStoreProvider;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.feature.FeatureStoreProviderFactory;
+import org.gvsig.fmap.dal.feature.spi.AbstractFeatureStoreProviderFactory;
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.tools.dynobject.DynObject;
+
+public class OGRStoreProviderFactory extends AbstractFeatureStoreProviderFactory implements FeatureStoreProviderFactory{
+
+	public OGRStoreProviderFactory(String name, String description) {
+		super(name, description);
+	}
+	
+	public DataStoreProvider createProvider(DataParameters parameters,
+			DataStoreProviderServices providerServices)
+			throws InitializeException {
+		return new OGRStoreProvider((OGRStoreParameters) parameters, providerServices);
+	}
+
+	public DynObject createParameters() {
+		return new OGRStoreParameters();
+	}
+	
+	public int allowCreate() {
+		return NO;
+	}
+	
+	public int allowWrite() {
+		return NO;
+	}
+
+	public int allowRead() {
+		return YES;
+	}
+	
+	public int hasRasterSupport() {
+		return NO;
+	}
+	
+	public int hasTabularSupport() {
+		return YES;
+	}
+	
+	public int hasVectorialSupport() {
+		return YES;
+	}
+
+	public int allowMultipleGeometryTypes() {
+		return YES;
+	}
+	
+	public int allowEditableFeatureType() {
+		return NO;
+	}
+
+}

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreProviderFactory.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreParameters.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreParameters.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreParameters.java	(revision 393)
@@ -0,0 +1,137 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+
+/*
+* AUTHORS (In addition to CIT):
+* 2008 IVER T.I. S.A.   {{Task}}
+*/
+
+package org.gvsig.fmap.dal.store.gpx;
+
+import java.io.File;
+
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.FileHelper;
+import org.gvsig.fmap.dal.feature.EditableFeatureType;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
+import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
+import org.gvsig.fmap.dal.spi.AbstractDataParameters;
+import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
+import org.gvsig.tools.dynobject.DelegatedDynObject;
+
+public class OGRStoreParameters extends AbstractDataParameters implements
+		DataStoreParameters, FilesystemStoreParameters,
+		NewFeatureStoreParameters {
+
+	public static final String PARAMETERS_DEFINITION_NAME = "OGRStoreParameters";
+
+	private static final String FIELD_FILE = "file";
+	private static final String FIELD_CRS = "CRS";
+	private static final String FIELD_DRIVER = "Driver";
+
+	private DelegatedDynObject parameters;
+
+	public OGRStoreParameters() {
+		this(PARAMETERS_DEFINITION_NAME);
+	}
+
+	protected OGRStoreParameters(String parametersDefinitionName) {
+		this(parametersDefinitionName, OGRStoreProvider.NAME);
+	}
+
+	public OGRStoreParameters(String parametersDefinitionName, String name) {
+		super();
+		this.parameters = (DelegatedDynObject) FileHelper.newParameters(parametersDefinitionName);
+		this.setDynValue(DataStoreProviderServices.PROVIDER_PARAMTER_NAME,
+						name);
+	}
+
+	protected DelegatedDynObject getDelegatedDynObject() {
+		return parameters;
+	}
+
+	public String getDataStoreName() {
+		return (String) this
+				.getDynValue(DataStoreProviderServices.PROVIDER_PARAMTER_NAME);
+	}
+
+	public String getDescription() {
+		return this.getDynClass().getDescription();
+	}
+
+	public void setCRS(IProjection crs) {
+		setDynValue(FIELD_CRS, crs);
+	}
+
+	public void setCRS(String crs) {
+		setDynValue(FIELD_CRS, crs);
+	}
+
+	public IProjection getCRS() {
+		return (IProjection) getDynValue(FIELD_CRS);
+	}
+	
+	public void setDriver(String driver) {
+		setDynValue(FIELD_DRIVER, driver);
+	}
+
+	public String getDriver() {
+		return (String) getDynValue(FIELD_DRIVER);
+	}
+
+	public String getFileName() {
+		return this.getFile().getPath();
+	}
+
+	public void setFileName(String file) {
+		setDynValue(FIELD_FILE, file);
+	}
+
+	public boolean isValid() {
+		if (getCRS() == null) {
+			return false;
+		}
+		if (getFile() == null) {
+			return false;
+		}
+		return true;
+	}
+
+	public File getFile() {
+		return (File) this.getDynValue(FIELD_FILE);
+	}
+
+	public void setFile(File file) {
+		this.setDynValue(FIELD_FILE, file);
+	}
+
+	public EditableFeatureType getDefaultFeatureType() {
+		return null; //TODO ????
+	}
+
+	public void setDefaultFeatureType(FeatureType defaultFeatureType) {
+		throw new UnsupportedOperationException();
+	}
+
+}
\ No newline at end of file

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/java/org/gvsig/fmap/dal/store/gpx/OGRStoreParameters.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/org/gvsig/fmap/dal/store/gpx/OGRMetadata.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/org/gvsig/fmap/dal/store/gpx/OGRMetadata.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/org/gvsig/fmap/dal/store/gpx/OGRMetadata.xml	(revision 393)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!--
+Definitions of metadata fields of a shp file.  
+ -->
+<definitions>
+  <version>1.0.0</version>
+  <classes>
+    
+    <class name="OGR_DRIVER" namespace="Metadata">
+      <extends>
+      	<class namespace="Metadata" name="SpatialProvider"/>
+      </extends>
+      <description>Metadata of a OGR store</description>
+      <fields>
+      </fields>
+    </class>
+
+  </classes>
+</definitions>  

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/org/gvsig/fmap/dal/store/gpx/OGRMetadata.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/org/gvsig/fmap/dal/store/gpx/OGRParameters.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/org/gvsig/fmap/dal/store/gpx/OGRParameters.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/org/gvsig/fmap/dal/store/gpx/OGRParameters.xml	(revision 393)
@@ -0,0 +1,20 @@
+<?xml version= "1.0 "?>
+<definitions>
+  <version>1.0.0</version>
+  <classes>
+    <class name="OGRStoreParameters">
+       <extends>
+      	<class namespace="dal" name="ProviderParameters"/>
+      </extends>
+      <description>Store the parameters need to open a OGR file</description>
+      <fields>
+        <field name="File" type="file" mandatory="true" group="Basic">
+          <description>Driver file</description>
+        </field>
+        <field name="Driver" type="string" mandatory="false" defaultValue="" group="Basic">
+          <description>Sets the driver needed to open.</description>
+        </field>
+      </fields>
+    </class>
+  </classes>
+</definitions>  

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/org/gvsig/fmap/dal/store/gpx/OGRParameters.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 393)
@@ -0,0 +1 @@
+org.gvsig.fmap.dal.store.gpx.OGRLibrary
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/pom.xml	(revision 393)
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>org.gvsig.gdal.gpx</artifactId>
+	<packaging>jar</packaging>
+	<name>org.gvsig.gdal.gpx</name>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>org.gvsig.gdal</artifactId>
+		<version>1.0.16-SNAPSHOT</version>
+	</parent>
+	<dependencies>
+	    <dependency>
+		  <groupId>org.gdal</groupId>
+		  <artifactId>gdal</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.tools.lib</artifactId>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.projection.api</artifactId>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.fmap.dal.api</artifactId>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.fmap.dal.spi</artifactId>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.fmap.geometry.api</artifactId>
+			<scope>compile</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.utils</artifactId>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.fmap.dal.file.lib</artifactId>
+			<scope>compile</scope>
+		</dependency>
+	</dependencies>
+	<modules>
+
+	</modules>
+</project>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.gpx
___________________________________________________________________
Added: svn:ignore
   + target

.settings

.classpath

.project


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Thu Jan 14 23:01:01 CET 2016
+buildNumber=21

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/buildNumber.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/GPXClientExtension.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/GPXClientExtension.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/GPXClientExtension.java	(revision 393)
@@ -0,0 +1,98 @@
+/*  
+ * Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2012 
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+package org.gvsig.gdal.app.gpx;
+
+import org.gvsig.andami.plugins.Extension;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Extension for adding driver support to gvSIG.
+ * @author Jos� Bad�a (jbadia@scolab.es)
+ */
+public class GPXClientExtension extends Extension {
+	private Logger log = LoggerFactory.getLogger(GPXClientExtension.class);
+	
+	public void initialize() {
+//		IconThemeHelper.registerIcon(null, "icon-layer-osm", this);
+	}
+
+    /*
+	 * (non-Javadoc)
+	 * @see org.gvsig.andami.plugins.Extension#postInitialize()
+	 */
+	public void postInitialize() {
+//		addAboutInfo();
+//		AddLayer.addWizard(OGRWizard.class);
+//		
+//		DataManagerProviderServices dataman = (DataManagerProviderServices) DALLocator
+//				.getDataManager();
+//		try {
+//			if (!dataman.getStoreProviders().contains(OGRStoreProvider.NAME)) {
+//				dataman.registerStoreProviderFactory(
+//						new OGRStoreProviderFactory(
+//								OGRStoreProvider.NAME, 
+//								OGRStoreProvider.DESCRIPTION));
+//			}
+//		} catch (RuntimeException e) {
+//			log.debug(e.getMessage());
+//		}
+//		
+//		try {
+//			DALFileLocator.getFilesystemServerExplorerManager()
+//					.registerProvider(OGRStoreProvider.NAME,
+//							OGRStoreProvider.DESCRIPTION,
+//							OGRFilesystemServerProvider.class);
+//		} catch (RuntimeException e) {
+//			log.debug(e.getMessage());
+//		}
+		
+	}
+	
+	public void execute(String actionCommand) {
+
+	}
+
+	public boolean isEnabled() {
+		return true;
+	}
+
+	public boolean isVisible() {
+		return true;
+	}
+	
+//	private void addAboutInfo() {
+//        ApplicationManager application = ApplicationLocator.getManager();
+//        
+//        AboutManager about = application.getAbout();
+//        about.addDeveloper("Nacho Brodin", getClass().getClassLoader()
+//            .getResource("about/osm-about.html"), 2);
+//
+//        AboutParticipant participant = about.getDeveloper("Nacho Brodin");
+//        participant.addContribution(
+//            "OSM",
+//            "Open Street Map client for gvSIG", 
+//            2012,1,1, 
+//            2012,1,15
+//        );      
+//    }
+}

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/GPXClientExtension.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/GPXWizard.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/GPXWizard.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/GPXWizard.java	(revision 393)
@@ -0,0 +1,517 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ */
+package org.gvsig.gdal.app.gpx.gui;
+
+import java.awt.FlowLayout;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.io.File;
+import java.net.URL;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import org.gdal.gdal.gdal;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Feature;
+import org.gdal.ogr.FeatureDefn;
+import org.gdal.ogr.FieldDefn;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.ogr;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.ui.mdiManager.IWindow;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.gui.WizardPanel;
+import org.gvsig.app.gui.wizards.WizardListener;
+import org.gvsig.app.gui.wizards.WizardListenerSupport;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.exception.OpenException;
+import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
+import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.store.gpx.OGRStoreParameters;
+import org.gvsig.fmap.dal.store.gpx.OGRStoreProvider;
+import org.gvsig.fmap.dal.store.gpx.OGRStoreProviderFactory;
+import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.gdal.app.gpx.gui.utils.JFileField;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Wizard panel to add a new OSM raster layer
+ * @author Jos� Bad�a (jbadia@scolab.es)
+ */
+public class GPXWizard extends WizardPanel implements MouseListener {
+	private static final long           serialVersionUID      = 1L;
+	private static final String         TAB_NAME              = "GDAL/OGR";
+	private static Logger               logger                = LoggerFactory.getLogger(GPXWizard.class.getName());
+	private AbstractViewPanel           view                  = null;
+	private WizardListenerSupport       listenerSupport       = null;
+
+	private JPanel chooserPanel;
+	private JPanel jPanel1;
+	private JFileField cmbHost;
+	private JButton btnConnect;
+	private JPanel jPanel;
+	private JScrollPane jScrollPane;
+	private JTextArea txtAbstract;
+	private JPanel pnlName;
+	private JLabel jLabel1;
+	private JLabel lblTitle;
+
+	private DataSource poDS = null;
+	private File file = null;
+	private OGRStoreParameters ogrStoreParameters;
+
+
+	public GPXWizard() {
+		super();
+		initialize();
+	}
+
+	/**
+	 * This method initializes this
+	 *
+	 * @return void
+	 */
+	private void initialize() {
+		setTabName(PluginServices.getText(this, TAB_NAME));
+		setLayout(new GridBagLayout());
+
+		gdal.AllRegister();
+		ogr.RegisterAll();
+
+		IWindow iw = PluginServices.getMDIManager().getActiveWindow();
+
+		if (iw == null) {
+			return;
+		}
+
+		if (!(iw instanceof AbstractViewPanel)) {
+			return;
+		}
+
+		view = (AbstractViewPanel) iw;
+		setMapCtrl(view.getMapControl());
+
+		GridBagConstraints gridBagConstraints = new GridBagConstraints();
+		gridBagConstraints.fill = GridBagConstraints.BOTH;
+		gridBagConstraints.weightx = 1.0;
+		gridBagConstraints.weighty = 1.0;
+		gridBagConstraints.gridx = 0;
+		gridBagConstraints.gridy = 0;
+		add(getFileChooserPanel(), gridBagConstraints);
+
+		gridBagConstraints.weightx = 1.0;
+		gridBagConstraints.gridy = 1;
+		gridBagConstraints.weighty = 4;
+		add(getDescriptionPanel(), gridBagConstraints);
+	}
+
+	private WizardListenerSupport getWizardListenerSupport() {
+		if(listenerSupport == null)
+			listenerSupport = new WizardListenerSupport();
+		return listenerSupport;
+	}
+
+	/**
+	 * This method checks for the options selected within the configuration
+	 * dialog are correct.
+	 *
+	 * @return true if you're done, false if not.
+	 */
+	public boolean areSettingsValid() {
+		return true;
+	}
+
+	public void addWizardListener(WizardListener listener) {
+		getWizardListenerSupport().addWizardListener(listener);
+		getWizardListenerSupport().callStateChanged(false);
+	}
+
+	public void removeWizardListener(WizardListener listener) {
+		getWizardListenerSupport().removeWizardListener(listener);
+	}
+
+	@Override
+	public void close() {
+	}
+
+	@Override
+	public void execute() {
+		if(this.file != null){
+			isFileSupported(this.file);
+
+			// Si el fichero es soportado por OGR
+			if(poDS != null){
+				DataManager dataManager = DALLocator.getDataManager();
+				OGRStoreProviderFactory provFact = (OGRStoreProviderFactory) dataManager.getStoreProviderFactory(OGRStoreProvider.NAME);
+				OGRStoreParameters params = (OGRStoreParameters) provFact.createParameters();
+
+				ApplicationManager application = ApplicationLocator.getManager();
+				ProjectManager projectManager = application.getProjectManager();
+				ViewDocument view = (ViewDocument) projectManager.getCurrentProject().getActiveDocument();
+
+				try {
+
+					FLyrVect layer = (FLyrVect) application.getMapContextManager().createLayer("prueba-ogr",  openFile(this.file));
+					view.getMapContext().getLayers().addLayer(layer);
+				} catch (LoadLayerException e) {
+					e.printStackTrace();
+				}
+			}
+		}else{
+			// TODO mensaje de error que no hay fichero escogido
+		}
+
+
+	}
+
+	private void isFileSupported(File path) {
+		if(path != null){
+			lblTitle.setText(path.getAbsolutePath());
+		}else{
+			poDS = null;
+			lblTitle.setText("-");
+			return ;
+		}
+
+		String aux = "Running under GDAL/OGR "+ gdal.VersionInfo()  +" version.\n\n";
+		txtAbstract.setText(aux);
+
+		if(ogr.GetDriverCount() != 0){
+			poDS = ogr.Open(path.getAbsolutePath(), false);
+			if(poDS != null){
+				aux = aux + "Opened file '"+ path.getName()  +"' with "+ poDS.GetDriver().getName() +" driver.\n";
+			}else{
+				aux = aux + "ERROR: This file cannot be opened. Available drivers are the following:\n"; 
+				for(int i = 0; i<ogr.GetDriverCount(); i++){
+					aux = aux + ogr.GetDriver(i).getName();
+					if(i+1<ogr.GetDriverCount()){
+						aux = aux + ",   ";
+					}
+				}
+				txtAbstract.setText(aux);
+				return;
+			}
+		}else{
+			aux = aux + "ERROR: GDAL/OGR driver are not initialized"; 
+		}
+		txtAbstract.setText(aux);
+	}
+
+	private JPanel getFileChooserPanel() {
+		if (chooserPanel == null) {
+			chooserPanel = new javax.swing.JPanel();
+			chooserPanel.setLayout(null);
+			chooserPanel.setPreferredSize(new java.awt.Dimension(480, 220));
+			chooserPanel.setVisible(true);
+			chooserPanel.setBounds(15, 5, 480, 407);
+			chooserPanel.add(getFilePanel(), null);
+		}
+
+		return chooserPanel;
+	}
+
+	private JPanel getFilePanel() {
+		if (jPanel1 == null) {
+			jPanel1 = new javax.swing.JPanel();
+			jPanel1.setLayout(null);
+			jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(
+					null, PluginServices.getText(this, "file"),
+					javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+					javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
+			jPanel1.setBounds(2, 5, 477, 85);
+			jPanel1.add(getTxtHost(), null);
+			jPanel1.add(getBtnConnect(), null);
+		}
+
+		return jPanel1;
+	}
+
+	private JFileField getTxtHost() {
+		if (cmbHost == null) {
+			cmbHost = new JFileField(null, "...");
+			cmbHost.setMode(JFileField.MODE_OPEN);
+			cmbHost.getFileChooser().setCurrentDirectory(new File(System.getProperty("user.home")));
+			cmbHost.setPreferredSize(new java.awt.Dimension(350, 40));
+			cmbHost.setBounds(11, 26, 470, 30);
+			//cmbHost.setEditable(true);
+		}
+		return cmbHost;
+	}
+
+	private JButton getBtnConnect() {
+		if (btnConnect == null) {
+			btnConnect = new JButton();
+			btnConnect.setPreferredSize(new java.awt.Dimension(100, 20));
+			btnConnect.setBounds(366, 60, 100, 20);
+			btnConnect.setText(PluginServices.getText(this, "Cargar"));
+			btnConnect.addActionListener(new java.awt.event.ActionListener() {
+
+				public void actionPerformed(java.awt.event.ActionEvent e) {
+					file = cmbHost.getFileChooser().getSelectedFile();
+					isFileSupported(file);
+
+					String aux = txtAbstract.getText();
+
+					DataManager dataManager = DALLocator.getDataManager();
+
+					OGRStoreProviderFactory provFact = (OGRStoreProviderFactory) dataManager.getStoreProviderFactory(OGRStoreProvider.NAME);
+					OGRStoreParameters params = (OGRStoreParameters) provFact.createParameters();
+					params.setFile(file);
+
+					OGRStoreProvider provider = null;
+					try {
+						provider = (OGRStoreProvider) provFact.createProvider(params, null);
+					} catch (InitializeException e1) {
+						// TODO Auto-generated catch block
+						e1.printStackTrace();
+					}
+
+					if(provider != null){
+						aux.concat("Running under GDAL/OGR "+ provider.getOGRVersion()  +" version.\n");
+						try {
+							provider.open();
+							if(((OGRStoreParameters)provider.getParameters()).getDriver() != null){
+								aux.concat("Opened file '"+ file.getName()  +"' with "+ ((OGRStoreParameters)provider.getParameters()).getDriver() +" driver.\n");
+							}else{
+								List<String> availableDrivers = provider.getAvailableDrivers();
+								aux.concat("ERROR: This file cannot be opened. Available drivers are the following:\n"); 
+								for(int i = 0; i<provider.getDriverCount(); i++){
+									aux.concat(provider.getDriver(i)+" ");
+								}
+							}
+						} catch (OpenException e1) {
+							// TODO Auto-generated catch block
+							e1.printStackTrace();
+						}
+					}
+
+
+					for(int index = 0; index < poDS.GetLayerCount();index++){
+						Layer layer = poDS.GetLayer(index);
+						for(int feats = 0; feats < layer.GetFeatureCount();feats++){
+							Feature feat = layer.GetFeature(feats);
+							FeatureDefn definition = feat.GetDefnRef();
+							for(int fields = 0; fields < definition.GetFieldCount();fields++){
+								FieldDefn field = definition.GetFieldDefn(fields);
+								String fieldName = field.GetName();
+								int fieldType = field.GetFieldType();
+								switch(fieldType){
+								// Ejemplo -> Type 1 : Integer
+								case 1:
+									// Crear una feature en la vista
+									int feature = feat.GetFieldAsInteger(field.GetFieldTypeName(fieldType));
+
+									// A�adirla
+									break;
+								default:
+									break;
+								}
+							}
+						}
+					}
+
+
+
+				}
+
+			});
+		}
+
+		return btnConnect;
+	}
+
+	private JPanel getDescriptionPanel() {
+		if (jPanel == null) {
+			jPanel = new JPanel();
+			jPanel.setLayout(null);
+			jPanel.setPreferredSize(new java.awt.Dimension(480, 330));
+			jPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
+					PluginServices.getText(this, "descripcion"),
+					javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
+					javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
+			jPanel.setBounds(15, 5, 480, 407);
+			jPanel.add(getJScrollPane(), null);
+			jPanel.add(getPnlName(), null);
+		}
+
+		return jPanel;
+	}
+
+	private JScrollPane getJScrollPane() {
+		if (jScrollPane == null) {
+			jScrollPane = new JScrollPane();
+			jScrollPane.setViewportView(getTxtAbstract());
+			jScrollPane.setPreferredSize(new java.awt.Dimension(450, 60));
+			jScrollPane.setBounds(10, 47, 457, 247);
+		}
+
+		return jScrollPane;
+	}
+
+	private JTextArea getTxtAbstract() {
+		if (txtAbstract == null) {
+			txtAbstract = new JTextArea();
+			txtAbstract.setWrapStyleWord(true);
+			txtAbstract.setColumns(30);
+			txtAbstract.setLineWrap(true);
+			txtAbstract.setEditable(false);
+		}
+
+		return txtAbstract;
+	}
+
+	private JPanel getPnlName() {
+		if (pnlName == null) {
+			pnlName = new JPanel();
+			pnlName.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 0));
+			pnlName.setBounds(new java.awt.Rectangle(9, 19, 452, 24));
+			pnlName.add(getJLabel1(), null);
+			pnlName.add(getLblTitle(), null);
+		}
+		return pnlName;
+	}
+
+	private JLabel getJLabel1() {
+		if (jLabel1 == null) {
+			jLabel1 = new javax.swing.JLabel();
+			jLabel1.setText(PluginServices.getText(this, "nombre") + ":");
+			jLabel1.setBounds(15, 26, 65, 15);
+		}
+
+		return jLabel1;
+	}
+
+	private JLabel getLblTitle() {
+		if (lblTitle == null) {
+			lblTitle = new javax.swing.JLabel();
+			lblTitle.setText("-");
+			lblTitle.setPreferredSize(new java.awt.Dimension(350, 16));
+			lblTitle.setBounds(82, 26, 350, 16);
+		}
+
+		return lblTitle;
+	}
+
+	@Override
+	public DataStoreParameters[] getParameters() {
+		return null;
+	}
+
+	@Override
+	public void initWizard() {
+
+	}
+
+	public void mouseClicked(MouseEvent e) {
+
+	}
+
+	public void mouseEntered(MouseEvent e) {
+
+	}
+
+	public void mouseExited(MouseEvent e) {
+
+	}
+
+	public void mousePressed(MouseEvent e) {
+		getWizardListenerSupport().callStateChanged(true);
+	}
+
+	public void mouseReleased(MouseEvent e) {
+
+	}
+
+	/**
+	 * Get a resource as a File from a path name in the
+	 * class path.
+	 * 
+	 * @param pathname
+	 * 
+	 * @return resource as a File
+	 */
+	private File getResource(String pathname) {
+		URL res = this.getClass().getClassLoader().getResource(pathname);
+		return new File(res.getPath());
+	}
+
+	private FeatureStore openFile(File shape) {
+		//    	try {
+		//
+		//    		DataStoreParameters parameters;
+		//	    	DataManager manager = DALLocator.getDataManager();
+		//	    	
+		//			parameters = manager.createStoreParameters("Shape");
+		//		    parameters.setDynValue("shpfile", shape);
+		//		    parameters.setDynValue("crs", "EPSG:23030");
+		//	    	return (FeatureStore) manager.openStore("Shape", parameters);
+		//
+		//    	} catch (InitializeException e) {
+		//			logger.error(e.getMessageStack());
+		//			throw new RuntimeException(e);
+		//		} catch (ProviderNotRegisteredException e) {
+		//			logger.error(e.getMessageStack());
+		//			throw new RuntimeException(e);
+		//		} catch (ValidateDataParametersException e) {
+		//			logger.error(e.getMessageStack());
+		//			throw new RuntimeException(e);
+		//		}
+
+		DataManager dataManager = DALLocator.getDataManager();
+
+
+		try {	
+			if(this.ogrStoreParameters == null){
+				this.ogrStoreParameters = 
+						(OGRStoreParameters) dataManager.createStoreParameters(OGRStoreProvider.NAME);
+			}
+			this.ogrStoreParameters.setFile(file);
+			return (FeatureStore) dataManager.openStore(
+					OGRStoreProvider.NAME, this.ogrStoreParameters);
+		} catch (ValidateDataParametersException e) {
+			e.printStackTrace();
+		} catch (InitializeException e) {
+			e.printStackTrace();
+		} catch (ProviderNotRegisteredException e) {
+			e.printStackTrace();
+		}
+		return null;
+
+	}
+}

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/GPXWizard.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/utils/FileTypeFilter.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/utils/FileTypeFilter.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/utils/FileTypeFilter.java	(revision 393)
@@ -0,0 +1,27 @@
+package org.gvsig.gdal.app.gpx.gui.utils;
+
+import java.io.File;
+import javax.swing.filechooser.FileFilter;
+ 
+public class FileTypeFilter extends FileFilter {
+ 
+    private String extension;
+    private String description;
+     
+    public FileTypeFilter(String extension, String description) {
+        this.extension = extension;
+        this.description = description;
+    }
+     
+    @Override
+    public boolean accept(File file) {
+        if (file.isDirectory()) {
+            return true;
+        }
+        return file.getName().toLowerCase().endsWith(extension);
+    }
+     
+    public String getDescription() {
+        return description + String.format(" (*%s)", extension);
+    }
+}

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/utils/FileTypeFilter.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/utils/JFileField.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/utils/JFileField.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/utils/JFileField.java	(revision 393)
@@ -0,0 +1,86 @@
+package org.gvsig.gdal.app.gpx.gui.utils;
+
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+ 
+public class JFileField extends JPanel {
+    private String textFieldLabel;
+    private String buttonLabel;
+     
+    private JLabel label;
+    private JTextField textField;
+    private JButton button;
+     
+    private JFileChooser fileChooser;
+     
+    private int mode;
+    public static final int MODE_OPEN = 1;
+    public static final int MODE_SAVE = 2;
+     
+    public JFileField(String textFieldLabel, String buttonLabel) {
+        this.textFieldLabel = textFieldLabel;
+        this.buttonLabel = buttonLabel;
+         
+        fileChooser = new JFileChooser();
+         
+        setLayout(new FlowLayout(FlowLayout.CENTER, 2, 0));
+ 
+        if(textFieldLabel!=null){
+        	label = new JLabel(textFieldLabel);
+        	add(label);
+        }
+         
+        textField = new JTextField(37);
+        textField.setEditable(false);
+        button = new JButton(buttonLabel);
+        button.setPreferredSize(new Dimension(35, 22));
+         
+        button.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent evt) {
+                buttonActionPerformed(evt);            
+            }
+        });
+         
+        add(textField);
+        add(button);
+         
+    }
+     
+    private void buttonActionPerformed(ActionEvent evt) {
+        if (mode == MODE_OPEN) {
+            if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
+                textField.setText(fileChooser.getSelectedFile().getName());
+            }
+        } else if (mode == MODE_SAVE) {
+            if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
+                textField.setText(fileChooser.getSelectedFile().getName());
+            }
+        }
+    }
+ 
+    public void addFileTypeFilter(String extension, String description) {
+        FileTypeFilter filter = new FileTypeFilter(extension, description);
+        fileChooser.addChoosableFileFilter(filter);
+    }
+     
+    public void setMode(int mode) {
+        this.mode = mode;
+    }
+     
+    public String getSelectedFilePath() {
+        return textField.getText();
+    }
+     
+    public JFileChooser getFileChooser() {
+        return this.fileChooser;
+    }
+}

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/java/org/gvsig/gdal/app/gpx/gui/utils/JFileField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/i18n/text_en.properties
===================================================================

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/i18n/text_en.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/i18n/text.properties
===================================================================

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/i18n/text.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/config.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/config.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/config.xml	(revision 393)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<plugin-config>
+	<libraries library-dir="lib">
+	</libraries>
+	<depends plugin-name="org.gvsig.app.mainplugin"/>
+	<depends plugin-name="org.gvsig.gdal.app.mainplugin"/>
+	<resourceBundle name="text"/>
+	<extensions>
+		<extension class-name="org.gvsig.gdal.app.gpx.GPXClientExtension"
+			description="GDAL GPX Driver"
+			active="true">
+		</extension>
+	</extensions>
+</plugin-config>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/config.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/images/icon/layer-icon-dwg.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/resources-plugin/images/icon/layer-icon-dwg.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,36 @@
+<assembly>
+  <id>gvsig-plugin-package</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.artifactId}</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <files>
+    <file>
+      <source>target/${project.artifactId}-${project.version}.jar</source>
+      <outputDirectory>lib</outputDirectory>
+    </file>
+    <file>
+      <source>target/package.info</source>
+    </file>
+  </files>
+
+  <fileSets>
+    <fileSet>
+      <directory>src/main/resources-plugin</directory>
+      <outputDirectory>.</outputDirectory>
+    </fileSet>
+  </fileSets>
+
+  <dependencySets>
+    <dependencySet>
+      <useProjectArtifact>false</useProjectArtifact>
+      <useTransitiveDependencies>false</useTransitiveDependencies>
+      <outputDirectory>lib</outputDirectory>
+      <includes>
+      	<include>org.gvsig:org.gvsig.gdal.gpx</include>
+      </includes>
+    </dependencySet>
+  </dependencySets>
+
+</assembly>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/src/main/assembly/gvsig-plugin-package.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/pom.xml	(revision 393)
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal.app.gpx</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name>
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.gdal.app</artifactId>
+        <version>1.0.16-SNAPSHOT</version>
+    </parent>
+    <dependencies>
+
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.gdal.gpx</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+        </dependency> 
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.tools.lib</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.andami</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.app.mainplugin</artifactId>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+    <modules>
+    </modules>
+	
+    <properties>
+        <!-- Package info property values -->
+        <!-- Default values in org.gvsig.desktop -->
+        <gvsig.package.info.name>Formats: GPX</gvsig.package.info.name>
+        <gvsig.package.info.state>testing</gvsig.package.info.state>
+        <gvsig.package.info.official>true</gvsig.package.info.official>
+        <gvsig.package.info.dependencies>required: org.gvsig.gdal.app.mainplugin -ge 1.0.0-A</gvsig.package.info.dependencies>
+        <gvsig.package.info.categories>Formats,Vector</gvsig.package.info.categories>
+        <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-gdal/pool/</gvsig.package.info.poolURL>
+        <gvsig.package.info.operatingSystem>all</gvsig.package.info.operatingSystem>
+        <gvsig.package.info.architecture>all</gvsig.package.info.architecture>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+     </properties>
+    
+    
+    
+  
+    <build>
+        <plugins>
+      
+            <plugin>
+                <!-- Skip compilation tests -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>default-testCompile</id>
+                        <phase>process-test-sources</phase>
+                        <goals>
+                            <goal>testCompile</goal>
+                        </goals>
+                        <configuration>
+                            <skip>true</skip>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <!-- Skip test execution -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <skipTests>true</skipTests>
+                </configuration>
+            </plugin>      
+      
+        </plugins>
+    </build>
+</project>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.gpx
___________________________________________________________________
Added: svn:ignore
   + .settings

target

.classpath

.project


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/pom.xml	(revision 393)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal.app</artifactId>
+    <packaging>pom</packaging>
+    <name>org.gvsig.gdal.app</name>
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.gdal</artifactId>
+        <version>1.0.60</version>
+    </parent>
+
+    <properties>
+        <gvsig.install.plugin>false</gvsig.install.plugin>  
+        <gvsig.install.plugin.package>true</gvsig.install.plugin.package>
+        <gvsig.package.info.state>testing</gvsig.package.info.state>
+        <gvsig.package.info.official>true</gvsig.package.info.official>
+        <gvsig.package.info.operatingSystem>all</gvsig.package.info.operatingSystem>
+        <gvsig.package.info.architecture>all</gvsig.package.info.architecture>
+        <gvsig.package.info.categories>Formats</gvsig.package.info.categories>
+        <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-gdal/pool/</gvsig.package.info.poolURL>
+        <gvsig.package.info.dependencies />
+        <gvsig.package.info.codealias />
+    </properties>
+
+    <modules>
+        <module>org.gvsig.gdal.app.mainplugin</module>
+        <!--
+        <module>org.gvsig.gdal.app.gpx</module>
+        -->
+        <module>org.gvsig.gdal.app.ogr.gml</module>
+	<module>org.gvsig.gdal.app.ogr.mainplugin</module>
+    </modules>
+</project>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:01:22 CET 2019
+buildNumber=66

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/buildNumber.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/src/main/resources-plugin/autorun.sh
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/src/main/resources-plugin/autorun.sh	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/src/main/resources-plugin/autorun.sh	(revision 393)
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# gvSIG. Desktop Geographic Information System.
+#
+# Copyright (C) 2007-2013 gvSIG Association.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301, USA.
+#
+# For any additional information, do not hesitate to contact us
+# at info AT gvsig.com, or visit our website www.gvsig.com.
+#
+
+
+#
+# Plugin autorun
+#
+
+PLUGIN_NAME=$(basename "$PLUGIN_FOLDER")
+
+
+gdal_init() {
+    logger_info "Using gdal from release-1800-gdal-1-11-3-mapserver-6-4-2"
+    logger_info "http://www.gisinternals.com/query.html?content=filelist&file=release-1800-gdal-1-11-3-mapserver-6-4-2.zip"
+
+    SDK_ROOT="$PLUGIN_FOLDER/gdal"
+    add_library_path "$SDK_ROOT/bin"
+    add_library_path "$SDK_ROOT/bin/gdal/java"
+
+    add_classpath "$SDK_ROOT/bin/gdal/java/gdal.jar"
+
+    #export GDAL_DATA="$SDK_ROOT/bin/gdal-data-1.11.3"
+    export GDAL_DATA="$SDK_ROOT/bin/gdal-data-2.2.1"
+
+    export GDAL_DRIVER_PATH="$SDK_ROOT/bin/gdal/plugins;$SDK_ROOT/bin/gdal/plugins-optional"
+    export PYTHONPATH="$SDK_ROOT/bin/gdal/python;$SDK_ROOT/bin/ms/python"
+    export PROJ_LIB="$SDK_ROOT/bin/gdal/proj/SHARE"
+
+    list_shared_library_dependencies "$SDK_ROOT/bin/gdal/java/gdaljni.dll"
+    list_shared_library_dependencies "$SDK_ROOT/bin/gdal/java/gdalconstjni.dll"
+    list_shared_library_dependencies "$SDK_ROOT/bin/gdal/java/ogrjni.dll"
+    list_shared_library_dependencies "$SDK_ROOT/bin/gdal/java/osrjni.dll"
+    list_shared_library_dependencies "$SDK_ROOT/bin/proj.dll"
+}
+
+gdal_init
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,60 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+<assembly>
+    <id>gvsig-plugin-package</id>
+    <formats>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>${gvsig.package.info.code}</baseDirectory>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <files>
+        <file>
+            <source>target/package.info</source>
+        </file>
+    </files>
+
+    <fileSets>
+        <fileSet>
+            <directory>target/org.gvsig.gdal.app.mainplugin.common</directory>
+            <outputDirectory>.</outputDirectory>
+            <excludes>
+                <exclude>package.info</exclude>
+            </excludes>
+        </fileSet>
+        <fileSet>
+            <directory>target/native/gdal</directory>
+            <outputDirectory>gdal</outputDirectory>
+        </fileSet>
+        <fileSet>
+            <directory>src/main/resources-plugin</directory>
+            <outputDirectory>.</outputDirectory>
+        </fileSet>
+    </fileSets>
+
+</assembly>
+
+
+

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/src/main/assembly/gvsig-plugin-package.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/pom.xml	(revision 393)
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal.app.mainplugin.win.x86</artifactId>
+    <packaging>jar</packaging>
+
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+        <version>1.0.60</version>
+    </parent>
+
+    <properties>
+        <gvsig.package.info.operatingSystem>win</gvsig.package.info.operatingSystem>
+        <gvsig.package.info.architecture>x86</gvsig.package.info.architecture>
+
+        <gdal.classifier>win-x86-dynamic</gdal.classifier>
+        <gdal.version>1.11.3.1800.2</gdal.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+            <type>zip</type>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+            <type>jar</type>
+        </dependency>
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <version>${gdal.version}</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <classifier>${gdal.classifier}</classifier>
+            <version>${gdal.version}</version>
+            <scope>runtime</scope>
+            <type>tar.gz</type>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unpack</id>
+                        <phase>process-sources</phase>
+                        <goals>
+                            <goal>unpack</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>org.gvsig</groupId>
+                                    <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                                    <type>zip</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>target</outputDirectory>
+                                </artifactItem>
+                                <artifactItem>
+                                    <groupId>org.gdal</groupId>
+                                    <artifactId>gdal</artifactId>
+                                    <classifier>${gdal.classifier}</classifier>
+                                    <version>${gdal.version}</version>
+                                    <type>tar.gz</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>target/native/gdal</outputDirectory>
+                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+
+        </plugins>
+    </build>
+
+  <profiles>
+    <profile>
+      <id>install_plugin_for_windows_x86</id>
+      <activation>
+        <os>
+          <family>Windows</family>
+          <arch>x86</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+  </profiles>
+
+</project>
+

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86
___________________________________________________________________
Added: svn:ignore
   + target

.settings

.classpath

.project


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:01:33 CET 2019
+buildNumber=64
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,59 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+
+<assembly>
+    <id>gvsig-plugin-package</id>
+    <formats>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>${gvsig.package.info.code}</baseDirectory>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <files>
+        <file>
+            <source>target/package.info</source>
+        </file>
+    </files>
+
+    <fileSets>
+        <fileSet>
+            <directory>target/org.gvsig.gdal.app.mainplugin.common</directory>
+            <outputDirectory>.</outputDirectory>
+            <excludes>
+                <exclude>package.info</exclude>
+            </excludes>
+        </fileSet>
+        <fileSet>
+            <directory>target/native/gdal</directory>
+            <outputDirectory>./gdal</outputDirectory>
+      </fileSet>
+        <fileSet>
+            <directory>src/main/resources-plugin</directory>
+            <outputDirectory>.</outputDirectory>
+        </fileSet>
+    </fileSets>
+
+
+</assembly>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/src/main/resources-plugin/autorun.sh
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/src/main/resources-plugin/autorun.sh	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/src/main/resources-plugin/autorun.sh	(revision 393)
@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+# gvSIG. Desktop Geographic Information System.
+#
+# Copyright (C) 2007-2013 gvSIG Association.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301, USA.
+#
+# For any additional information, do not hesitate to contact us
+# at info AT gvsig.com, or visit our website www.gvsig.com.
+#
+
+
+#
+# Plugin autorun
+#
+
+PLUGIN_NAME=$(basename "$PLUGIN_FOLDER")
+
+logger_info "Using gdal 1.11"
+
+add_library_path "${PLUGIN_FOLDER}/gdal"
+add_classpath "${PLUGIN_FOLDER}/gdal/java/gdal.jar"
+#export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-1.11.0"
+export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-2.2.1"
+
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdaljni.dylib"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdalconstjni.dylib"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libogrjni.dylib"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libosrjni.dylib"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libproj.dylib"
+
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64/pom.xml	(revision 393)
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64</artifactId>
+  <packaging>jar</packaging>
+
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+    <version>1.0.60</version>
+  </parent>
+
+
+  <properties>
+    <gvsig.package.info.operatingSystem>lin</gvsig.package.info.operatingSystem>
+    <gvsig.package.info.architecture>x86_64</gvsig.package.info.architecture>
+
+    <gdal.classifier>darwin_macos_10.11-x86_64</gdal.classifier>
+    <gdal.version>1.11.0.2</gdal.version>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.gdal</groupId>
+        <artifactId>gdal</artifactId>
+        <version>${gdal.version}</version>
+        <classifier>${gdal.classifier}</classifier>
+        <scope>runtime</scope>
+        <type>tar.gz</type>
+      </dependency>
+      <dependency>
+        <groupId>org.gdal</groupId>
+        <artifactId>gdal</artifactId>
+        <version>${gdal.version}</version>
+        <!--
+        <classifier>${gdal.classifier}</classifier>
+        -->
+        <scope>runtime</scope>
+        <type>jar</type>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+
+  <dependencies>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+      <type>zip</type>
+    </dependency>
+    <dependency>
+      <groupId>org.gdal</groupId>
+      <artifactId>gdal</artifactId>
+        <!--
+        <classifier>${gdal.classifier}</classifier>
+        -->
+      <scope>runtime</scope>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>org.gdal</groupId>
+      <artifactId>gdal</artifactId>
+      <classifier>${gdal.classifier}</classifier>
+      <scope>runtime</scope>
+      <type>tar.gz</type>
+    </dependency>
+  </dependencies>
+
+
+
+  <build>
+    <plugins>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>unpack</id>
+            <phase>process-sources</phase>
+            <goals>
+              <goal>unpack</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>org.gvsig</groupId>
+                  <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                  <type>zip</type>
+                  <overWrite>true</overWrite>
+                  <outputDirectory>target</outputDirectory>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>org.gdal</groupId>
+                  <artifactId>gdal</artifactId>
+                  <version>${gdal.version}</version>
+                  <classifier>${gdal.classifier}</classifier>
+                  <type>tar.gz</type>
+                  <overWrite>true</overWrite>
+                  <outputDirectory>target/native/gdal</outputDirectory>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>install_plugin_for_linux_x86_64</id>
+      <activation>
+        <os>
+          <family>Linux</family>
+          <arch>x86_64</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+
+    <profile>
+      <id>install_plugin_for_linux_amd64</id>
+      <activation>
+        <os>
+          <family>Linux</family>
+          <arch>amd64</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+  </profiles>
+
+
+</project>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64
___________________________________________________________________
Added: svn:ignore
   + target


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:01:08 CET 2019
+buildNumber=67

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/buildNumber.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/src/main/resources-plugin/autorun.sh
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/src/main/resources-plugin/autorun.sh	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/src/main/resources-plugin/autorun.sh	(revision 393)
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# gvSIG. Desktop Geographic Information System.
+#
+# Copyright (C) 2007-2013 gvSIG Association.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301, USA.
+#
+# For any additional information, do not hesitate to contact us
+# at info AT gvsig.com, or visit our website www.gvsig.com.
+#
+
+
+#
+# Plugin autorun
+#
+
+PLUGIN_NAME=$(basename "$PLUGIN_FOLDER")
+
+logger_info "Using gdal from Ubuntu 16.04.2 x86)"
+
+add_library_path "$PLUGIN_FOLDER/gdal"
+add_classpath "${PLUGIN_FOLDER}/gdal/java/gdal.jar"
+#export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-1.11.3"
+export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-2.2.1"
+
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdaljni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdalconstjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libogrjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libosrjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libproj.so.0"
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,62 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+
+<assembly>
+  <id>gvsig-plugin-package</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${gvsig.package.info.code}</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <files>
+    <file>
+      <source>target/package.info</source>
+    </file>
+  </files>
+
+  <fileSets>
+    <fileSet>
+      <directory>target/org.gvsig.gdal.app.mainplugin.common</directory>
+      <outputDirectory>.</outputDirectory>
+      <excludes>
+      	<exclude>package.info</exclude>
+      </excludes>
+    </fileSet>
+    <fileSet>
+      <directory>target/native/gdal</directory>
+      <outputDirectory>./gdal</outputDirectory>
+      <excludes>
+        <exclude>**/libdl.so.2</exclude>
+        <exclude>**/libz.so.1</exclude>
+      </excludes>
+    </fileSet>
+    <fileSet>
+      <directory>src/main/resources-plugin</directory>
+      <outputDirectory>.</outputDirectory>
+    </fileSet>
+  </fileSets>
+
+</assembly>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/src/main/assembly/gvsig-plugin-package.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/pom.xml	(revision 393)
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal.app.mainplugin.lin.x86</artifactId>
+    <packaging>jar</packaging>
+
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+        <version>1.0.60</version>
+    </parent>
+
+
+    <properties>
+        <gvsig.package.info.operatingSystem>lin</gvsig.package.info.operatingSystem>
+        <gvsig.package.info.architecture>x86</gvsig.package.info.architecture>
+
+        <gdal.classifier>ubuntu-16.04.2-i386</gdal.classifier>
+        <gdal.version>1.11.3.3</gdal.version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.gdal</groupId>
+                <artifactId>gdal</artifactId>
+                <version>${gdal.version}</version>
+                <classifier>${gdal.classifier}</classifier>
+                <scope>runtime</scope>
+                <type>tar.gz</type>
+            </dependency>
+            <dependency>
+                <groupId>org.gdal</groupId>
+                <artifactId>gdal</artifactId>
+                <version>${gdal.version}</version>
+                <!--
+                <classifier>${gdal.classifier}</classifier>
+                -->
+                <scope>runtime</scope>
+                <type>jar</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+            <type>zip</type>
+        </dependency>
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <classifier>${gdal.classifier}</classifier>
+            <scope>runtime</scope>
+            <type>tar.gz</type>
+        </dependency>
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <!--
+            <classifier>${gdal.classifier}</classifier>
+            -->
+            <scope>runtime</scope>
+            <type>jar</type>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unpack</id>
+                        <phase>process-sources</phase>
+                        <goals>
+                            <goal>unpack</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>org.gvsig</groupId>
+                                    <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                                    <type>zip</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>target</outputDirectory>
+                                </artifactItem>
+                                <artifactItem>
+                                    <groupId>org.gdal</groupId>
+                                    <artifactId>gdal</artifactId>
+                                    <version>${gdal.version}</version>
+                                    <classifier>${gdal.classifier}</classifier>
+                                    <type>tar.gz</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>target/native/gdal</outputDirectory>
+                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
+  <profiles>
+    <profile>
+      <id>install_plugin_for_linux_x86</id>
+      <activation>
+        <os>
+          <family>Linux</family>
+          <arch>x86</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+  </profiles>
+
+</project>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86
___________________________________________________________________
Added: svn:ignore
   + .settings

target

.classpath

.project

bin


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/pom.xml	(revision 393)
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64</artifactId>
+  <packaging>jar</packaging>
+
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+    <version>1.0.60</version>
+  </parent>
+
+
+  <properties>
+    <gvsig.package.info.operatingSystem>lin_ubuntu_14.04</gvsig.package.info.operatingSystem>
+    <gvsig.package.info.architecture>x86_64</gvsig.package.info.architecture>
+
+    <gdal.classifier>osgeolive-9.0-ubuntu-14.04.3-amd64</gdal.classifier>
+    <gdal.version>1.11.2.5</gdal.version>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.gdal</groupId>
+        <artifactId>gdal</artifactId>
+        <version>${gdal.version}</version>
+        <classifier>${gdal.classifier}</classifier>
+        <scope>runtime</scope>
+        <type>tar.gz</type>
+      </dependency>
+      <dependency>
+        <groupId>org.gdal</groupId>
+        <artifactId>gdal</artifactId>
+        <version>${gdal.version}</version>
+        <!--
+        <classifier>${gdal.classifier}</classifier>
+        -->
+        <scope>runtime</scope>
+        <type>jar</type>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+
+  <dependencies>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+      <type>zip</type>
+    </dependency>
+    <dependency>
+      <groupId>org.gdal</groupId>
+      <artifactId>gdal</artifactId>
+      <!--
+      <classifier>${gdal.classifier}</classifier>
+      -->
+      <scope>runtime</scope>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>org.gdal</groupId>
+      <artifactId>gdal</artifactId>
+      <classifier>${gdal.classifier}</classifier>
+      <scope>runtime</scope>
+      <type>tar.gz</type>
+    </dependency>
+  </dependencies>
+
+
+
+  <build>
+    <plugins>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>unpack</id>
+            <phase>process-sources</phase>
+            <goals>
+              <goal>unpack</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>org.gvsig</groupId>
+                  <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                  <type>zip</type>
+                  <overWrite>true</overWrite>
+                  <outputDirectory>target</outputDirectory>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>org.gdal</groupId>
+                  <artifactId>gdal</artifactId>
+                  <version>${gdal.version}</version>
+                  <classifier>${gdal.classifier}</classifier>
+                  <type>tar.gz</type>
+                  <overWrite>true</overWrite>
+                  <outputDirectory>target/native/gdal</outputDirectory>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>install_plugin_for_linux_x86_64</id>
+      <activation>
+        <os>
+          <family>Linux</family>
+          <arch>x86_64</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+
+    <profile>
+      <id>install_plugin_for_linux_amd64</id>
+      <activation>
+        <os>
+          <family>Linux</family>
+          <arch>amd64</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+  </profiles>
+
+
+</project>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:01:02 CET 2019
+buildNumber=64
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,61 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+
+<assembly>
+    <id>gvsig-plugin-package</id>
+    <formats>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>${gvsig.package.info.code}</baseDirectory>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <files>
+        <file>
+            <source>target/package.info</source>
+        </file>
+    </files>
+
+    <fileSets>
+        <fileSet>
+            <directory>target/org.gvsig.gdal.app.mainplugin.common</directory>
+            <outputDirectory>.</outputDirectory>
+            <excludes>
+                <exclude>package.info</exclude>
+            </excludes>
+        </fileSet>
+        <fileSet>
+            <directory>target/native/gdal</directory>
+            <outputDirectory>./gdal</outputDirectory>
+	    <excludes>
+	      <exclude>**/libdl.so.2</exclude>
+	    </excludes>
+      </fileSet>
+        <fileSet>
+            <directory>src/main/resources-plugin</directory>
+            <outputDirectory>.</outputDirectory>
+        </fileSet>
+    </fileSets>
+
+</assembly>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/src/main/resources-plugin/autorun.sh
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/src/main/resources-plugin/autorun.sh	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/src/main/resources-plugin/autorun.sh	(revision 393)
@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+# gvSIG. Desktop Geographic Information System.
+#
+# Copyright (C) 2007-2013 gvSIG Association.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301, USA.
+#
+# For any additional information, do not hesitate to contact us
+# at info AT gvsig.com, or visit our website www.gvsig.com.
+#
+
+
+#
+# Plugin autorun
+#
+
+PLUGIN_NAME=$(basename "$PLUGIN_FOLDER")
+
+logger_info "Using gdal from OSGEO live 9.0 (Ubuntu 14.04.3 x86)"
+
+add_library_path "$PLUGIN_FOLDER/gdal"
+add_classpath "${PLUGIN_FOLDER}/gdal/java/gdal.jar"
+#export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-1.11.2"
+export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-2.2.1"
+
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdaljni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdalconstjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libogrjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libosrjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libproj.so.0"
+
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/src/main/resources-plugin/notes.txt
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/src/main/resources-plugin/notes.txt	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64/src/main/resources-plugin/notes.txt	(revision 393)
@@ -0,0 +1,358 @@
+
+Notes
+========
+
+Este fichero describe el proceso realizado para extraer las librerias nativas
+de GDAL que usa gvSIG.
+
+Para ello, creamos una maquina virtual de VBox, sin disco, montando la iso
+de "OSGEO-live-9.5-amd64" y arrancamos de ella.
+
+Una vez arrancado el sistema, arrancamos la consola y trabajaremos sobre ella.
+
+instalar "libgdal-java"
+-------------------------
+
+<pre>
+user@osgeolive:~$ sudo apt-get install libgdal-java
+Leyendo lista de paquetes... Hecho
+Creando árbol de dependencias
+Leyendo la información de estado... Hecho
+Se instalarán los siguientes paquetes NUEVOS:
+  libgdal-java
+0 actualizados, 1 se instalarán, 0 para eliminar y 7 no actualizados.
+Necesito descargar 337 kB de archivos.
+Se utilizarán 1.210 kB de espacio de disco adicional después de esta operación.
+Des:1 http://ppa.launchpad.net/osgeolive/release-9.5/ubuntu/ trusty/main libgdal-java amd64 1.11.3+dfsg-2~trusty3 [337 kB]
+Descargados 337 kB en 5seg. (57,4 kB/s)
+Seleccionando el paquete libgdal-java previamente no seleccionado.
+(Leyendo la base de datos ... 234658 ficheros o directorios instalados actualmente.)
+Preparing to unpack .../libgdal-java_1.11.3+dfsg-2~trusty3_amd64.deb ...
+Unpacking libgdal-java (1.11.3+dfsg-2~trusty3) ...
+Configurando libgdal-java (1.11.3+dfsg-2~trusty3) ...
+user@osgeolive:~$
+</pre>
+
+Verificar donde estan los jar y so
+------------------------------------
+
+<pre>
+user@osgeolive:/var/cache/apt/archives$ dpkg -c /var/cache/apt/archives/libgdal-java_1.11.3+dfsg-2~trusty3_amd64.deb
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/share/
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/share/java/
+-rw-r--r-- root/root    103685 2016-01-19 00:54 ./usr/share/java/gdal.jar
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/share/doc/
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/share/doc/libgdal-java/
+-rw-r--r-- root/root    125216 2016-01-19 00:24 ./usr/share/doc/libgdal-java/changelog.gz
+-rw-r--r-- root/root     59338 2015-10-21 22:42 ./usr/share/doc/libgdal-java/copyright
+-rw-r--r-- root/root     15569 2016-01-16 16:37 ./usr/share/doc/libgdal-java/changelog.Debian.gz
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/lib/
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/lib/jni/
+-rw-r--r-- root/root     72648 2016-01-19 00:54 ./usr/lib/jni/libosrjni.so.1
+-rw-r--r-- root/root    127064 2016-01-19 00:54 ./usr/lib/jni/libogrjni.so
+-rw-r--r-- root/root     22192 2016-01-19 00:54 ./usr/lib/jni/libgdalconstjni.so
+-rw-r--r-- root/root    212616 2016-01-19 00:54 ./usr/lib/jni/libgdaljni.so
+-rw-r--r-- root/root     22192 2016-01-19 00:54 ./usr/lib/jni/libgdalconstjni.so.1
+-rw-r--r-- root/root    127064 2016-01-19 00:54 ./usr/lib/jni/libogrjni.so.1
+-rw-r--r-- root/root     72648 2016-01-19 00:54 ./usr/lib/jni/libosrjni.so
+-rw-r--r-- root/root    212616 2016-01-19 00:54 ./usr/lib/jni/libgdaljni.so.1
+user@osgeolive:/var/cache/apt/archives$
+</pre>
+
+Extraer las dependencias de los so y el jar
+-----------------------------------------------
+
+user@osgeolive:/var/cache/apt/archives$ cd /usr/lib/jni
+user@osgeolive:/usr/lib/jni$ ls -l
+total 864
+-rw-r--r-- 1 root root  22192 ene 19 00:54 libgdalconstjni.so
+-rw-r--r-- 1 root root  22192 ene 19 00:54 libgdalconstjni.so.1
+-rw-r--r-- 1 root root 212616 ene 19 00:54 libgdaljni.so
+-rw-r--r-- 1 root root 212616 ene 19 00:54 libgdaljni.so.1
+-rw-r--r-- 1 root root 127064 ene 19 00:54 libogrjni.so
+-rw-r--r-- 1 root root 127064 ene 19 00:54 libogrjni.so.1
+-rw-r--r-- 1 root root  72648 ene 19 00:54 libosrjni.so
+-rw-r--r-- 1 root root  72648 ene 19 00:54 libosrjni.so.1
+user@osgeolive:/usr/lib/jni$ ldd *.so | sed -n "s/.* => \(.*\) [(].*/\1/p" | sort | uniq
+
+/lib/x86_64-linux-gnu/libcom_err.so.2
+/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
+/lib/x86_64-linux-gnu/libcrypt.so.1
+/lib/x86_64-linux-gnu/libc.so.6
+/lib/x86_64-linux-gnu/libdl.so.2
+/lib/x86_64-linux-gnu/libexpat.so.1
+/lib/x86_64-linux-gnu/libgcc_s.so.1
+/lib/x86_64-linux-gnu/libgcrypt.so.11
+/lib/x86_64-linux-gnu/libgpg-error.so.0
+/lib/x86_64-linux-gnu/libkeyutils.so.1
+/lib/x86_64-linux-gnu/liblzma.so.5
+/lib/x86_64-linux-gnu/libm.so.6
+/lib/x86_64-linux-gnu/libpcre.so.3
+/lib/x86_64-linux-gnu/libpng12.so.0
+/lib/x86_64-linux-gnu/libpthread.so.0
+/lib/x86_64-linux-gnu/libresolv.so.2
+/lib/x86_64-linux-gnu/libssl.so.1.0.0
+/lib/x86_64-linux-gnu/libz.so.1
+/usr/lib/libarmadillo.so.4
+/usr/lib/libarpack.so.2
+/usr/lib/libblas.so.3
+/usr/lib/libdfalt.so.0
+/usr/lib/libgdal.so.1
+/usr/lib/liblapack.so.3
+/usr/lib/libmfhdfalt.so.0
+/usr/lib/libnetcdf.so.7
+/usr/lib/libogdi.so.3.2
+/usr/lib/libproj.so.0
+/usr/lib/liburiparser.so.1
+/usr/lib/x86_64-linux-gnu/libasn1.so.8
+/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
+/usr/lib/x86_64-linux-gnu/libdapclient.so.3
+/usr/lib/x86_64-linux-gnu/libdap.so.11
+/usr/lib/x86_64-linux-gnu/libepsilon.so.1
+/usr/lib/x86_64-linux-gnu/libffi.so.6
+/usr/lib/x86_64-linux-gnu/libfontconfig.so.1
+/usr/lib/x86_64-linux-gnu/libfreetype.so.6
+/usr/lib/x86_64-linux-gnu/libfreexl.so.1
+/usr/lib/x86_64-linux-gnu/libgeos-3.5.0.so
+/usr/lib/x86_64-linux-gnu/libgeos_c.so.1
+/usr/lib/x86_64-linux-gnu/libgfortran.so.3
+/usr/lib/x86_64-linux-gnu/libgif.so.4
+/usr/lib/x86_64-linux-gnu/libgnutls.so.26
+/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2
+/usr/lib/x86_64-linux-gnu/libgssapi.so.3
+/usr/lib/x86_64-linux-gnu/libhcrypto.so.4
+/usr/lib/x86_64-linux-gnu/libhdf5_hl.so.7
+/usr/lib/x86_64-linux-gnu/libhdf5.so.7
+/usr/lib/x86_64-linux-gnu/libheimbase.so.1
+/usr/lib/x86_64-linux-gnu/libheimntlm.so.0
+/usr/lib/x86_64-linux-gnu/libhx509.so.5
+/usr/lib/x86_64-linux-gnu/libidn.so.11
+/usr/lib/x86_64-linux-gnu/libjasper.so.1
+/usr/lib/x86_64-linux-gnu/libjbig.so.0
+/usr/lib/x86_64-linux-gnu/libjpeg.so.8
+/usr/lib/x86_64-linux-gnu/libk5crypto.so.3
+/usr/lib/x86_64-linux-gnu/libkmlbase.so.0
+/usr/lib/x86_64-linux-gnu/libkmldom.so.0
+/usr/lib/x86_64-linux-gnu/libkmlengine.so.0
+/usr/lib/x86_64-linux-gnu/libkrb5.so.26
+/usr/lib/x86_64-linux-gnu/libkrb5.so.3
+/usr/lib/x86_64-linux-gnu/libkrb5support.so.0
+/usr/lib/x86_64-linux-gnu/liblber-2.4.so.2
+/usr/lib/x86_64-linux-gnu/liblcms2.so.2
+/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2
+/usr/lib/x86_64-linux-gnu/libltdl.so.7
+/usr/lib/x86_64-linux-gnu/libminizip.so.0
+/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18
+/usr/lib/x86_64-linux-gnu/libodbcinst.so.1
+/usr/lib/x86_64-linux-gnu/libodbc.so.1
+/usr/lib/x86_64-linux-gnu/libopenjp2.so.7
+/usr/lib/x86_64-linux-gnu/libp11-kit.so.0
+/usr/lib/x86_64-linux-gnu/libpoppler.so.44
+/usr/lib/x86_64-linux-gnu/libpq.so.5
+/usr/lib/x86_64-linux-gnu/libquadmath.so.0
+/usr/lib/x86_64-linux-gnu/libroken.so.18
+/usr/lib/x86_64-linux-gnu/librtmp.so.0
+/usr/lib/x86_64-linux-gnu/libsasl2.so.2
+/usr/lib/x86_64-linux-gnu/libspatialite.so.5
+/usr/lib/x86_64-linux-gnu/libsqlite3.so.0
+/usr/lib/x86_64-linux-gnu/libstdc++.so.6
+/usr/lib/x86_64-linux-gnu/libtasn1.so.6
+/usr/lib/x86_64-linux-gnu/libtiff.so.5
+/usr/lib/x86_64-linux-gnu/libwebp.so.5
+/usr/lib/x86_64-linux-gnu/libwind.so.0
+/usr/lib/x86_64-linux-gnu/libxerces-c-3.1.so
+/usr/lib/x86_64-linux-gnu/libxml2.so.2
+user@osgeolive:/usr/lib/jni$
+
+user@osgeolive:/usr/lib/jni$ mkdir /tmp/gdal
+user@osgeolive:/usr/lib/jni$ libs=$(ldd *.so | sed -n "s/.* => \(.*\) [(].*/\1/p" | sort | uniq)
+user@osgeolive:/usr/lib/jni$ cp -v $libs /tmp/gdal
+«/lib/x86_64-linux-gnu/libcom_err.so.2» -> «/tmp/gdal/libcom_err.so.2»
+«/lib/x86_64-linux-gnu/libcrypto.so.1.0.0» -> «/tmp/gdal/libcrypto.so.1.0.0»
+«/lib/x86_64-linux-gnu/libcrypt.so.1» -> «/tmp/gdal/libcrypt.so.1»
+«/lib/x86_64-linux-gnu/libc.so.6» -> «/tmp/gdal/libc.so.6»
+«/lib/x86_64-linux-gnu/libdl.so.2» -> «/tmp/gdal/libdl.so.2»
+«/lib/x86_64-linux-gnu/libexpat.so.1» -> «/tmp/gdal/libexpat.so.1»
+«/lib/x86_64-linux-gnu/libgcc_s.so.1» -> «/tmp/gdal/libgcc_s.so.1»
+«/lib/x86_64-linux-gnu/libgcrypt.so.11» -> «/tmp/gdal/libgcrypt.so.11»
+«/lib/x86_64-linux-gnu/libgpg-error.so.0» -> «/tmp/gdal/libgpg-error.so.0»
+«/lib/x86_64-linux-gnu/libkeyutils.so.1» -> «/tmp/gdal/libkeyutils.so.1»
+«/lib/x86_64-linux-gnu/liblzma.so.5» -> «/tmp/gdal/liblzma.so.5»
+«/lib/x86_64-linux-gnu/libm.so.6» -> «/tmp/gdal/libm.so.6»
+«/lib/x86_64-linux-gnu/libpcre.so.3» -> «/tmp/gdal/libpcre.so.3»
+«/lib/x86_64-linux-gnu/libpng12.so.0» -> «/tmp/gdal/libpng12.so.0»
+«/lib/x86_64-linux-gnu/libpthread.so.0» -> «/tmp/gdal/libpthread.so.0»
+«/lib/x86_64-linux-gnu/libresolv.so.2» -> «/tmp/gdal/libresolv.so.2»
+«/lib/x86_64-linux-gnu/libssl.so.1.0.0» -> «/tmp/gdal/libssl.so.1.0.0»
+«/lib/x86_64-linux-gnu/libz.so.1» -> «/tmp/gdal/libz.so.1»
+«/usr/lib/libarmadillo.so.4» -> «/tmp/gdal/libarmadillo.so.4»
+«/usr/lib/libarpack.so.2» -> «/tmp/gdal/libarpack.so.2»
+«/usr/lib/libblas.so.3» -> «/tmp/gdal/libblas.so.3»
+«/usr/lib/libdfalt.so.0» -> «/tmp/gdal/libdfalt.so.0»
+«/usr/lib/libgdal.so.1» -> «/tmp/gdal/libgdal.so.1»
+«/usr/lib/liblapack.so.3» -> «/tmp/gdal/liblapack.so.3»
+«/usr/lib/libmfhdfalt.so.0» -> «/tmp/gdal/libmfhdfalt.so.0»
+«/usr/lib/libnetcdf.so.7» -> «/tmp/gdal/libnetcdf.so.7»
+«/usr/lib/libogdi.so.3.2» -> «/tmp/gdal/libogdi.so.3.2»
+«/usr/lib/libproj.so.0» -> «/tmp/gdal/libproj.so.0»
+«/usr/lib/liburiparser.so.1» -> «/tmp/gdal/liburiparser.so.1»
+«/usr/lib/x86_64-linux-gnu/libasn1.so.8» -> «/tmp/gdal/libasn1.so.8»
+«/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4» -> «/tmp/gdal/libcurl-gnutls.so.4»
+«/usr/lib/x86_64-linux-gnu/libdapclient.so.3» -> «/tmp/gdal/libdapclient.so.3»
+«/usr/lib/x86_64-linux-gnu/libdap.so.11» -> «/tmp/gdal/libdap.so.11»
+«/usr/lib/x86_64-linux-gnu/libepsilon.so.1» -> «/tmp/gdal/libepsilon.so.1»
+«/usr/lib/x86_64-linux-gnu/libffi.so.6» -> «/tmp/gdal/libffi.so.6»
+«/usr/lib/x86_64-linux-gnu/libfontconfig.so.1» -> «/tmp/gdal/libfontconfig.so.1»
+«/usr/lib/x86_64-linux-gnu/libfreetype.so.6» -> «/tmp/gdal/libfreetype.so.6»
+«/usr/lib/x86_64-linux-gnu/libfreexl.so.1» -> «/tmp/gdal/libfreexl.so.1»
+«/usr/lib/x86_64-linux-gnu/libgeos-3.5.0.so» -> «/tmp/gdal/libgeos-3.5.0.so»
+«/usr/lib/x86_64-linux-gnu/libgeos_c.so.1» -> «/tmp/gdal/libgeos_c.so.1»
+«/usr/lib/x86_64-linux-gnu/libgfortran.so.3» -> «/tmp/gdal/libgfortran.so.3»
+«/usr/lib/x86_64-linux-gnu/libgif.so.4» -> «/tmp/gdal/libgif.so.4»
+«/usr/lib/x86_64-linux-gnu/libgnutls.so.26» -> «/tmp/gdal/libgnutls.so.26»
+«/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2» -> «/tmp/gdal/libgssapi_krb5.so.2»
+«/usr/lib/x86_64-linux-gnu/libgssapi.so.3» -> «/tmp/gdal/libgssapi.so.3»
+«/usr/lib/x86_64-linux-gnu/libhcrypto.so.4» -> «/tmp/gdal/libhcrypto.so.4»
+«/usr/lib/x86_64-linux-gnu/libhdf5_hl.so.7» -> «/tmp/gdal/libhdf5_hl.so.7»
+«/usr/lib/x86_64-linux-gnu/libhdf5.so.7» -> «/tmp/gdal/libhdf5.so.7»
+«/usr/lib/x86_64-linux-gnu/libheimbase.so.1» -> «/tmp/gdal/libheimbase.so.1»
+«/usr/lib/x86_64-linux-gnu/libheimntlm.so.0» -> «/tmp/gdal/libheimntlm.so.0»
+«/usr/lib/x86_64-linux-gnu/libhx509.so.5» -> «/tmp/gdal/libhx509.so.5»
+«/usr/lib/x86_64-linux-gnu/libidn.so.11» -> «/tmp/gdal/libidn.so.11»
+«/usr/lib/x86_64-linux-gnu/libjasper.so.1» -> «/tmp/gdal/libjasper.so.1»
+«/usr/lib/x86_64-linux-gnu/libjbig.so.0» -> «/tmp/gdal/libjbig.so.0»
+«/usr/lib/x86_64-linux-gnu/libjpeg.so.8» -> «/tmp/gdal/libjpeg.so.8»
+«/usr/lib/x86_64-linux-gnu/libk5crypto.so.3» -> «/tmp/gdal/libk5crypto.so.3»
+«/usr/lib/x86_64-linux-gnu/libkmlbase.so.0» -> «/tmp/gdal/libkmlbase.so.0»
+«/usr/lib/x86_64-linux-gnu/libkmldom.so.0» -> «/tmp/gdal/libkmldom.so.0»
+«/usr/lib/x86_64-linux-gnu/libkmlengine.so.0» -> «/tmp/gdal/libkmlengine.so.0»
+«/usr/lib/x86_64-linux-gnu/libkrb5.so.26» -> «/tmp/gdal/libkrb5.so.26»
+«/usr/lib/x86_64-linux-gnu/libkrb5.so.3» -> «/tmp/gdal/libkrb5.so.3»
+«/usr/lib/x86_64-linux-gnu/libkrb5support.so.0» -> «/tmp/gdal/libkrb5support.so.0»
+«/usr/lib/x86_64-linux-gnu/liblber-2.4.so.2» -> «/tmp/gdal/liblber-2.4.so.2»
+«/usr/lib/x86_64-linux-gnu/liblcms2.so.2» -> «/tmp/gdal/liblcms2.so.2»
+«/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2» -> «/tmp/gdal/libldap_r-2.4.so.2»
+«/usr/lib/x86_64-linux-gnu/libltdl.so.7» -> «/tmp/gdal/libltdl.so.7»
+«/usr/lib/x86_64-linux-gnu/libminizip.so.0» -> «/tmp/gdal/libminizip.so.0»
+«/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18» -> «/tmp/gdal/libmysqlclient.so.18»
+«/usr/lib/x86_64-linux-gnu/libodbcinst.so.1» -> «/tmp/gdal/libodbcinst.so.1»
+«/usr/lib/x86_64-linux-gnu/libodbc.so.1» -> «/tmp/gdal/libodbc.so.1»
+«/usr/lib/x86_64-linux-gnu/libopenjp2.so.7» -> «/tmp/gdal/libopenjp2.so.7»
+«/usr/lib/x86_64-linux-gnu/libp11-kit.so.0» -> «/tmp/gdal/libp11-kit.so.0»
+«/usr/lib/x86_64-linux-gnu/libpoppler.so.44» -> «/tmp/gdal/libpoppler.so.44»
+«/usr/lib/x86_64-linux-gnu/libpq.so.5» -> «/tmp/gdal/libpq.so.5»
+«/usr/lib/x86_64-linux-gnu/libquadmath.so.0» -> «/tmp/gdal/libquadmath.so.0»
+«/usr/lib/x86_64-linux-gnu/libroken.so.18» -> «/tmp/gdal/libroken.so.18»
+«/usr/lib/x86_64-linux-gnu/librtmp.so.0» -> «/tmp/gdal/librtmp.so.0»
+«/usr/lib/x86_64-linux-gnu/libsasl2.so.2» -> «/tmp/gdal/libsasl2.so.2»
+«/usr/lib/x86_64-linux-gnu/libspatialite.so.5» -> «/tmp/gdal/libspatialite.so.5»
+«/usr/lib/x86_64-linux-gnu/libsqlite3.so.0» -> «/tmp/gdal/libsqlite3.so.0»
+«/usr/lib/x86_64-linux-gnu/libstdc++.so.6» -> «/tmp/gdal/libstdc++.so.6»
+«/usr/lib/x86_64-linux-gnu/libtasn1.so.6» -> «/tmp/gdal/libtasn1.so.6»
+«/usr/lib/x86_64-linux-gnu/libtiff.so.5» -> «/tmp/gdal/libtiff.so.5»
+«/usr/lib/x86_64-linux-gnu/libwebp.so.5» -> «/tmp/gdal/libwebp.so.5»
+«/usr/lib/x86_64-linux-gnu/libwind.so.0» -> «/tmp/gdal/libwind.so.0»
+«/usr/lib/x86_64-linux-gnu/libxerces-c-3.1.so» -> «/tmp/gdal/libxerces-c-3.1.so»
+«/usr/lib/x86_64-linux-gnu/libxml2.so.2» -> «/tmp/gdal/libxml2.so.2»
+user@osgeolive:/usr/lib/jni$
+
+user@osgeolive:/usr/lib/jni$ cd /tmp/gdal
+user@osgeolive:/tmp/gdal$ rm libm.so.6 libc.so.6 libpthread.so.0 libdl.so.2
+user@osgeolive:/tmp/gdal$ cp /usr/lib/jni/* .
+user@osgeolive:/tmp/gdal$ mkdir java
+user@osgeolive:/tmp/gdal$ cd java
+user@osgeolive:/tmp/gdal/java$ cp /usr/share/java/gdal.jar .
+user@osgeolive:/tmp/gdal/java$ cd ..
+user@osgeolive:/tmp/gdal$
+
+Las siguientes librerias no esta claro si deben borrarse o no.
+
+libstdc++.so.6
+libgcc_s.so.1
+libcrypto.so.1.0.0
+libresolv.so.2
+libcrypt.so.1
+libz.so.1
+libssl.so.1.0.0
+
+libkrb5.so.26
+libkrb5.so.3
+libkrb5support.so.0
+
+De momento las dejo.
+
+
+
+Copiar la carpeta GDAL_DATA
+-----------------------------
+
+user@osgeolive:/tmp/gdal$ mkdir data
+user@osgeolive:/tmp/gdal$ cd data
+user@osgeolive:/tmp/gdal/data$ cp /usr/share/gdal/1.11/* .
+user@osgeolive:/tmp/gdal/data$ cd ..
+user@osgeolive:/tmp/gdal$ mkdir proj
+user@osgeolive:/tmp/gdal$ cd proj
+user@osgeolive:/tmp/gdal/proj$ cp /usr/share/proj/* .
+
+Generamos el fichero gdal-version.txt
+-----------------------------------------
+
+user@osgeolive:/tmp/gdal$ ( echo "# OSGEO LiveDVD 9.5" ; set -x ; uname -a ; lsb_release -a ; gdal-config --version ) >gdal-version.txt 2>&1 ; set +x
+user@osgeolive:/tmp/gdal$ cat gdal-version.txt
+# OSGEO LiveDVD 9.5
++ uname -a
+Linux osgeolive 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
++ lsb_release -a
+No LSB modules are available.
+Distributor ID:	Ubuntu
+Description:	Ubuntu 14.04.4 LTS
+Release:	14.04
+Codename:	trusty
++ gdal-config --version
+1.11.3
+user@osgeolive:/tmp/gdal$
+
+Crear el tar
+--------------
+
+user@osgeolive:/tmp/gdal$ tar cvzf ../gdal-1.11.3.0-osgeolive-9.5-ubuntu-14.04.4-amd64.tar.gz .
+user@osgeolive:/tmp/gdal$ cd ..
+user@osgeolive:/tmp$ scp gdal-1.11.3.0-osgeolive-9.5-ubuntu-14.04.4-amd64.tar.gz jjdelcerro@192.168.1.133:/home/jjdelcerro/Descargas
+jjdelcerro@192.168.1.133's password:
+gdal-1.11.3.0-osgeolive-9.5-ubuntu-14.04.4-amd64.tar.gz                                                                              100%   25MB  25.4MB/s   00:01
+user@osgeolive:/tmp$
+
+Todo junto
+-------------
+
+GDAL_VERSION=$(gdal-config --version)
+GDAL_VERSION2=$(expr ${GDAL_VERSION} : "\([0-9]*[.][0-9]*\)[.]")
+sudo apt-get install libgdal-java
+dpkg -c /var/cache/apt/archives/libgdal-java_*.deb
+cd /usr/lib/jni
+mkdir /tmp/gdal
+libs=$(ldd *.so | sed -n "s/.* => \(.*\) [(].*/\1/p" | sort | uniq)
+cp -v $libs /tmp/gdal
+cd /tmp/gdal
+rm libm.so.6 libc.so.6 libpthread.so.0 libdl.so.2
+cp /usr/lib/jni/* .
+mkdir data
+cd data
+cp /usr/share/gdal/${GDAL_VERSION2}/* .
+cd ..
+mkdir proj
+cd proj
+cp /usr/share/proj/* .
+cd ..
+mkdir java
+cd java
+cp /usr/share/java/gdal.jar .
+cd ..
+(
+  . /etc/os-release
+  ARCH=$(uname -i)
+  echo "# $NAME $VERSION" ; set -x ; uname -a ; lsb_release -a ; gdal-config --version ) >gdal-version.txt 2>&1 ; set +x
+  tar cvzf "../gdal-${GDAL_VERSION}.0-${ID}-${VERSION_ID}.0-${ARCH}.tar.gz" .
+)

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64
___________________________________________________________________
Added: svn:ignore
   + target


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:00:55 CET 2019
+buildNumber=67

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/buildNumber.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,64 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+<assembly>
+  <id>gvsig-plugin-package</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.artifactId}</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <files>
+    <file>
+      <source>target/${project.artifactId}-${project.version}.jar</source>
+      <outputDirectory>lib</outputDirectory>
+    </file>
+    <file>
+      <source>target/package.info</source>
+    </file>
+  </files>
+
+  <fileSets>
+    <fileSet>
+      <directory>src/main/resources-plugin</directory>
+      <outputDirectory>.</outputDirectory>
+    </fileSet>
+  </fileSets>
+
+
+  <dependencySets>
+    <dependencySet>
+      <useProjectArtifact>false</useProjectArtifact>
+      <useTransitiveDependencies>false</useTransitiveDependencies>
+      <outputDirectory>lib</outputDirectory>
+		  <includes>
+        <include>org.gvsig:org.gvsig.gdal.app.mainplugin:jar</include>
+		  </includes>
+    </dependencySet>
+  </dependencySets>
+
+</assembly>
+
+

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/assembly/gvsig-plugin-package.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/java/org/gvsig/gdal/app/mainplugin/common/ogr2ogr.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/java/org/gvsig/gdal/app/mainplugin/common/ogr2ogr.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/java/org/gvsig/gdal/app/mainplugin/common/ogr2ogr.java	(revision 393)
@@ -0,0 +1,1742 @@
+/******************************************************************************
+ * $Id$
+ *
+ * Project:  OpenGIS Simple Features Reference Implementation
+ * Purpose:  Java port of a simple client for translating between formats.
+ * Author:   Even Rouault, <even dot rouault at mines dash paris dot org>
+ *
+ * Port from ogr2ogr.cpp by Frank Warmerdam
+ *
+ ******************************************************************************
+ * Copyright (c) 2009, Even Rouault
+ * Copyright (c) 1999, Frank Warmerdam
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ ****************************************************************************/
+package org.gvsig.gdal.app.mainplugin.common;
+
+import java.io.File;
+import java.util.Vector;
+import java.util.Enumeration;
+import java.util.StringTokenizer;
+
+import org.gdal.gdal.gdal;
+import org.gdal.gdal.ProgressCallback;
+import org.gdal.gdal.TermProgressCallback;
+import org.gdal.ogr.ogr;
+import org.gdal.ogr.ogrConstants;
+import org.gdal.ogr.Driver;
+import org.gdal.ogr.DataSource;
+import org.gdal.ogr.Layer;
+import org.gdal.ogr.Feature;
+import org.gdal.ogr.FeatureDefn;
+import org.gdal.ogr.FieldDefn;
+import org.gdal.ogr.Geometry;
+import org.gdal.osr.SpatialReference;
+import org.gdal.osr.CoordinateTransformation;
+
+/* Note : this is the most direct port of ogr2ogr.cpp possible */
+/* It could be made much more java'ish ! */
+
+class GDALScaledProgress extends ProgressCallback
+{
+    private double pctMin;
+    private double pctMax;
+    private ProgressCallback mainCbk;
+
+    public GDALScaledProgress(double pctMin, double pctMax,
+                              ProgressCallback mainCbk)
+    {
+        this.pctMin = pctMin;
+        this.pctMax = pctMax;
+        this.mainCbk = mainCbk;
+    }
+
+    public int run(double dfComplete, String message)
+    {
+        return mainCbk.run(pctMin + dfComplete * (pctMax - pctMin), message);
+    }
+};
+
+
+public class ogr2ogr
+{
+    static boolean bSkipFailures = false;
+    static int nGroupTransactions = 200;
+    static boolean bPreserveFID = false;
+    static final int OGRNullFID = -1;
+    static int nFIDToFetch = OGRNullFID;
+
+    static class GeomOperation
+    {
+        private GeomOperation() {}
+        public static GeomOperation NONE = new GeomOperation();
+        public static GeomOperation SEGMENTIZE = new GeomOperation();
+        public static GeomOperation SIMPLIFY_PRESERVE_TOPOLOGY = new GeomOperation();
+    }
+
+/************************************************************************/
+/*                                main()                                */
+/************************************************************************/
+
+    public static class ExitException extends RuntimeException {
+        public int status = 0;
+        
+        public ExitException(int status) {
+            super();
+            this.status = status;
+        }
+    }
+    
+    public static void System_exit(int status) {
+        throw new ExitException(status);
+    }
+    
+    
+    public static void main(String[] args)
+    {
+        String pszFormat = "ESRI Shapefile";
+        String pszDataSource = null;
+        String pszDestDataSource = null;
+        Vector papszLayers = new Vector();
+        Vector papszDSCO = new Vector(), papszLCO = new Vector();
+        boolean bTransform = false;
+        boolean bAppend = false, bUpdate = false, bOverwrite = false;
+        String pszOutputSRSDef = null;
+        String pszSourceSRSDef = null;
+        SpatialReference poOutputSRS = null;
+        SpatialReference poSourceSRS = null;
+        String pszNewLayerName = null;
+        String pszWHERE = null;
+        Geometry poSpatialFilter = null;
+        String pszSelect;
+        Vector papszSelFields = null;
+        String pszSQLStatement = null;
+        int    eGType = -2;
+        GeomOperation eGeomOp = GeomOperation.NONE;
+        double dfGeomOpParam = 0;
+        Vector papszFieldTypesToString = new Vector();
+        boolean bDisplayProgress = false;
+        ProgressCallback pfnProgress = null;
+        boolean  bClipSrc = false;
+        Geometry poClipSrc = null;
+        String pszClipSrcDS = null;
+        String pszClipSrcSQL = null;
+        String pszClipSrcLayer = null;
+        String pszClipSrcWhere = null;
+        Geometry poClipDst = null;
+        String pszClipDstDS = null;
+        String pszClipDstSQL = null;
+        String pszClipDstLayer = null;
+        String pszClipDstWhere = null;
+        String pszSrcEncoding = null;
+        String pszDstEncoding = null;
+        boolean bExplodeCollections = false;
+        String pszZField = null;
+        DataSource       poODS = null;
+        Driver poDriver = null;
+        DataSource poDS = null;
+        
+        try {
+        ogr.DontUseExceptions();
+
+    /* -------------------------------------------------------------------- */
+    /*      Register format(s).                                             */
+    /* -------------------------------------------------------------------- */
+        if( ogr.GetDriverCount() == 0 )
+            ogr.RegisterAll();
+
+    /* -------------------------------------------------------------------- */
+    /*      Processing command line arguments.                              */
+    /* -------------------------------------------------------------------- */
+        args = ogr.GeneralCmdLineProcessor( args );
+
+        if( args.length < 2 )
+        {
+            Usage();
+            System_exit( -1 );
+        }
+
+        for( int iArg = 0; iArg < args.length; iArg++ )
+        {
+            if( args[iArg].equalsIgnoreCase("-f") && iArg < args.length-1 )
+            {
+                pszFormat = args[++iArg];
+            }
+            else if( args[iArg].equalsIgnoreCase("-dsco") && iArg < args.length-1 )
+            {
+                papszDSCO.addElement(args[++iArg] );
+            }
+            else if( args[iArg].equalsIgnoreCase("-lco") && iArg < args.length-1 )
+            {
+                papszLCO.addElement(args[++iArg] );
+            }
+            else if( args[iArg].equalsIgnoreCase("-preserve_fid") )
+            {
+                bPreserveFID = true;
+            }
+            else if( args[iArg].length() >= 5 && args[iArg].substring(0, 5).equalsIgnoreCase("-skip") )
+            {
+                bSkipFailures = true;
+                nGroupTransactions = 1; /* #2409 */
+            }
+            else if( args[iArg].equalsIgnoreCase("-append") )
+            {
+                bAppend = true;
+                bUpdate = true;
+            }
+            else if( args[iArg].equalsIgnoreCase("-overwrite") )
+            {
+                bOverwrite = true;
+                bUpdate = true;
+            }
+            else if( args[iArg].equalsIgnoreCase("-update") )
+            {
+                bUpdate = true;
+            }
+            else if( args[iArg].equalsIgnoreCase("-fid") && args[iArg+1] != null )
+            {
+                nFIDToFetch = Integer.parseInt(args[++iArg]);
+            }
+            else if( args[iArg].equalsIgnoreCase("-sql") && args[iArg+1] != null )
+            {
+                pszSQLStatement = args[++iArg];
+            }
+            else if( args[iArg].equalsIgnoreCase("-nln") && iArg < args.length-1 )
+            {
+                pszNewLayerName = args[++iArg];
+            }
+            else if( args[iArg].equalsIgnoreCase("-nlt") && iArg < args.length-1 )
+            {
+                if( args[iArg+1].equalsIgnoreCase("NONE") )
+                    eGType = ogr.wkbNone;
+                else if( args[iArg+1].equalsIgnoreCase("GEOMETRY") )
+                    eGType = ogr.wkbUnknown;
+                else if( args[iArg+1].equalsIgnoreCase("POINT") )
+                    eGType = ogr.wkbPoint;
+                else if( args[iArg+1].equalsIgnoreCase("LINESTRING") )
+                    eGType = ogr.wkbLineString;
+                else if( args[iArg+1].equalsIgnoreCase("POLYGON") )
+                    eGType = ogr.wkbPolygon;
+                else if( args[iArg+1].equalsIgnoreCase("GEOMETRYCOLLECTION") )
+                    eGType = ogr.wkbGeometryCollection;
+                else if( args[iArg+1].equalsIgnoreCase("MULTIPOINT") )
+                    eGType = ogr.wkbMultiPoint;
+                else if( args[iArg+1].equalsIgnoreCase("MULTILINESTRING") )
+                    eGType = ogr.wkbMultiLineString;
+                else if( args[iArg+1].equalsIgnoreCase("MULTIPOLYGON") )
+                    eGType = ogr.wkbMultiPolygon;
+                else if( args[iArg+1].equalsIgnoreCase("GEOMETRY25D") )
+                    eGType = ogr.wkbUnknown | ogr.wkb25DBit;
+                else if( args[iArg+1].equalsIgnoreCase("POINT25D") )
+                    eGType = ogr.wkbPoint25D;
+                else if( args[iArg+1].equalsIgnoreCase("LINESTRING25D") )
+                    eGType = ogr.wkbLineString25D;
+                else if( args[iArg+1].equalsIgnoreCase("POLYGON25D") )
+                    eGType = ogr.wkbPolygon25D;
+                else if( args[iArg+1].equalsIgnoreCase("GEOMETRYCOLLECTION25D") )
+                    eGType = ogr.wkbGeometryCollection25D;
+                else if( args[iArg+1].equalsIgnoreCase("MULTIPOINT25D") )
+                    eGType = ogr.wkbMultiPoint25D;
+                else if( args[iArg+1].equalsIgnoreCase("MULTILINESTRING25D") )
+                    eGType = ogr.wkbMultiLineString25D;
+                else if( args[iArg+1].equalsIgnoreCase("MULTIPOLYGON25D") )
+                    eGType = ogr.wkbMultiPolygon25D;
+                else
+                {
+                    System.err.println("-nlt " + args[iArg+1] + ": type not recognised.");
+                    System_exit( 1 );
+                }
+                iArg++;
+            }
+            else if( (args[iArg].equalsIgnoreCase("-tg") ||
+                    args[iArg].equalsIgnoreCase("-gt")) && iArg < args.length-1 )
+            {
+                nGroupTransactions = Integer.parseInt(args[++iArg]);
+            }
+            else if( args[iArg].equalsIgnoreCase("-s_srs") && iArg < args.length-1 )
+            {
+                pszSourceSRSDef = args[++iArg];
+            }
+            else if( args[iArg].equalsIgnoreCase("-a_srs") && iArg < args.length-1 )
+            {
+                pszOutputSRSDef = args[++iArg];
+            }
+            else if( args[iArg].equalsIgnoreCase("-t_srs") && iArg < args.length-1 )
+            {
+                pszOutputSRSDef = args[++iArg];
+                bTransform = true;
+            }
+            else if (args[iArg].equalsIgnoreCase("-spat") && iArg + 4 < args.length)
+            {
+                Geometry oRing = new Geometry(ogrConstants.wkbLinearRing);
+                double xmin = new Double(args[++iArg]).doubleValue();
+                double ymin = new Double(args[++iArg]).doubleValue();
+                double xmax = new Double(args[++iArg]).doubleValue();
+                double ymax = new Double(args[++iArg]).doubleValue();
+                oRing.AddPoint(xmin, ymin);
+                oRing.AddPoint(xmin, ymax);
+                oRing.AddPoint(xmax, ymax);
+                oRing.AddPoint(xmax, ymin);
+                oRing.AddPoint(xmin, ymin);
+
+                poSpatialFilter = new Geometry(ogrConstants.wkbPolygon);
+                poSpatialFilter.AddGeometry(oRing);
+            }
+            else if( args[iArg].equalsIgnoreCase("-where") && args[iArg+1] != null )
+            {
+                pszWHERE = args[++iArg];
+            }
+            else if( args[iArg].equalsIgnoreCase("-select") && args[iArg+1] != null)
+            {
+                pszSelect = args[++iArg];
+                StringTokenizer tokenizer = new StringTokenizer(pszSelect, " ,");
+                papszSelFields = new Vector();
+                while(tokenizer.hasMoreElements())
+                    papszSelFields.addElement(tokenizer.nextToken());
+            }
+            else if( args[iArg].equalsIgnoreCase("-simplify") && iArg < args.length-1 )
+            {
+                eGeomOp = GeomOperation.SIMPLIFY_PRESERVE_TOPOLOGY;
+                dfGeomOpParam = new Double(args[++iArg]).doubleValue();
+            }
+            else if( args[iArg].equalsIgnoreCase("-segmentize") && iArg < args.length-1 )
+            {
+                eGeomOp = GeomOperation.SEGMENTIZE;
+                dfGeomOpParam = new Double(args[++iArg]).doubleValue();
+            }
+            else if( args[iArg].equalsIgnoreCase("-fieldTypeToString") && iArg < args.length-1 )
+            {
+                StringTokenizer tokenizer = new StringTokenizer(args[++iArg], " ,");
+                while(tokenizer.hasMoreElements())
+                {
+                    String token = (String)tokenizer.nextToken();
+                    if (token.equalsIgnoreCase("Integer") ||
+                        token.equalsIgnoreCase("Real") ||
+                        token.equalsIgnoreCase("String") ||
+                        token.equalsIgnoreCase("Date") ||
+                        token.equalsIgnoreCase("Time") ||
+                        token.equalsIgnoreCase("DateTime") ||
+                        token.equalsIgnoreCase("Binary") ||
+                        token.equalsIgnoreCase("IntegerList") ||
+                        token.equalsIgnoreCase("RealList") ||
+                        token.equalsIgnoreCase("StringList"))
+                    {
+                        papszFieldTypesToString.addElement(token);
+                    }
+                    else if (token.equalsIgnoreCase("All"))
+                    {
+                        papszFieldTypesToString = null;
+                        papszFieldTypesToString.addElement("All");
+                        break;
+                    }
+                    else
+                    {
+                        System.err.println("Unhandled type for fieldtypeasstring option : " + token);
+                        Usage();
+                    }
+                }
+            }
+            else if( args[iArg].equalsIgnoreCase("-progress") )
+            {
+                bDisplayProgress = true;
+            }
+            /*else if( args[iArg].equalsIgnoreCase("-wrapdateline") )
+            {
+                bWrapDateline = true;
+            }
+            */
+            else if( args[iArg].equalsIgnoreCase("-clipsrc") && iArg < args.length-1 )
+            {
+                bClipSrc = true;
+                if ( IsNumber(args[iArg+1]) && iArg < args.length - 4 )
+                {
+                    Geometry oRing = new Geometry(ogrConstants.wkbLinearRing);
+                    double xmin = new Double(args[++iArg]).doubleValue();
+                    double ymin = new Double(args[++iArg]).doubleValue();
+                    double xmax = new Double(args[++iArg]).doubleValue();
+                    double ymax = new Double(args[++iArg]).doubleValue();
+                    oRing.AddPoint(xmin, ymin);
+                    oRing.AddPoint(xmin, ymax);
+                    oRing.AddPoint(xmax, ymax);
+                    oRing.AddPoint(xmax, ymin);
+                    oRing.AddPoint(xmin, ymin);
+
+                    poClipSrc = new Geometry(ogrConstants.wkbPolygon);
+                    poClipSrc.AddGeometry(oRing);
+                }
+                else if( (args[iArg+1].length() >= 7 && args[iArg+1].substring(0, 7).equalsIgnoreCase("POLYGON") ) ||
+                         (args[iArg+1].length() >= 12 && args[iArg+1].substring(0, 12).equalsIgnoreCase("MULTIPOLYGON") ) )
+                {
+                    poClipSrc = Geometry.CreateFromWkt(args[iArg+1]);
+                    if (poClipSrc == null)
+                    {
+                        System.err.print("FAILURE: Invalid geometry. Must be a valid POLYGON or MULTIPOLYGON WKT\n\n");
+                        Usage();
+                    }
+                    iArg ++;
+                }
+                else if (args[iArg+1].equalsIgnoreCase("spat_extent") )
+                {
+                    iArg ++;
+                }
+                else
+                {
+                    pszClipSrcDS = args[iArg+1];
+                    iArg ++;
+                }
+            }
+            else if( args[iArg].equalsIgnoreCase("-clipsrcsql") && iArg < args.length-1 )
+            {
+                pszClipSrcSQL = args[iArg+1];
+                iArg ++;
+            }
+            else if( args[iArg].equalsIgnoreCase("-clipsrclayer") && iArg < args.length-1 )
+            {
+                pszClipSrcLayer = args[iArg+1];
+                iArg ++;
+            }
+            else if( args[iArg].equalsIgnoreCase("-clipsrcwhere") && iArg < args.length-1 )
+            {
+                pszClipSrcWhere = args[iArg+1];
+                iArg ++;
+            }
+            else if( args[iArg].equalsIgnoreCase("-clipdst") && iArg < args.length-1 )
+            {
+                if ( IsNumber(args[iArg+1]) && iArg < args.length - 4 )
+                {
+                    Geometry oRing = new Geometry(ogrConstants.wkbLinearRing);
+                    double xmin = new Double(args[++iArg]).doubleValue();
+                    double ymin = new Double(args[++iArg]).doubleValue();
+                    double xmax = new Double(args[++iArg]).doubleValue();
+                    double ymax = new Double(args[++iArg]).doubleValue();
+                    oRing.AddPoint(xmin, ymin);
+                    oRing.AddPoint(xmin, ymax);
+                    oRing.AddPoint(xmax, ymax);
+                    oRing.AddPoint(xmax, ymin);
+                    oRing.AddPoint(xmin, ymin);
+
+                    poClipDst = new Geometry(ogrConstants.wkbPolygon);
+                    poClipDst.AddGeometry(oRing);
+                }
+                else if( (args[iArg+1].length() >= 7 && args[iArg+1].substring(0, 7).equalsIgnoreCase("POLYGON") ) ||
+                         (args[iArg+1].length() >= 12 && args[iArg+1].substring(0, 12).equalsIgnoreCase("MULTIPOLYGON") ) )
+                {
+                    poClipDst = Geometry.CreateFromWkt(args[iArg+1]);
+                    if (poClipDst == null)
+                    {
+                        System.err.print("FAILURE: Invalid geometry. Must be a valid POLYGON or MULTIPOLYGON WKT\n\n");
+                        Usage();
+                    }
+                    iArg ++;
+                }
+                else if (args[iArg+1].equalsIgnoreCase("spat_extent") )
+                {
+                    iArg ++;
+                }
+                else
+                {
+                    pszClipDstDS = args[iArg+1];
+                    iArg ++;
+                }
+            }
+            else if( args[iArg].equalsIgnoreCase("-clipdstsql") && iArg < args.length-1 )
+            {
+                pszClipDstSQL = args[iArg+1];
+                iArg ++;
+            }
+            else if( args[iArg].equalsIgnoreCase("-clipdstlayer") && iArg < args.length-1 )
+            {
+                pszClipDstLayer = args[iArg+1];
+                iArg ++;
+            }
+            else if( args[iArg].equalsIgnoreCase("-clipdstwhere") && iArg < args.length-1 )
+            {
+                pszClipDstWhere = args[iArg+1];
+                iArg ++;
+            }
+            else if( args[iArg].equalsIgnoreCase("-explodecollections") )
+            {
+                bExplodeCollections = true;
+            }
+            else if( args[iArg].equalsIgnoreCase("-zfield") && iArg < args.length-1 )
+            {
+                pszZField = args[iArg+1];
+                iArg ++;
+            }
+            else if( args[iArg].charAt(0) == '-' )
+            {
+                Usage();
+            }
+            else if( pszDestDataSource == null )
+                pszDestDataSource = args[iArg];
+            else if( pszDataSource == null )
+                pszDataSource = args[iArg];
+            else
+                papszLayers.addElement (args[iArg] );
+        }
+
+        if( pszDataSource == null )
+            Usage();
+
+        if( bPreserveFID && bExplodeCollections )
+        {
+            System.err.print("FAILURE: cannot use -preserve_fid and -explodecollections at the same time\n\n" );
+            Usage();
+        }
+
+        if( bClipSrc && pszClipSrcDS != null)
+        {
+            poClipSrc = LoadGeometry(pszClipSrcDS, pszClipSrcSQL, pszClipSrcLayer, pszClipSrcWhere);
+            if (poClipSrc == null)
+            {
+                System.err.print("FAILURE: cannot load source clip geometry\n\n" );
+                Usage();
+            }
+        }
+        else if( bClipSrc && poClipSrc == null )
+        {
+            if (poSpatialFilter != null)
+                poClipSrc = poSpatialFilter.Clone();
+            if (poClipSrc == null)
+            {
+                System.err.print("FAILURE: -clipsrc must be used with -spat option or a\n" +
+                                "bounding box, WKT string or datasource must be specified\n\n");
+                Usage();
+            }
+        }
+
+        if( pszClipDstDS != null)
+        {
+            poClipDst = LoadGeometry(pszClipDstDS, pszClipDstSQL, pszClipDstLayer, pszClipDstWhere);
+            if (poClipDst == null)
+            {
+                System.err.print("FAILURE: cannot load dest clip geometry\n\n" );
+                Usage();
+            }
+        }
+    /* -------------------------------------------------------------------- */
+    /*      Open data source.                                               */
+    /* -------------------------------------------------------------------- */
+
+        poDS = ogr.Open( pszDataSource, false );
+
+    /* -------------------------------------------------------------------- */
+    /*      Report failure                                                  */
+    /* -------------------------------------------------------------------- */
+        if( poDS == null )
+        {
+            System.err.println("FAILURE:\n" +
+                    "Unable to open datasource ` " + pszDataSource + "' with the following drivers.");
+
+            for( int iDriver = 0; iDriver < ogr.GetDriverCount(); iDriver++ )
+            {
+                System.err.println("  . " + ogr.GetDriver(iDriver).GetName() );
+            }
+
+            System_exit( 1 );
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      Try opening the output datasource as an existing, writable      */
+    /* -------------------------------------------------------------------- */
+
+
+        if( bUpdate )
+        {
+            poODS = ogr.Open( pszDestDataSource, true );
+            if( poODS == null )
+            {
+                if (bOverwrite || bAppend)
+                {
+                    poODS = ogr.Open( pszDestDataSource, false );
+                    if ( poODS == null )
+                    {
+                        /* ok the datasource doesn't exist at all */
+                        bUpdate = false;
+                    }
+                    else
+                    {
+                        poODS.delete();
+                        poODS = null;
+                    }
+                }
+
+                if (bUpdate)
+                {
+                    System.err.println("FAILURE:\n" +
+                            "Unable to open existing output datasource `" + pszDestDataSource + "'.");
+                    System_exit( 1 );
+                }
+            }
+
+            else if( papszDSCO.size() > 0 )
+            {
+                System.err.println("WARNING: Datasource creation options ignored since an existing datasource\n" +
+                        "         being updated." );
+            }
+
+            if (poODS != null)
+                poDriver = poODS.GetDriver();
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      Find the output driver.                                         */
+    /* -------------------------------------------------------------------- */
+        if( !bUpdate )
+        {
+            int                  iDriver;
+
+            poDriver = ogr.GetDriverByName(pszFormat);
+            if( poDriver == null )
+            {
+                System.err.println("Unable to find driver `" + pszFormat +"'." );
+                System.err.println( "The following drivers are available:" );
+
+                for( iDriver = 0; iDriver < ogr.GetDriverCount(); iDriver++ )
+                {
+                    System.err.println("  . " + ogr.GetDriver(iDriver).GetName() );
+                }
+                System_exit( 1 );
+            }
+
+            if( poDriver.TestCapability( ogr.ODrCCreateDataSource ) == false )
+            {
+                System.err.println( pszFormat + " driver does not support data source creation.");
+                System_exit( 1 );
+            }
+
+    /* -------------------------------------------------------------------- */
+    /*      Special case to improve user experience when translating        */
+    /*      a datasource with multiple layers into a shapefile. If the      */
+    /*      user gives a target datasource with .shp and it does not exist, */
+    /*      the shapefile driver will try to create a file, but this is not */
+    /*      appropriate because here we have several layers, so create      */
+    /*      a directory instead.                                            */
+    /* -------------------------------------------------------------------- */
+            if (poDriver.GetName().equalsIgnoreCase("ESRI Shapefile") &&
+                pszSQLStatement == null &&
+                (papszLayers.size() > 1 ||
+                 (papszLayers.size() == 0 && poDS.GetLayerCount() > 1)) &&
+                pszNewLayerName == null &&
+                (pszDestDataSource.endsWith(".shp") || pszDestDataSource.endsWith(".SHP")))
+            {
+                File f = new File(pszDestDataSource);
+                if (!f.exists())
+                {
+                    if (!f.mkdir())
+                    {
+                        System.err.println(
+                            "Failed to create directory " + pszDestDataSource + "\n" +
+                            "for shapefile datastore.");
+                        System_exit(1);
+                    }
+                }
+            }
+
+    /* -------------------------------------------------------------------- */
+    /*      Create the output data source.                                  */
+    /* -------------------------------------------------------------------- */
+            poODS = poDriver.CreateDataSource( pszDestDataSource, papszDSCO );
+            if( poODS == null )
+            {
+                System.err.println( pszFormat + " driver failed to create "+ pszDestDataSource );
+                System_exit( 1 );
+            }
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      Parse the output SRS definition if possible.                    */
+    /* -------------------------------------------------------------------- */
+        if( pszOutputSRSDef != null )
+        {
+            poOutputSRS = new SpatialReference();
+            if( poOutputSRS.SetFromUserInput( pszOutputSRSDef ) != 0 )
+            {
+                System.err.println( "Failed to process SRS definition: " + pszOutputSRSDef );
+                System_exit( 1 );
+            }
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      Parse the source SRS definition if possible.                    */
+    /* -------------------------------------------------------------------- */
+        if( pszSourceSRSDef != null )
+        {
+            poSourceSRS = new SpatialReference();
+            if( poSourceSRS.SetFromUserInput( pszSourceSRSDef ) != 0 )
+            {
+                System.err.println( "Failed to process SRS definition: " + pszSourceSRSDef );
+                System_exit( 1 );
+            }
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      Special case for -sql clause.  No source layers required.       */
+    /* -------------------------------------------------------------------- */
+        if( pszSQLStatement != null )
+        {
+            Layer poResultSet;
+
+            if( pszWHERE != null )
+                System.err.println( "-where clause ignored in combination with -sql." );
+            if( papszLayers.size() > 0 )
+                System.err.println( "layer names ignored in combination with -sql." );
+
+            poResultSet = poDS.ExecuteSQL( pszSQLStatement, poSpatialFilter,
+                                            null );
+
+            if( poResultSet != null )
+            {
+                long nCountLayerFeatures = 0;
+                if (bDisplayProgress)
+                {
+                    if (!poResultSet.TestCapability(ogr.OLCFastFeatureCount))
+                    {
+                        System.err.println( "Progress turned off as fast feature count is not available.");
+                        bDisplayProgress = false;
+                    }
+                    else
+                    {
+                        nCountLayerFeatures = poResultSet.GetFeatureCount();
+                        pfnProgress = new TermProgressCallback();
+                    }
+                }
+
+/* -------------------------------------------------------------------- */
+/*      Special case to improve user experience when translating into   */
+/*      single file shapefile and source has only one layer, and that   */
+/*      the layer name isn't specified                                  */
+/* -------------------------------------------------------------------- */
+                if (poDriver.GetName().equalsIgnoreCase("ESRI Shapefile") &&
+                    pszNewLayerName == null)
+                {
+                    File f = new File(pszDestDataSource);
+                    if (f.exists() && f.listFiles() == null)
+                    {
+                        pszNewLayerName = f.getName();
+                        int posPoint = pszNewLayerName.lastIndexOf('.');
+                        if (posPoint != -1)
+                            pszNewLayerName = pszNewLayerName.substring(0, posPoint);
+                    }
+                }
+
+                if( !TranslateLayer( poDS, poResultSet, poODS, papszLCO,
+                                    pszNewLayerName, bTransform, poOutputSRS,
+                                    poSourceSRS, papszSelFields, bAppend, eGType,
+                                    bOverwrite, eGeomOp, dfGeomOpParam, papszFieldTypesToString,
+                                    nCountLayerFeatures, poClipSrc, poClipDst, bExplodeCollections,
+                                    pszZField, pszWHERE, pfnProgress ))
+                {
+                    System.err.println(
+                            "Terminating translation prematurely after failed\n" +
+                            "translation from sql statement." );
+
+                    System_exit( 1 );
+                }
+                poDS.ReleaseResultSet( poResultSet );
+            }
+        }
+        else
+        {
+            int nLayerCount = 0;
+            Layer[] papoLayers = null;
+
+    /* -------------------------------------------------------------------- */
+    /*      Process each data source layer.                                 */
+    /* -------------------------------------------------------------------- */
+            if ( papszLayers.size() == 0)
+            {
+                nLayerCount = poDS.GetLayerCount();
+                papoLayers = new Layer[nLayerCount];
+
+                for( int iLayer = 0;
+                    iLayer < nLayerCount;
+                    iLayer++ )
+                {
+                    Layer        poLayer = poDS.GetLayer(iLayer);
+
+                    if( poLayer == null )
+                    {
+                        System.err.println("FAILURE: Couldn't fetch advertised layer " + iLayer + "!");
+                        System_exit( 1 );
+                    }
+
+                    papoLayers[iLayer] = poLayer;
+                }
+            }
+    /* -------------------------------------------------------------------- */
+    /*      Process specified data source layers.                           */
+    /* -------------------------------------------------------------------- */
+            else
+            {
+                nLayerCount = papszLayers.size();
+                papoLayers = new Layer[nLayerCount];
+
+                for( int iLayer = 0;
+                    iLayer < papszLayers.size();
+                    iLayer++ )
+                {
+                    Layer        poLayer = poDS.GetLayerByName((String)papszLayers.get(iLayer));
+
+                    if( poLayer == null )
+                    {
+                        System.err.println("FAILURE: Couldn't fetch advertised layer " + (String)papszLayers.get(iLayer) + "!");
+                        System_exit( 1 );
+                    }
+
+                    papoLayers[iLayer] = poLayer;
+                }
+            }
+
+/* -------------------------------------------------------------------- */
+/*      Special case to improve user experience when translating into   */
+/*      single file shapefile and source has only one layer, and that   */
+/*      the layer name isn't specified                                  */
+/* -------------------------------------------------------------------- */
+            if (poDriver.GetName().equalsIgnoreCase("ESRI Shapefile") &&
+                nLayerCount == 1 && pszNewLayerName == null)
+            {
+                File f = new File(pszDestDataSource);
+                if (f.exists() && f.listFiles() == null)
+                {
+                    pszNewLayerName = f.getName();
+                    int posPoint = pszNewLayerName.lastIndexOf('.');
+                    if (posPoint != -1)
+                        pszNewLayerName = pszNewLayerName.substring(0, posPoint);
+                }
+            }
+
+            long[] panLayerCountFeatures = new long[nLayerCount];
+            long nCountLayersFeatures = 0;
+            long nAccCountFeatures = 0;
+
+            /* First pass to apply filters and count all features if necessary */
+            for( int iLayer = 0;
+                iLayer < nLayerCount;
+                iLayer++ )
+            {
+                Layer        poLayer = papoLayers[iLayer];
+
+                if( pszWHERE != null )
+                {
+                    if( poLayer.SetAttributeFilter( pszWHERE ) != ogr.OGRERR_NONE )
+                    {
+                        System.err.println("FAILURE: SetAttributeFilter(" + pszWHERE + ") failed.");
+                        if (!bSkipFailures)
+                            System_exit( 1 );
+                    }
+                }
+
+                if( poSpatialFilter != null )
+                    poLayer.SetSpatialFilter( poSpatialFilter );
+
+                if (bDisplayProgress)
+                {
+                    if (!poLayer.TestCapability(ogr.OLCFastFeatureCount))
+                    {
+                        System.err.println("Progress turned off as fast feature count is not available.");
+                        bDisplayProgress = false;
+                    }
+                    else
+                    {
+                        panLayerCountFeatures[iLayer] = poLayer.GetFeatureCount();
+                        nCountLayersFeatures += panLayerCountFeatures[iLayer];
+                    }
+                }
+            }
+
+            /* Second pass to do the real job */
+            for( int iLayer = 0;
+                iLayer < nLayerCount;
+                iLayer++ )
+            {
+                Layer        poLayer = papoLayers[iLayer];
+
+                if (bDisplayProgress)
+                {
+                    pfnProgress = new GDALScaledProgress(
+                            nAccCountFeatures * 1.0 / nCountLayersFeatures,
+                            (nAccCountFeatures + panLayerCountFeatures[iLayer]) * 1.0 / nCountLayersFeatures,
+                            new TermProgressCallback());
+                }
+
+                nAccCountFeatures += panLayerCountFeatures[iLayer];
+
+                if( !TranslateLayer( poDS, poLayer, poODS, papszLCO,
+                                    pszNewLayerName, bTransform, poOutputSRS,
+                                    poSourceSRS, papszSelFields, bAppend, eGType,
+                                    bOverwrite, eGeomOp, dfGeomOpParam, papszFieldTypesToString,
+                                    panLayerCountFeatures[iLayer], poClipSrc, poClipDst, bExplodeCollections,
+                                    pszZField, pszWHERE, pfnProgress)
+                    && !bSkipFailures )
+                {
+                    System.err.println(
+                            "Terminating translation prematurely after failed\n" +
+                            "translation of layer " + poLayer.GetLayerDefn().GetName() + " (use -skipfailures to skip errors)");
+
+                    System_exit( 1 );
+                }
+            }
+        }
+
+        } catch(ExitException ex) {
+            // Do nothing
+        }
+    /* -------------------------------------------------------------------- */
+    /*      Close down.                                                     */
+    /* -------------------------------------------------------------------- */
+        /* We must explicitly destroy the output dataset in order the file */
+        /* to be properly closed ! */
+        if( poODS!=null ) {
+            poODS.delete();
+        }
+        if( poDS!=null ) {
+            poDS.delete();
+        }
+    }
+
+    /************************************************************************/
+    /*                               Usage()                                */
+    /************************************************************************/
+
+    static void Usage()
+
+    {
+        System.out.print( "Usage: ogr2ogr [--help-general] [-skipfailures] [-append] [-update] [-gt n]\n" +
+                "               [-select field_list] [-where restricted_where] \n" +
+                "               [-progress] [-sql <sql statement>] \n" +
+                "               [-spat xmin ymin xmax ymax] [-preserve_fid] [-fid FID]\n" +
+                "               [-a_srs srs_def] [-t_srs srs_def] [-s_srs srs_def]\n" +
+                "               [-f format_name] [-overwrite] [[-dsco NAME=VALUE] ...]\n" +
+                "               [-simplify tolerance]\n" +
+                // "               [-segmentize max_dist] [-fieldTypeToString All|(type1[,type2]*)]\n" +
+                "               [-fieldTypeToString All|(type1[,type2]*)] [-explodecollections]\n" +
+                "               dst_datasource_name src_datasource_name\n" +
+                "               [-lco NAME=VALUE] [-nln name] [-nlt type] [layer [layer ...]]\n" +
+                "\n" +
+                " -f format_name: output file format name, possible values are:\n");
+
+        for( int iDriver = 0; iDriver < ogr.GetDriverCount(); iDriver++ )
+        {
+            Driver poDriver = ogr.GetDriver(iDriver);
+
+            if( poDriver.TestCapability( ogr.ODrCCreateDataSource ) )
+                System.out.print( "     -f \"" + poDriver.GetName() + "\"\n" );
+        }
+
+        System.out.print( " -append: Append to existing layer instead of creating new if it exists\n" +
+                " -overwrite: delete the output layer and recreate it empty\n" +
+                " -update: Open existing output datasource in update mode\n" +
+                " -progress: Display progress on terminal. Only works if input layers have the \"fast feature count\" capability\n" +
+                " -select field_list: Comma-delimited list of fields from input layer to\n" +
+                "                     copy to the new layer (defaults to all)\n" +
+                " -where restricted_where: Attribute query (like SQL WHERE)\n" +
+                " -sql statement: Execute given SQL statement and save result.\n" +
+                " -skipfailures: skip features or layers that fail to convert\n" +
+                " -gt n: group n features per transaction (default 200)\n" +
+                " -spat xmin ymin xmax ymax: spatial query extents\n" +
+                " -simplify tolerance: distance tolerance for simplification.\n" +
+                //" -segmentize max_dist: maximum distance between 2 nodes.\n" +
+                //"                       Used to create intermediate points\n" +
+                " -dsco NAME=VALUE: Dataset creation option (format specific)\n" +
+                " -lco  NAME=VALUE: Layer creation option (format specific)\n" +
+                " -nln name: Assign an alternate name to the new layer\n" +
+                " -nlt type: Force a geometry type for new layer.  One of NONE, GEOMETRY,\n" +
+                "      POINT, LINESTRING, POLYGON, GEOMETRYCOLLECTION, MULTIPOINT,\n" +
+                "      MULTIPOLYGON, or MULTILINESTRING.  Add \"25D\" for 3D layers.\n" +
+                "      Default is type of source layer.\n" +
+                " -fieldTypeToString type1,...: Converts fields of specified types to\n" +
+                "      fields of type string in the new layer. Valid types are : \n" +
+                "      Integer, Real, String, Date, Time, DateTime, Binary, IntegerList, RealList,\n" +
+                "      StringList. Special value All can be used to convert all fields to strings.\n");
+
+        System.out.print(" -a_srs srs_def: Assign an output SRS\n" +
+            " -t_srs srs_def: Reproject/transform to this SRS on output\n" +
+            " -s_srs srs_def: Override source SRS\n" +
+            "\n" +
+            " Srs_def can be a full WKT definition (hard to escape properly),\n" +
+            " or a well known definition (i.e. EPSG:4326) or a file with a WKT\n" +
+            " definition.\n" );
+
+        System_exit( 1 );
+    }
+
+    static int CSLFindString(Vector v, String str)
+    {
+        int i = 0;
+        Enumeration e = v.elements();
+        while(e.hasMoreElements())
+        {
+            String strIter = (String)e.nextElement();
+            if (strIter.equalsIgnoreCase(str))
+                return i;
+            i ++;
+        }
+        return -1;
+    }
+
+    static boolean IsNumber(String pszStr)
+    {
+        try
+        {
+            Double.parseDouble(pszStr);
+            return true;
+        }
+        catch(Exception ex)
+        {
+            return false;
+        }
+    }
+
+    static Geometry LoadGeometry( String pszDS,
+                                  String pszSQL,
+                                  String pszLyr,
+                                  String pszWhere)
+    {
+        DataSource       poDS;
+        Layer            poLyr;
+        Feature          poFeat;
+        Geometry         poGeom = null;
+
+        poDS = ogr.Open( pszDS, false );
+        if (poDS == null)
+            return null;
+
+        if (pszSQL != null)
+            poLyr = poDS.ExecuteSQL( pszSQL, null, null );
+        else if (pszLyr != null)
+            poLyr = poDS.GetLayerByName(pszLyr);
+        else
+            poLyr = poDS.GetLayer(0);
+
+        if (poLyr == null)
+        {
+            System.err.print("Failed to identify source layer from datasource.\n");
+            poDS.delete();
+            return null;
+        }
+
+        if (pszWhere != null)
+            poLyr.SetAttributeFilter(pszWhere);
+
+        while ((poFeat = poLyr.GetNextFeature()) != null)
+        {
+            Geometry poSrcGeom = poFeat.GetGeometryRef();
+            if (poSrcGeom != null)
+            {
+                int eType = wkbFlatten(poSrcGeom.GetGeometryType());
+
+                if (poGeom == null)
+                    poGeom = new Geometry( ogr.wkbMultiPolygon );
+
+                if( eType == ogr.wkbPolygon )
+                    poGeom.AddGeometry( poSrcGeom );
+                else if( eType == ogr.wkbMultiPolygon )
+                {
+                    int iGeom;
+                    int nGeomCount = poSrcGeom.GetGeometryCount();
+
+                    for( iGeom = 0; iGeom < nGeomCount; iGeom++ )
+                    {
+                        poGeom.AddGeometry(poSrcGeom.GetGeometryRef(iGeom) );
+                    }
+                }
+                else
+                {
+                    System.err.print("ERROR: Geometry not of polygon type.\n" );
+                    if( pszSQL != null )
+                        poDS.ReleaseResultSet( poLyr );
+                    poDS.delete();
+                    return null;
+                }
+            }
+        }
+
+        if( pszSQL != null )
+            poDS.ReleaseResultSet( poLyr );
+        poDS.delete();
+
+        return poGeom;
+    }
+
+
+    static int wkbFlatten(int eType)
+    {
+        return eType & (~ogrConstants.wkb25DBit);
+    }
+
+    /************************************************************************/
+    /*                               SetZ()                                 */
+    /************************************************************************/
+    static void SetZ (Geometry poGeom, double dfZ )
+    {
+        if (poGeom == null)
+            return;
+        switch (wkbFlatten(poGeom.GetGeometryType()))
+        {
+            case ogr.wkbPoint:
+                poGeom.SetPoint(0, poGeom.GetX(), poGeom.GetY(), dfZ);
+                break;
+
+            case ogr.wkbLineString:
+            case ogr.wkbLinearRing:
+            {
+                int i;
+                for(i=0;i<poGeom.GetPointCount();i++)
+                    poGeom.SetPoint(i, poGeom.GetX(i), poGeom.GetY(i), dfZ);
+                break;
+            }
+
+            case ogr.wkbPolygon:
+            case ogr.wkbMultiPoint:
+            case ogr.wkbMultiLineString:
+            case ogr.wkbMultiPolygon:
+            case ogr.wkbGeometryCollection:
+            {
+                int i;
+                for(i=0;i<poGeom.GetGeometryCount();i++)
+                    SetZ(poGeom.GetGeometryRef(i), dfZ);
+                break;
+            }
+
+            default:
+                break;
+        }
+    }
+
+
+    /************************************************************************/
+    /*                           TranslateLayer()                           */
+    /************************************************************************/
+
+    static boolean TranslateLayer( DataSource poSrcDS,
+                            Layer poSrcLayer,
+                            DataSource poDstDS,
+                            Vector papszLCO,
+                            String pszNewLayerName,
+                            boolean bTransform,
+                            SpatialReference poOutputSRS,
+                            SpatialReference poSourceSRS,
+                            Vector papszSelFields,
+                            boolean bAppend, int eGType, boolean bOverwrite,
+                            GeomOperation eGeomOp,
+                            double dfGeomOpParam,
+                            Vector papszFieldTypesToString,
+                            long nCountLayerFeatures,
+                            Geometry poClipSrc,
+                            Geometry poClipDst,
+                            boolean bExplodeCollections,
+                            String pszZField,
+                            String pszWHERE,
+                            ProgressCallback pfnProgress)
+
+    {
+        Layer    poDstLayer;
+        FeatureDefn poSrcFDefn;
+        int      eErr;
+        boolean         bForceToPolygon = false;
+        boolean         bForceToMultiPolygon = false;
+        boolean         bForceToMultiLineString = false;
+
+        if( pszNewLayerName == null )
+            pszNewLayerName = poSrcLayer.GetLayerDefn().GetName();
+
+        if( wkbFlatten(eGType) == ogr.wkbPolygon )
+            bForceToPolygon = true;
+        else if( wkbFlatten(eGType) == ogr.wkbMultiPolygon )
+            bForceToMultiPolygon = true;
+        else if( wkbFlatten(eGType) == ogr.wkbMultiLineString )
+            bForceToMultiLineString = true;
+
+    /* -------------------------------------------------------------------- */
+    /*      Setup coordinate transformation if we need it.                  */
+    /* -------------------------------------------------------------------- */
+        CoordinateTransformation poCT = null;
+
+        if( bTransform )
+        {
+            if( poSourceSRS == null )
+                poSourceSRS = poSrcLayer.GetSpatialRef();
+
+            if( poSourceSRS == null )
+            {
+                System.err.println("Can't transform coordinates, source layer has no\n" +
+                        "coordinate system.  Use -s_srs to set one." );
+                System_exit( 1 );
+            }
+
+            /*CPLAssert( null != poSourceSRS );
+            CPLAssert( null != poOutputSRS );*/
+
+            /* New in GDAL 1.10. Before was "new CoordinateTransformation(srs,dst)". */
+            poCT = CoordinateTransformation.CreateCoordinateTransformation( poSourceSRS, poOutputSRS );
+            if( poCT == null )
+            {
+                String pszWKT = null;
+
+                System.err.println("Failed to create coordinate transformation between the\n" +
+                    "following coordinate systems.  This may be because they\n" +
+                    "are not transformable, or because projection services\n" +
+                    "(PROJ.4 DLL/.so) could not be loaded." );
+
+                pszWKT = poSourceSRS.ExportToPrettyWkt( 0 );
+                System.err.println( "Source:\n" + pszWKT );
+
+                pszWKT = poOutputSRS.ExportToPrettyWkt( 0 );
+                System.err.println( "Target:\n" + pszWKT );
+                System_exit( 1 );
+            }
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      Get other info.                                                 */
+    /* -------------------------------------------------------------------- */
+        poSrcFDefn = poSrcLayer.GetLayerDefn();
+
+        if( poOutputSRS == null )
+            poOutputSRS = poSrcLayer.GetSpatialRef();
+
+    /* -------------------------------------------------------------------- */
+    /*      Find the layer.                                                 */
+    /* -------------------------------------------------------------------- */
+
+        /* GetLayerByName() can instantiate layers that would have been */
+        /* 'hidden' otherwise, for example, non-spatial tables in a */
+        /* PostGIS-enabled database, so this apparently useless command is */
+        /* not useless. (#4012) */
+        gdal.PushErrorHandler("CPLQuietErrorHandler");
+        poDstLayer = poDstDS.GetLayerByName(pszNewLayerName);
+        gdal.PopErrorHandler();
+        gdal.ErrorReset();
+
+        int iLayer = -1;
+        if( poDstLayer != null )
+        {
+            int nLayerCount = poDstDS.GetLayerCount();
+            for( iLayer = 0; iLayer < nLayerCount; iLayer++ )
+            {
+                Layer        poLayer = poDstDS.GetLayer(iLayer);
+
+                if( poLayer != null
+                    && poLayer.GetName().equals(poDstLayer.GetName()) )
+                {
+                    break;
+                }
+            }
+
+            if (iLayer == nLayerCount)
+                /* shouldn't happen with an ideal driver */
+                poDstLayer = null;
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      If the user requested overwrite, and we have the layer in       */
+    /*      question we need to delete it now so it will get recreated      */
+    /*      (overwritten).                                                  */
+    /* -------------------------------------------------------------------- */
+        if( poDstLayer != null && bOverwrite )
+        {
+            if( poDstDS.DeleteLayer( iLayer ) != 0 )
+            {
+                System.err.println(
+                        "DeleteLayer() failed when overwrite requested." );
+                return false;
+            }
+            poDstLayer = null;
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      If the layer does not exist, then create it.                    */
+    /* -------------------------------------------------------------------- */
+        if( poDstLayer == null )
+        {
+            if( eGType == -2 )
+            {
+                eGType = poSrcFDefn.GetGeomType();
+
+                if ( bExplodeCollections )
+                {
+                    int n25DBit = eGType & ogr.wkb25DBit;
+                    if (wkbFlatten(eGType) == ogr.wkbMultiPoint)
+                    {
+                        eGType = ogr.wkbPoint | n25DBit;
+                    }
+                    else if (wkbFlatten(eGType) == ogr.wkbMultiLineString)
+                    {
+                        eGType = ogr.wkbLineString | n25DBit;
+                    }
+                    else if (wkbFlatten(eGType) == ogr.wkbMultiPolygon)
+                    {
+                        eGType = ogr.wkbPolygon | n25DBit;
+                    }
+                    else if (wkbFlatten(eGType) == ogr.wkbGeometryCollection)
+                    {
+                        eGType = ogr.wkbUnknown | n25DBit;
+                    }
+                }
+
+                if ( pszZField != null )
+                    eGType |= ogr.wkb25DBit;
+            }
+
+            if( poDstDS.TestCapability( ogr.ODsCCreateLayer ) == false)
+            {
+                System.err.println(
+                "Layer " + pszNewLayerName + "not found, and CreateLayer not supported by driver.");
+                return false;
+            }
+
+            gdal.ErrorReset();
+
+            poDstLayer = poDstDS.CreateLayer( pszNewLayerName, poOutputSRS,
+                                              eGType, papszLCO );
+
+            if( poDstLayer == null )
+                return false;
+
+            bAppend = false;
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      Otherwise we will append to it, if append was requested.        */
+    /* -------------------------------------------------------------------- */
+        else if( !bAppend )
+        {
+            System.err.println("FAILED: Layer " + pszNewLayerName + "already exists, and -append not specified.\n" +
+                                "        Consider using -append, or -overwrite.");
+            return false;
+        }
+        else
+        {
+            if( papszLCO.size() > 0 )
+            {
+                System.err.println("WARNING: Layer creation options ignored since an existing layer is\n" +
+                        "         being appended to." );
+            }
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      Add fields.  Default to copy all field.                         */
+    /*      If only a subset of all fields requested, then output only      */
+    /*      the selected fields, and in the order that they were            */
+    /*      selected.                                                       */
+    /* -------------------------------------------------------------------- */
+        int         iField;
+
+        /* Initialize the index-to-index map to -1's */
+        int nSrcFieldCount = poSrcFDefn.GetFieldCount();
+        int[] panMap = new int [nSrcFieldCount];
+        for( iField=0; iField < nSrcFieldCount; iField++)
+            panMap[iField] = -1;
+
+        FeatureDefn poDstFDefn = poDstLayer.GetLayerDefn();
+
+        if (papszSelFields != null && !bAppend )
+        {
+            int  nDstFieldCount = 0;
+            if (poDstFDefn != null)
+                nDstFieldCount = poDstFDefn.GetFieldCount();
+
+            for( iField=0; iField < papszSelFields.size(); iField++)
+            {
+                int iSrcField = poSrcFDefn.GetFieldIndex((String)papszSelFields.get(iField));
+                if (iSrcField >= 0)
+                {
+                    FieldDefn poSrcFieldDefn = poSrcFDefn.GetFieldDefn(iSrcField);
+                    FieldDefn oFieldDefn = new FieldDefn( poSrcFieldDefn.GetNameRef(),
+                                                poSrcFieldDefn.GetFieldType() );
+                    oFieldDefn.SetWidth( poSrcFieldDefn.GetWidth() );
+                    oFieldDefn.SetPrecision( poSrcFieldDefn.GetPrecision() );
+
+                    if (papszFieldTypesToString != null &&
+                        (CSLFindString(papszFieldTypesToString, "All") != -1 ||
+                        CSLFindString(papszFieldTypesToString,
+                                    ogr.GetFieldTypeName(poSrcFDefn.GetFieldDefn(iSrcField).GetFieldType())) != -1))
+                        oFieldDefn.SetType(ogr.OFTString);
+
+                    /* The field may have been already created at layer creation */
+                    int iDstField = -1;
+                    if (poDstFDefn != null)
+                        iDstField = poDstFDefn.GetFieldIndex(oFieldDefn.GetNameRef());
+                    if (iDstField >= 0)
+                    {
+                        panMap[iSrcField] = iDstField;
+                    }
+                    else if (poDstLayer.CreateField( oFieldDefn ) == 0)
+                    {
+                        /* now that we've created a field, GetLayerDefn() won't return NULL */
+                        if (poDstFDefn == null)
+                            poDstFDefn = poDstLayer.GetLayerDefn();
+
+                        /* Sanity check : if it fails, the driver is buggy */
+                        if (poDstFDefn != null &&
+                            poDstFDefn.GetFieldCount() != nDstFieldCount + 1)
+                        {
+                            System.err.println(
+                                    "The output driver has claimed to have added the " + oFieldDefn.GetNameRef() + " field, but it did not!");
+                        }
+                        else
+                        {
+                            panMap[iSrcField] = nDstFieldCount;
+                            nDstFieldCount ++;
+                        }
+                    }
+
+                }
+                else
+                {
+                    System.err.println("Field '" + (String)papszSelFields.get(iField) + "' not found in source layer.");
+                        if( !bSkipFailures )
+                            return false;
+                }
+            }
+
+            /* -------------------------------------------------------------------- */
+            /* Use SetIgnoredFields() on source layer if available                  */
+            /* -------------------------------------------------------------------- */
+
+            /* Here we differ from the ogr2ogr.cpp implementation since the OGRFeatureQuery */
+            /* isn't mapped to swig. So in that case just don't use SetIgnoredFields() */
+            /* to avoid issue raised in #4015 */
+            if (poSrcLayer.TestCapability(ogr.OLCIgnoreFields) && pszWHERE == null)
+            {
+                int iSrcField;
+                Vector papszIgnoredFields = new Vector();
+                for(iSrcField=0;iSrcField<nSrcFieldCount;iSrcField++)
+                {
+                    String pszFieldName =
+                        poSrcFDefn.GetFieldDefn(iSrcField).GetNameRef();
+                    boolean bFieldRequested = false;
+                    for( iField=0; iField < papszSelFields.size(); iField++)
+                    {
+                        if (pszFieldName.equalsIgnoreCase((String)papszSelFields.get(iField)))
+                        {
+                            bFieldRequested = true;
+                            break;
+                        }
+                    }
+
+                    if (pszZField != null && pszFieldName.equalsIgnoreCase(pszZField))
+                        bFieldRequested = true;
+
+                    /* If source field not requested, add it to ignored files list */
+                    if (!bFieldRequested)
+                        papszIgnoredFields.addElement(pszFieldName);
+                }
+                poSrcLayer.SetIgnoredFields(papszIgnoredFields);
+            }
+        }
+        else if( !bAppend )
+        {
+            int nDstFieldCount = 0;
+            if (poDstFDefn != null)
+                nDstFieldCount = poDstFDefn.GetFieldCount();
+            for( iField = 0; iField < nSrcFieldCount; iField++ )
+            {
+                FieldDefn poSrcFieldDefn = poSrcFDefn.GetFieldDefn(iField);
+                FieldDefn oFieldDefn = new FieldDefn( poSrcFieldDefn.GetNameRef(),
+                                            poSrcFieldDefn.GetFieldType() );
+                oFieldDefn.SetWidth( poSrcFieldDefn.GetWidth() );
+                oFieldDefn.SetPrecision( poSrcFieldDefn.GetPrecision() );
+
+                if (papszFieldTypesToString != null &&
+                    (CSLFindString(papszFieldTypesToString, "All") != -1 ||
+                    CSLFindString(papszFieldTypesToString,
+                                ogr.GetFieldTypeName(poSrcFDefn.GetFieldDefn(iField).GetFieldType())) != -1))
+                    oFieldDefn.SetType(ogr.OFTString);
+
+                /* The field may have been already created at layer creation */
+                int iDstField = -1;
+                if (poDstFDefn != null)
+                    iDstField = poDstFDefn.GetFieldIndex(oFieldDefn.GetNameRef());
+                if (iDstField >= 0)
+                {
+                    panMap[iField] = iDstField;
+                }
+                else if (poDstLayer.CreateField( oFieldDefn ) == 0)
+                {
+                    /* now that we've created a field, GetLayerDefn() won't return NULL */
+                    if (poDstFDefn == null)
+                        poDstFDefn = poDstLayer.GetLayerDefn();
+
+                    /* Sanity check : if it fails, the driver is buggy */
+                    if (poDstFDefn != null &&
+                        poDstFDefn.GetFieldCount() != nDstFieldCount + 1)
+                    {
+                        System.err.println(
+                                "The output driver has claimed to have added the " + oFieldDefn.GetNameRef() + " field, but it did not!");
+                    }
+                    else
+                    {
+                        panMap[iField] = nDstFieldCount;
+                        nDstFieldCount ++;
+                    }
+                }
+            }
+        }
+        else
+        {
+            /* For an existing layer, build the map by fetching the index in the destination */
+            /* layer for each source field */
+            if (poDstFDefn == null)
+            {
+                System.err.println("poDstFDefn == NULL.\n" );
+                return false;
+            }
+
+            for( iField = 0; iField < nSrcFieldCount; iField++ )
+            {
+                FieldDefn poSrcFieldDefn = poSrcFDefn.GetFieldDefn(iField);
+                int iDstField = poDstFDefn.GetFieldIndex(poSrcFieldDefn.GetNameRef());
+                if (iDstField >= 0)
+                    panMap[iField] = iDstField;
+            }
+        }
+
+    /* -------------------------------------------------------------------- */
+    /*      Transfer features.                                              */
+    /* -------------------------------------------------------------------- */
+        Feature  poFeature;
+        int         nFeaturesInTransaction = 0;
+        long        nCount = 0;
+
+        int iSrcZField = -1;
+        if (pszZField != null)
+        {
+            iSrcZField = poSrcFDefn.GetFieldIndex(pszZField);
+        }
+
+        poSrcLayer.ResetReading();
+
+        if( nGroupTransactions > 0)
+            poDstLayer.StartTransaction();
+
+        while( true )
+        {
+            Feature      poDstFeature = null;
+
+            if( nFIDToFetch != OGRNullFID )
+            {
+                // Only fetch feature on first pass.
+                if( nFeaturesInTransaction == 0 )
+                    poFeature = poSrcLayer.GetFeature(nFIDToFetch);
+                else
+                    poFeature = null;
+            }
+            else
+                poFeature = poSrcLayer.GetNextFeature();
+
+            if( poFeature == null )
+                break;
+
+            int nParts = 0;
+            int nIters = 1;
+            if (bExplodeCollections)
+            {
+                Geometry poSrcGeometry = poFeature.GetGeometryRef();
+                if (poSrcGeometry != null)
+                {
+                    switch (wkbFlatten(poSrcGeometry.GetGeometryType()))
+                    {
+                        case ogr.wkbMultiPoint:
+                        case ogr.wkbMultiLineString:
+                        case ogr.wkbMultiPolygon:
+                        case ogr.wkbGeometryCollection:
+                            nParts = poSrcGeometry.GetGeometryCount();
+                            nIters = nParts;
+                            if (nIters == 0)
+                                nIters = 1;
+                        default:
+                            break;
+                    }
+                }
+            }
+
+            for(int iPart = 0; iPart < nIters; iPart++)
+            {
+
+                if( ++nFeaturesInTransaction == nGroupTransactions )
+                {
+                    poDstLayer.CommitTransaction();
+                    poDstLayer.StartTransaction();
+                    nFeaturesInTransaction = 0;
+                }
+
+                gdal.ErrorReset();
+                poDstFeature = new Feature( poDstLayer.GetLayerDefn() );
+
+                if( poDstFeature.SetFromWithMap( poFeature, 1, panMap ) != 0 )
+                {
+                    if( nGroupTransactions > 0)
+                        poDstLayer.CommitTransaction();
+
+                    System.err.println(
+                            "Unable to translate feature " + poFeature.GetFID() + " from layer " +
+                            poSrcFDefn.GetName() );
+
+                    poFeature.delete();
+                    poFeature = null;
+                    poDstFeature.delete();
+                    poDstFeature = null;
+                    return false;
+                }
+
+                if( bPreserveFID )
+                    poDstFeature.SetFID( poFeature.GetFID() );
+
+                Geometry poDstGeometry = poDstFeature.GetGeometryRef();
+                if (poDstGeometry != null)
+                {
+                    if (nParts > 0)
+                    {
+                        /* For -explodecollections, extract the iPart(th) of the geometry */
+                        Geometry poPart = poDstGeometry.GetGeometryRef(iPart).Clone();
+                        poDstFeature.SetGeometryDirectly(poPart);
+                        poDstGeometry = poPart;
+                    }
+
+                    if (iSrcZField != -1)
+                    {
+                        SetZ(poDstGeometry, poFeature.GetFieldAsDouble(iSrcZField));
+                        /* This will correct the coordinate dimension to 3 */
+                        Geometry poDupGeometry = poDstGeometry.Clone();
+                        poDstFeature.SetGeometryDirectly(poDupGeometry);
+                        poDstGeometry = poDupGeometry;
+                    }
+
+                    if (eGeomOp == GeomOperation.SEGMENTIZE)
+                    {
+                /*if (poDstFeature.GetGeometryRef() != null && dfGeomOpParam > 0)
+                    poDstFeature.GetGeometryRef().segmentize(dfGeomOpParam);*/
+                    }
+                    else if (eGeomOp == GeomOperation.SIMPLIFY_PRESERVE_TOPOLOGY && dfGeomOpParam > 0)
+                    {
+                        Geometry poNewGeom = poDstGeometry.SimplifyPreserveTopology(dfGeomOpParam);
+                        if (poNewGeom != null)
+                        {
+                            poDstFeature.SetGeometryDirectly(poNewGeom);
+                            poDstGeometry = poNewGeom;
+                        }
+                    }
+
+                    if (poClipSrc != null)
+                    {
+                        Geometry poClipped = poDstGeometry.Intersection(poClipSrc);
+                        if (poClipped == null || poClipped.IsEmpty())
+                        {
+                            /* Report progress */
+                            nCount ++;
+                            if (pfnProgress != null)
+                                pfnProgress.run(nCount * 1.0 / nCountLayerFeatures, "");
+                            poDstFeature.delete();
+                            continue;
+                        }
+                        poDstFeature.SetGeometryDirectly(poClipped);
+                        poDstGeometry = poClipped;
+                    }
+
+                    if( poCT != null )
+                    {
+                        eErr = poDstGeometry.Transform( poCT );
+                        if( eErr != 0 )
+                        {
+                            if( nGroupTransactions > 0)
+                                poDstLayer.CommitTransaction();
+
+                            System.err.println("Failed to reproject feature" + poFeature.GetFID() + " (geometry probably out of source or destination SRS).");
+                            if( !bSkipFailures )
+                            {
+                                poFeature.delete();
+                                poFeature = null;
+                                poDstFeature.delete();
+                                poDstFeature = null;
+                                return false;
+                            }
+                        }
+                    }
+                    else if (poOutputSRS != null)
+                    {
+                        poDstGeometry.AssignSpatialReference(poOutputSRS);
+                    }
+
+                    if (poClipDst != null)
+                    {
+                        Geometry poClipped = poDstGeometry.Intersection(poClipDst);
+                        if (poClipped == null || poClipped.IsEmpty())
+                        {
+                            /* Report progress */
+                            nCount ++;
+                            if (pfnProgress != null)
+                                pfnProgress.run(nCount * 1.0 / nCountLayerFeatures, "");
+                            poDstFeature.delete();
+                            continue;
+                        }
+                        poDstFeature.SetGeometryDirectly(poClipped);
+                        poDstGeometry = poClipped;
+                    }
+
+                    if( bForceToPolygon )
+                    {
+                        poDstFeature.SetGeometryDirectly(ogr.ForceToPolygon(poDstGeometry));
+                    }
+
+                    else if( bForceToMultiPolygon )
+                    {
+                        poDstFeature.SetGeometryDirectly(ogr.ForceToMultiPolygon(poDstGeometry));
+                    }
+
+                    else if ( bForceToMultiLineString )
+                    {
+                        poDstFeature.SetGeometryDirectly(ogr.ForceToMultiLineString(poDstGeometry));
+                    }
+                }
+
+                gdal.ErrorReset();
+                if( poDstLayer.CreateFeature( poDstFeature ) != 0
+                    && !bSkipFailures )
+                {
+                    if( nGroupTransactions > 0 )
+                        poDstLayer.RollbackTransaction();
+
+                    poDstFeature.delete();
+                    poDstFeature = null;
+                    return false;
+                }
+
+                poDstFeature.delete();
+                poDstFeature = null;
+            }
+
+            poFeature.delete();
+            poFeature = null;
+
+            /* Report progress */
+            nCount ++;
+            if (pfnProgress != null)
+                pfnProgress.run(nCount * 1.0 / nCountLayerFeatures, "");
+
+        }
+
+        if( nGroupTransactions > 0 )
+            poDstLayer.CommitTransaction();
+
+        return true;
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/java/org/gvsig/gdal/app/mainplugin/common/GdalExtension.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/java/org/gvsig/gdal/app/mainplugin/common/GdalExtension.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/java/org/gvsig/gdal/app/mainplugin/common/GdalExtension.java	(revision 393)
@@ -0,0 +1,47 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+package org.gvsig.gdal.app.mainplugin.common;
+
+import org.gvsig.andami.plugins.Extension;
+
+/**
+ * Extension to add Gdal library support
+ *
+ * @author Nacho Brodin (nachobrodin@gmail.com)
+ */
+public class GdalExtension extends Extension {
+
+	public void execute(String actionCommand) {
+	}
+
+	public void initialize() {
+	}
+	
+	public boolean isEnabled() {
+		return false;
+	}
+
+	public boolean isVisible() {
+		return false;
+	}
+
+}
\ No newline at end of file

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/java/org/gvsig/gdal/app/mainplugin/common/GdalExtension.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/resources-plugin/config.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/resources-plugin/config.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/resources-plugin/config.xml	(revision 393)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<plugin-config>
+	<libraries library-dir="lib"/>
+	<resourceBundle name="text"/>
+	<extensions>
+		<extension class-name="org.gvsig.gdal.app.mainplugin.common.GdalExtension"
+			description=""
+			active="true"
+			priority="1">
+		</extension>
+	</extensions>
+</plugin-config>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/resources-plugin/config.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/resources-plugin/readme.txt
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/resources-plugin/readme.txt	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/src/main/resources-plugin/readme.txt	(revision 393)
@@ -0,0 +1,13 @@
+
+Actualmente gvSIG usa GDAL 1.11+ .
+
+Podemos encontrar documentacion sobre esta version de GDAL en:
+
+http://gdal.org/1.11/index.html
+
+Y sobre los formatos en:
+
+- Formatos raster: http://gdal.org/1.11/formats_list.html
+
+- Formatos vectorial: http://gdal.org/1.11/ogr/ogr_formats.html
+
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/pom.xml	(revision 393)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name>
+    <description>Gdal bindings for gvSIG.</description>
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+        <version>1.0.60</version>
+    </parent>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.andami</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+	
+    <properties>
+        <!-- Control the deploy of the plugin in gvsig.product.folder.path/gvSIG/extensiones -->
+        <gvsig.install.plugin>false</gvsig.install.plugin>
+        <!--  Control the deploy of the plugin package in gvsig.product.folder.path/install -->
+        <gvsig.install.plugin.package>false</gvsig.install.plugin.package>
+    </properties>		
+</project>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.common
___________________________________________________________________
Added: svn:ignore
   + target

.classpath

.project

.settings


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:01:27 CET 2019
+buildNumber=66

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/buildNumber.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,60 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+<assembly>
+    <id>gvsig-plugin-package</id>
+    <formats>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>${gvsig.package.info.code}</baseDirectory>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <files>
+        <file>
+            <source>target/package.info</source>
+        </file>
+    </files>
+
+    <fileSets>
+        <fileSet>
+            <directory>target/org.gvsig.gdal.app.mainplugin.common</directory>
+            <outputDirectory>.</outputDirectory>
+            <excludes>
+                <exclude>package.info</exclude>
+            </excludes>
+        </fileSet>
+        <fileSet>
+            <directory>target/native/gdal</directory>
+            <outputDirectory>gdal</outputDirectory>
+        </fileSet>
+        <fileSet>
+            <directory>src/main/resources-plugin</directory>
+            <outputDirectory>.</outputDirectory>
+        </fileSet>
+    </fileSets>
+
+</assembly>
+
+
+

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/src/main/assembly/gvsig-plugin-package.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/src/main/resources-plugin/autorun.sh
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/src/main/resources-plugin/autorun.sh	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/src/main/resources-plugin/autorun.sh	(revision 393)
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# gvSIG. Desktop Geographic Information System.
+#
+# Copyright (C) 2007-2013 gvSIG Association.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301, USA.
+#
+# For any additional information, do not hesitate to contact us
+# at info AT gvsig.com, or visit our website www.gvsig.com.
+#
+
+
+#
+# Plugin autorun
+#
+
+PLUGIN_NAME=$(basename "$PLUGIN_FOLDER")
+
+gdal_init() {
+    logger_info "Using gdal from release-1800-x64-gdal-1-11-3-mapserver-6-4-2"
+    logger_info "http://www.gisinternals.com/query.html?content=filelist&file=release-1800-x64-gdal-1-11-3-mapserver-6-4-2.zip"
+
+    SDK_ROOT="$PLUGIN_FOLDER/gdal"
+    add_library_path "$SDK_ROOT/bin"
+    add_library_path "$SDK_ROOT/bin/gdal/java"
+
+    add_classpath "$SDK_ROOT/bin/gdal/java/gdal.jar"
+
+    #export GDAL_DATA="$SDK_ROOT/bin/gdal-data-1.11.3"
+    export GDAL_DATA="$SDK_ROOT/bin/gdal-data-2.2.1"
+
+    export GDAL_DRIVER_PATH="$SDK_ROOT/bin/gdal/plugins;$SDK_ROOT/bin/gdal/plugins-optional"
+    export PYTHONPATH="$SDK_ROOT/bin/gdal/python;$SDK_ROOT/bin/ms/python"
+    export PROJ_LIB="$SDK_ROOT/bin/gdal/proj/SHARE"
+
+    list_shared_library_dependencies "$SDK_ROOT/bin/gdal/java/gdaljni.dll"
+    list_shared_library_dependencies "$SDK_ROOT/bin/gdal/java/gdalconstjni.dll"
+    list_shared_library_dependencies "$SDK_ROOT/bin/gdal/java/ogrjni.dll"
+    list_shared_library_dependencies "$SDK_ROOT/bin/gdal/java/osrjni.dll"
+    list_shared_library_dependencies "$SDK_ROOT/bin/proj.dll"
+}
+
+gdal_init
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/pom.xml	(revision 393)
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal.app.mainplugin.win.x86_64</artifactId>
+    <packaging>jar</packaging>
+
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+        <version>1.0.60</version>
+    </parent>
+
+    <properties>
+        <gvsig.package.info.operatingSystem>win</gvsig.package.info.operatingSystem>
+        <gvsig.package.info.architecture>x86_64</gvsig.package.info.architecture>
+
+        <gdal.classifier>win-x86_64-dynamic</gdal.classifier>
+        <gdal.version>1.11.3.1800.2</gdal.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+            <type>zip</type>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+            <type>jar</type>
+        </dependency>
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <version>${gdal.version}</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <classifier>${gdal.classifier}</classifier>
+            <version>${gdal.version}</version>
+            <scope>runtime</scope>
+            <type>tar.gz</type>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unpack</id>
+                        <phase>process-sources</phase>
+                        <goals>
+                            <goal>unpack</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>org.gvsig</groupId>
+                                    <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                                    <type>zip</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>target</outputDirectory>
+                                </artifactItem>
+                                <artifactItem>
+                                    <groupId>org.gdal</groupId>
+                                    <artifactId>gdal</artifactId>
+                                    <classifier>${gdal.classifier}</classifier>
+                                    <version>${gdal.version}</version>
+                                    <type>tar.gz</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>target/native/gdal</outputDirectory>
+                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
+  <profiles>
+    <profile>
+      <id>install_plugin_for_windows_x86_64</id>
+      <activation>
+        <os>
+          <family>Windows</family>
+          <arch>x86_64</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+    <profile>
+      <id>install_plugin_for_windows_amd64</id>
+      <activation>
+        <os>
+          <family>Windows</family>
+          <arch>amd64</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+  </profiles>
+
+</project>
+

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.win.x86_64
___________________________________________________________________
Added: svn:ignore
   + target

.classpath

.project

.settings


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/src/main/resources-plugin/autorun.sh
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/src/main/resources-plugin/autorun.sh	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/src/main/resources-plugin/autorun.sh	(revision 393)
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# gvSIG. Desktop Geographic Information System.
+#
+# Copyright (C) 2007-2013 gvSIG Association.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301, USA.
+#
+# For any additional information, do not hesitate to contact us
+# at info AT gvsig.com, or visit our website www.gvsig.com.
+#
+
+
+#
+# Plugin autorun
+#
+
+PLUGIN_NAME=$(basename "$PLUGIN_FOLDER")
+
+logger_info "Using gdal from OSGEO live 9.0 (Ubuntu 14.04.3 x86_64)"
+
+add_library_path "${PLUGIN_FOLDER}/gdal"
+add_classpath "${PLUGIN_FOLDER}/gdal/java/gdal.jar"
+#export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-1.11.2"
+export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-2.2.1"
+
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdaljni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdalconstjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libogrjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libosrjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libproj.so.0"
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,61 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+
+<assembly>
+  <id>gvsig-plugin-package</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${gvsig.package.info.code}</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <files>
+    <file>
+      <source>target/package.info</source>
+    </file>
+  </files>
+
+  <fileSets>
+    <fileSet>
+      <directory>target/org.gvsig.gdal.app.mainplugin.common</directory>
+      <outputDirectory>.</outputDirectory>
+      <excludes>
+      	<exclude>package.info</exclude>
+      </excludes>
+    </fileSet>
+    <fileSet>
+      <directory>target/native/gdal</directory>
+      <outputDirectory>./gdal</outputDirectory>
+      <excludes>
+        <exclude>**/libdl.so.2</exclude>
+      </excludes>
+    </fileSet>
+    <fileSet>
+      <directory>src/main/resources-plugin</directory>
+      <outputDirectory>.</outputDirectory>
+    </fileSet>
+  </fileSets>
+
+</assembly>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/pom.xml	(revision 393)
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86</artifactId>
+    <packaging>jar</packaging>
+
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+        <version>1.0.60</version>
+    </parent>
+
+
+    <properties>
+        <gvsig.package.info.operatingSystem>lin_ubuntu_14.04</gvsig.package.info.operatingSystem>
+        <gvsig.package.info.architecture>x86</gvsig.package.info.architecture>
+
+        <gdal.classifier>osgeolive-9.0-ubuntu-14.04.3-i686</gdal.classifier>
+        <gdal.version>1.11.2.5</gdal.version>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.gdal</groupId>
+                <artifactId>gdal</artifactId>
+                <version>${gdal.version}</version>
+                <classifier>${gdal.classifier}</classifier>
+                <scope>runtime</scope>
+                <type>tar.gz</type>
+            </dependency>
+            <dependency>
+                <groupId>org.gdal</groupId>
+                <artifactId>gdal</artifactId>
+                <version>${gdal.version}</version>
+                <!--
+                <classifier>${gdal.classifier}</classifier>
+                -->
+                <scope>runtime</scope>
+                <type>jar</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+            <type>zip</type>
+        </dependency>
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <classifier>${gdal.classifier}</classifier>
+            <scope>runtime</scope>
+            <type>tar.gz</type>
+        </dependency>
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <!--
+            <classifier>${gdal.classifier}</classifier>
+            -->
+            <scope>runtime</scope>
+            <type>jar</type>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unpack</id>
+                        <phase>process-sources</phase>
+                        <goals>
+                            <goal>unpack</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>org.gvsig</groupId>
+                                    <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                                    <type>zip</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>target</outputDirectory>
+                                </artifactItem>
+                                <artifactItem>
+                                    <groupId>org.gdal</groupId>
+                                    <artifactId>gdal</artifactId>
+                                    <version>${gdal.version}</version>
+                                    <classifier>${gdal.classifier}</classifier>
+                                    <type>tar.gz</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>target/native/gdal</outputDirectory>
+                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
+  <profiles>
+    <profile>
+      <id>install_plugin_for_linux_x86</id>
+      <activation>
+        <os>
+          <family>Linux</family>
+          <arch>x86</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+  </profiles>
+
+</project>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:00:56 CET 2019
+buildNumber=64

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86
___________________________________________________________________
Added: svn:ignore
   + target


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/pom.xml	(revision 393)
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal.app.mainplugin.all.all</artifactId>
+    <packaging>jar</packaging>
+   
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+        <version>1.0.60</version>
+    </parent>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+            <type>zip</type>
+        </dependency>      
+        <dependency>
+            <groupId>org.gdal</groupId>
+            <artifactId>gdal</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+    </dependencies>
+  
+    <properties>
+        <!-- Package info property values -->
+        <!-- Default values in org.gvsig.desktop -->
+        <gvsig.package.info.operatingSystem>all</gvsig.package.info.operatingSystem>
+        <gvsig.package.info.architecture>all</gvsig.package.info.architecture>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+        <gvsig.install.plugin.package>true</gvsig.install.plugin.package>    
+    </properties>
+     	 
+    <build>
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unpack</id>
+                        <phase>process-sources</phase>
+                        <goals>
+                            <goal>unpack</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>org.gvsig</groupId>
+                                    <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                                    <type>zip</type>
+                                    <overWrite>true</overWrite>
+                                    <outputDirectory>target</outputDirectory>
+                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+  
+</project>
+

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:00:55 CET 2019
+buildNumber=67

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/buildNumber.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/resources-plugin/autorun.sh
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/resources-plugin/autorun.sh	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/resources-plugin/autorun.sh	(revision 393)
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# gvSIG. Desktop Geographic Information System.
+#
+# Copyright (C) 2007-2013 gvSIG Association.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301, USA.
+#
+# For any additional information, do not hesitate to contact us
+# at info AT gvsig.com, or visit our website www.gvsig.com.
+#
+
+
+#
+# Plugin autorun
+#
+
+PLUGIN_NAME=$(basename "$PLUGIN_FOLDER")
+
+logger_info "Using gdal installed in the Operating System"
+
+# For Ubuntu
+logger_info "In Ubuntu systems require: proj-bin, gdal-bin (1.11), libjdal-java" 
+# Add path to .so of jni that not are in the library path
+add_library_path "/usr/lib/jni"
+# Add to the class path the jar of gdal
+add_classpath "/usr/share/java/gdal.jar"
+export GDAL_DATA=/usr/share/gdal/1.1*/
+
+
+# library path for redhat/fedora
+add_library_path "/usr/lib/java/gdal"
+
+
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,68 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+<assembly>
+    <id>gvsig-plugin-package</id>
+    <formats>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>${gvsig.package.info.code}</baseDirectory>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <files>
+        <file>
+            <source>target/package.info</source>
+        </file>
+    </files>
+
+    <fileSets>
+        <fileSet>
+            <directory>target/org.gvsig.gdal.app.mainplugin.common</directory>
+            <outputDirectory>.</outputDirectory>
+            <excludes>
+                <exclude>package.info</exclude>
+            </excludes>
+        </fileSet>
+        <fileSet>
+            <directory>src/main/resources-plugin</directory>
+            <outputDirectory>.</outputDirectory>
+        </fileSet>
+    </fileSets>
+
+
+    <dependencySets>
+        <dependencySet>
+            <useProjectArtifact>false</useProjectArtifact>
+            <useTransitiveDependencies>false</useTransitiveDependencies>
+            <outputDirectory>lib</outputDirectory>
+            <includes>
+                <include>org.gdal:gdal:jar</include>
+            </includes>
+        </dependencySet>
+    </dependencySets>
+
+</assembly>
+
+
+

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/assembly/gvsig-plugin-package.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/java/org/gvsig/gdal/app/mainplugin/all/all/GdalExtension.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/java/org/gvsig/gdal/app/mainplugin/all/all/GdalExtension.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/java/org/gvsig/gdal/app/mainplugin/all/all/GdalExtension.java	(revision 393)
@@ -0,0 +1,47 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+*
+* Copyright (C) 2007-2008 Infrastructures and Transports Department
+* of the Valencian Government (CIT)
+* 
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+* 
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+* MA  02110-1301, USA.
+* 
+*/
+package org.gvsig.gdal.app.mainplugin.all.all;
+
+import org.gvsig.andami.plugins.Extension;
+
+/**
+ * Extension to add Gdal library support
+ *
+ * @author Jos� Bad�a (jbadia@scolab.es)
+ */
+public class GdalExtension extends Extension {
+
+	public void execute(String actionCommand) {
+	}
+
+	public void initialize() {
+	}
+	
+	public boolean isEnabled() {
+		return false;
+	}
+
+	public boolean isVisible() {
+		return false;
+	}
+
+}
\ No newline at end of file

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all/src/main/java/org/gvsig/gdal/app/mainplugin/all/all/GdalExtension.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.all.all
___________________________________________________________________
Added: svn:ignore
   + .settings

target

.project

.classpath

bin


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/resources-plugin/autorun.sh
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/resources-plugin/autorun.sh	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/resources-plugin/autorun.sh	(revision 393)
@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+# gvSIG. Desktop Geographic Information System.
+#
+# Copyright (C) 2007-2013 gvSIG Association.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 3
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA  02110-1301, USA.
+#
+# For any additional information, do not hesitate to contact us
+# at info AT gvsig.com, or visit our website www.gvsig.com.
+#
+
+
+#
+# Plugin autorun
+#
+
+PLUGIN_NAME=$(basename "$PLUGIN_FOLDER")
+
+logger_info "Using gdal from Ubuntu 16.04.2 x86_64"
+
+add_library_path "$PLUGIN_FOLDER/gdal"
+add_classpath "${PLUGIN_FOLDER}/gdal/java/gdal.jar"
+#export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-1.11.3"
+export GDAL_DATA="${PLUGIN_FOLDER}/gdal/data-2.2.1"
+
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdaljni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libgdalconstjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libogrjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libosrjni.so"
+list_shared_library_dependencies "$PLUGIN_FOLDER/gdal/libproj.so.0"
+
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/resources-plugin/notes.txt
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/resources-plugin/notes.txt	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/resources-plugin/notes.txt	(revision 393)
@@ -0,0 +1,358 @@
+
+Notes
+========
+
+Este fichero describe el proceso realizado para extraer las librerias nativas
+de GDAL que usa gvSIG.
+
+Para ello, creamos una maquina virtual de VBox, sin disco, montando la iso
+de "OSGEO-live-9.5-amd64" y arrancamos de ella.
+
+Una vez arrancado el sistema, arrancamos la consola y trabajaremos sobre ella.
+
+instalar "libgdal-java"
+-------------------------
+
+<pre>
+user@osgeolive:~$ sudo apt-get install libgdal-java
+Leyendo lista de paquetes... Hecho
+Creando árbol de dependencias
+Leyendo la información de estado... Hecho
+Se instalarán los siguientes paquetes NUEVOS:
+  libgdal-java
+0 actualizados, 1 se instalarán, 0 para eliminar y 7 no actualizados.
+Necesito descargar 337 kB de archivos.
+Se utilizarán 1.210 kB de espacio de disco adicional después de esta operación.
+Des:1 http://ppa.launchpad.net/osgeolive/release-9.5/ubuntu/ trusty/main libgdal-java amd64 1.11.3+dfsg-2~trusty3 [337 kB]
+Descargados 337 kB en 5seg. (57,4 kB/s)
+Seleccionando el paquete libgdal-java previamente no seleccionado.
+(Leyendo la base de datos ... 234658 ficheros o directorios instalados actualmente.)
+Preparing to unpack .../libgdal-java_1.11.3+dfsg-2~trusty3_amd64.deb ...
+Unpacking libgdal-java (1.11.3+dfsg-2~trusty3) ...
+Configurando libgdal-java (1.11.3+dfsg-2~trusty3) ...
+user@osgeolive:~$
+</pre>
+
+Verificar donde estan los jar y so
+------------------------------------
+
+<pre>
+user@osgeolive:/var/cache/apt/archives$ dpkg -c /var/cache/apt/archives/libgdal-java_1.11.3+dfsg-2~trusty3_amd64.deb
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/share/
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/share/java/
+-rw-r--r-- root/root    103685 2016-01-19 00:54 ./usr/share/java/gdal.jar
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/share/doc/
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/share/doc/libgdal-java/
+-rw-r--r-- root/root    125216 2016-01-19 00:24 ./usr/share/doc/libgdal-java/changelog.gz
+-rw-r--r-- root/root     59338 2015-10-21 22:42 ./usr/share/doc/libgdal-java/copyright
+-rw-r--r-- root/root     15569 2016-01-16 16:37 ./usr/share/doc/libgdal-java/changelog.Debian.gz
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/lib/
+drwxr-xr-x root/root         0 2016-01-19 00:54 ./usr/lib/jni/
+-rw-r--r-- root/root     72648 2016-01-19 00:54 ./usr/lib/jni/libosrjni.so.1
+-rw-r--r-- root/root    127064 2016-01-19 00:54 ./usr/lib/jni/libogrjni.so
+-rw-r--r-- root/root     22192 2016-01-19 00:54 ./usr/lib/jni/libgdalconstjni.so
+-rw-r--r-- root/root    212616 2016-01-19 00:54 ./usr/lib/jni/libgdaljni.so
+-rw-r--r-- root/root     22192 2016-01-19 00:54 ./usr/lib/jni/libgdalconstjni.so.1
+-rw-r--r-- root/root    127064 2016-01-19 00:54 ./usr/lib/jni/libogrjni.so.1
+-rw-r--r-- root/root     72648 2016-01-19 00:54 ./usr/lib/jni/libosrjni.so
+-rw-r--r-- root/root    212616 2016-01-19 00:54 ./usr/lib/jni/libgdaljni.so.1
+user@osgeolive:/var/cache/apt/archives$
+</pre>
+
+Extraer las dependencias de los so y el jar
+-----------------------------------------------
+
+user@osgeolive:/var/cache/apt/archives$ cd /usr/lib/jni
+user@osgeolive:/usr/lib/jni$ ls -l
+total 864
+-rw-r--r-- 1 root root  22192 ene 19 00:54 libgdalconstjni.so
+-rw-r--r-- 1 root root  22192 ene 19 00:54 libgdalconstjni.so.1
+-rw-r--r-- 1 root root 212616 ene 19 00:54 libgdaljni.so
+-rw-r--r-- 1 root root 212616 ene 19 00:54 libgdaljni.so.1
+-rw-r--r-- 1 root root 127064 ene 19 00:54 libogrjni.so
+-rw-r--r-- 1 root root 127064 ene 19 00:54 libogrjni.so.1
+-rw-r--r-- 1 root root  72648 ene 19 00:54 libosrjni.so
+-rw-r--r-- 1 root root  72648 ene 19 00:54 libosrjni.so.1
+user@osgeolive:/usr/lib/jni$ ldd *.so | sed -n "s/.* => \(.*\) [(].*/\1/p" | sort | uniq
+
+/lib/x86_64-linux-gnu/libcom_err.so.2
+/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
+/lib/x86_64-linux-gnu/libcrypt.so.1
+/lib/x86_64-linux-gnu/libc.so.6
+/lib/x86_64-linux-gnu/libdl.so.2
+/lib/x86_64-linux-gnu/libexpat.so.1
+/lib/x86_64-linux-gnu/libgcc_s.so.1
+/lib/x86_64-linux-gnu/libgcrypt.so.11
+/lib/x86_64-linux-gnu/libgpg-error.so.0
+/lib/x86_64-linux-gnu/libkeyutils.so.1
+/lib/x86_64-linux-gnu/liblzma.so.5
+/lib/x86_64-linux-gnu/libm.so.6
+/lib/x86_64-linux-gnu/libpcre.so.3
+/lib/x86_64-linux-gnu/libpng12.so.0
+/lib/x86_64-linux-gnu/libpthread.so.0
+/lib/x86_64-linux-gnu/libresolv.so.2
+/lib/x86_64-linux-gnu/libssl.so.1.0.0
+/lib/x86_64-linux-gnu/libz.so.1
+/usr/lib/libarmadillo.so.4
+/usr/lib/libarpack.so.2
+/usr/lib/libblas.so.3
+/usr/lib/libdfalt.so.0
+/usr/lib/libgdal.so.1
+/usr/lib/liblapack.so.3
+/usr/lib/libmfhdfalt.so.0
+/usr/lib/libnetcdf.so.7
+/usr/lib/libogdi.so.3.2
+/usr/lib/libproj.so.0
+/usr/lib/liburiparser.so.1
+/usr/lib/x86_64-linux-gnu/libasn1.so.8
+/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
+/usr/lib/x86_64-linux-gnu/libdapclient.so.3
+/usr/lib/x86_64-linux-gnu/libdap.so.11
+/usr/lib/x86_64-linux-gnu/libepsilon.so.1
+/usr/lib/x86_64-linux-gnu/libffi.so.6
+/usr/lib/x86_64-linux-gnu/libfontconfig.so.1
+/usr/lib/x86_64-linux-gnu/libfreetype.so.6
+/usr/lib/x86_64-linux-gnu/libfreexl.so.1
+/usr/lib/x86_64-linux-gnu/libgeos-3.5.0.so
+/usr/lib/x86_64-linux-gnu/libgeos_c.so.1
+/usr/lib/x86_64-linux-gnu/libgfortran.so.3
+/usr/lib/x86_64-linux-gnu/libgif.so.4
+/usr/lib/x86_64-linux-gnu/libgnutls.so.26
+/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2
+/usr/lib/x86_64-linux-gnu/libgssapi.so.3
+/usr/lib/x86_64-linux-gnu/libhcrypto.so.4
+/usr/lib/x86_64-linux-gnu/libhdf5_hl.so.7
+/usr/lib/x86_64-linux-gnu/libhdf5.so.7
+/usr/lib/x86_64-linux-gnu/libheimbase.so.1
+/usr/lib/x86_64-linux-gnu/libheimntlm.so.0
+/usr/lib/x86_64-linux-gnu/libhx509.so.5
+/usr/lib/x86_64-linux-gnu/libidn.so.11
+/usr/lib/x86_64-linux-gnu/libjasper.so.1
+/usr/lib/x86_64-linux-gnu/libjbig.so.0
+/usr/lib/x86_64-linux-gnu/libjpeg.so.8
+/usr/lib/x86_64-linux-gnu/libk5crypto.so.3
+/usr/lib/x86_64-linux-gnu/libkmlbase.so.0
+/usr/lib/x86_64-linux-gnu/libkmldom.so.0
+/usr/lib/x86_64-linux-gnu/libkmlengine.so.0
+/usr/lib/x86_64-linux-gnu/libkrb5.so.26
+/usr/lib/x86_64-linux-gnu/libkrb5.so.3
+/usr/lib/x86_64-linux-gnu/libkrb5support.so.0
+/usr/lib/x86_64-linux-gnu/liblber-2.4.so.2
+/usr/lib/x86_64-linux-gnu/liblcms2.so.2
+/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2
+/usr/lib/x86_64-linux-gnu/libltdl.so.7
+/usr/lib/x86_64-linux-gnu/libminizip.so.0
+/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18
+/usr/lib/x86_64-linux-gnu/libodbcinst.so.1
+/usr/lib/x86_64-linux-gnu/libodbc.so.1
+/usr/lib/x86_64-linux-gnu/libopenjp2.so.7
+/usr/lib/x86_64-linux-gnu/libp11-kit.so.0
+/usr/lib/x86_64-linux-gnu/libpoppler.so.44
+/usr/lib/x86_64-linux-gnu/libpq.so.5
+/usr/lib/x86_64-linux-gnu/libquadmath.so.0
+/usr/lib/x86_64-linux-gnu/libroken.so.18
+/usr/lib/x86_64-linux-gnu/librtmp.so.0
+/usr/lib/x86_64-linux-gnu/libsasl2.so.2
+/usr/lib/x86_64-linux-gnu/libspatialite.so.5
+/usr/lib/x86_64-linux-gnu/libsqlite3.so.0
+/usr/lib/x86_64-linux-gnu/libstdc++.so.6
+/usr/lib/x86_64-linux-gnu/libtasn1.so.6
+/usr/lib/x86_64-linux-gnu/libtiff.so.5
+/usr/lib/x86_64-linux-gnu/libwebp.so.5
+/usr/lib/x86_64-linux-gnu/libwind.so.0
+/usr/lib/x86_64-linux-gnu/libxerces-c-3.1.so
+/usr/lib/x86_64-linux-gnu/libxml2.so.2
+user@osgeolive:/usr/lib/jni$
+
+user@osgeolive:/usr/lib/jni$ mkdir /tmp/gdal
+user@osgeolive:/usr/lib/jni$ libs=$(ldd *.so | sed -n "s/.* => \(.*\) [(].*/\1/p" | sort | uniq)
+user@osgeolive:/usr/lib/jni$ cp -v $libs /tmp/gdal
+«/lib/x86_64-linux-gnu/libcom_err.so.2» -> «/tmp/gdal/libcom_err.so.2»
+«/lib/x86_64-linux-gnu/libcrypto.so.1.0.0» -> «/tmp/gdal/libcrypto.so.1.0.0»
+«/lib/x86_64-linux-gnu/libcrypt.so.1» -> «/tmp/gdal/libcrypt.so.1»
+«/lib/x86_64-linux-gnu/libc.so.6» -> «/tmp/gdal/libc.so.6»
+«/lib/x86_64-linux-gnu/libdl.so.2» -> «/tmp/gdal/libdl.so.2»
+«/lib/x86_64-linux-gnu/libexpat.so.1» -> «/tmp/gdal/libexpat.so.1»
+«/lib/x86_64-linux-gnu/libgcc_s.so.1» -> «/tmp/gdal/libgcc_s.so.1»
+«/lib/x86_64-linux-gnu/libgcrypt.so.11» -> «/tmp/gdal/libgcrypt.so.11»
+«/lib/x86_64-linux-gnu/libgpg-error.so.0» -> «/tmp/gdal/libgpg-error.so.0»
+«/lib/x86_64-linux-gnu/libkeyutils.so.1» -> «/tmp/gdal/libkeyutils.so.1»
+«/lib/x86_64-linux-gnu/liblzma.so.5» -> «/tmp/gdal/liblzma.so.5»
+«/lib/x86_64-linux-gnu/libm.so.6» -> «/tmp/gdal/libm.so.6»
+«/lib/x86_64-linux-gnu/libpcre.so.3» -> «/tmp/gdal/libpcre.so.3»
+«/lib/x86_64-linux-gnu/libpng12.so.0» -> «/tmp/gdal/libpng12.so.0»
+«/lib/x86_64-linux-gnu/libpthread.so.0» -> «/tmp/gdal/libpthread.so.0»
+«/lib/x86_64-linux-gnu/libresolv.so.2» -> «/tmp/gdal/libresolv.so.2»
+«/lib/x86_64-linux-gnu/libssl.so.1.0.0» -> «/tmp/gdal/libssl.so.1.0.0»
+«/lib/x86_64-linux-gnu/libz.so.1» -> «/tmp/gdal/libz.so.1»
+«/usr/lib/libarmadillo.so.4» -> «/tmp/gdal/libarmadillo.so.4»
+«/usr/lib/libarpack.so.2» -> «/tmp/gdal/libarpack.so.2»
+«/usr/lib/libblas.so.3» -> «/tmp/gdal/libblas.so.3»
+«/usr/lib/libdfalt.so.0» -> «/tmp/gdal/libdfalt.so.0»
+«/usr/lib/libgdal.so.1» -> «/tmp/gdal/libgdal.so.1»
+«/usr/lib/liblapack.so.3» -> «/tmp/gdal/liblapack.so.3»
+«/usr/lib/libmfhdfalt.so.0» -> «/tmp/gdal/libmfhdfalt.so.0»
+«/usr/lib/libnetcdf.so.7» -> «/tmp/gdal/libnetcdf.so.7»
+«/usr/lib/libogdi.so.3.2» -> «/tmp/gdal/libogdi.so.3.2»
+«/usr/lib/libproj.so.0» -> «/tmp/gdal/libproj.so.0»
+«/usr/lib/liburiparser.so.1» -> «/tmp/gdal/liburiparser.so.1»
+«/usr/lib/x86_64-linux-gnu/libasn1.so.8» -> «/tmp/gdal/libasn1.so.8»
+«/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4» -> «/tmp/gdal/libcurl-gnutls.so.4»
+«/usr/lib/x86_64-linux-gnu/libdapclient.so.3» -> «/tmp/gdal/libdapclient.so.3»
+«/usr/lib/x86_64-linux-gnu/libdap.so.11» -> «/tmp/gdal/libdap.so.11»
+«/usr/lib/x86_64-linux-gnu/libepsilon.so.1» -> «/tmp/gdal/libepsilon.so.1»
+«/usr/lib/x86_64-linux-gnu/libffi.so.6» -> «/tmp/gdal/libffi.so.6»
+«/usr/lib/x86_64-linux-gnu/libfontconfig.so.1» -> «/tmp/gdal/libfontconfig.so.1»
+«/usr/lib/x86_64-linux-gnu/libfreetype.so.6» -> «/tmp/gdal/libfreetype.so.6»
+«/usr/lib/x86_64-linux-gnu/libfreexl.so.1» -> «/tmp/gdal/libfreexl.so.1»
+«/usr/lib/x86_64-linux-gnu/libgeos-3.5.0.so» -> «/tmp/gdal/libgeos-3.5.0.so»
+«/usr/lib/x86_64-linux-gnu/libgeos_c.so.1» -> «/tmp/gdal/libgeos_c.so.1»
+«/usr/lib/x86_64-linux-gnu/libgfortran.so.3» -> «/tmp/gdal/libgfortran.so.3»
+«/usr/lib/x86_64-linux-gnu/libgif.so.4» -> «/tmp/gdal/libgif.so.4»
+«/usr/lib/x86_64-linux-gnu/libgnutls.so.26» -> «/tmp/gdal/libgnutls.so.26»
+«/usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2» -> «/tmp/gdal/libgssapi_krb5.so.2»
+«/usr/lib/x86_64-linux-gnu/libgssapi.so.3» -> «/tmp/gdal/libgssapi.so.3»
+«/usr/lib/x86_64-linux-gnu/libhcrypto.so.4» -> «/tmp/gdal/libhcrypto.so.4»
+«/usr/lib/x86_64-linux-gnu/libhdf5_hl.so.7» -> «/tmp/gdal/libhdf5_hl.so.7»
+«/usr/lib/x86_64-linux-gnu/libhdf5.so.7» -> «/tmp/gdal/libhdf5.so.7»
+«/usr/lib/x86_64-linux-gnu/libheimbase.so.1» -> «/tmp/gdal/libheimbase.so.1»
+«/usr/lib/x86_64-linux-gnu/libheimntlm.so.0» -> «/tmp/gdal/libheimntlm.so.0»
+«/usr/lib/x86_64-linux-gnu/libhx509.so.5» -> «/tmp/gdal/libhx509.so.5»
+«/usr/lib/x86_64-linux-gnu/libidn.so.11» -> «/tmp/gdal/libidn.so.11»
+«/usr/lib/x86_64-linux-gnu/libjasper.so.1» -> «/tmp/gdal/libjasper.so.1»
+«/usr/lib/x86_64-linux-gnu/libjbig.so.0» -> «/tmp/gdal/libjbig.so.0»
+«/usr/lib/x86_64-linux-gnu/libjpeg.so.8» -> «/tmp/gdal/libjpeg.so.8»
+«/usr/lib/x86_64-linux-gnu/libk5crypto.so.3» -> «/tmp/gdal/libk5crypto.so.3»
+«/usr/lib/x86_64-linux-gnu/libkmlbase.so.0» -> «/tmp/gdal/libkmlbase.so.0»
+«/usr/lib/x86_64-linux-gnu/libkmldom.so.0» -> «/tmp/gdal/libkmldom.so.0»
+«/usr/lib/x86_64-linux-gnu/libkmlengine.so.0» -> «/tmp/gdal/libkmlengine.so.0»
+«/usr/lib/x86_64-linux-gnu/libkrb5.so.26» -> «/tmp/gdal/libkrb5.so.26»
+«/usr/lib/x86_64-linux-gnu/libkrb5.so.3» -> «/tmp/gdal/libkrb5.so.3»
+«/usr/lib/x86_64-linux-gnu/libkrb5support.so.0» -> «/tmp/gdal/libkrb5support.so.0»
+«/usr/lib/x86_64-linux-gnu/liblber-2.4.so.2» -> «/tmp/gdal/liblber-2.4.so.2»
+«/usr/lib/x86_64-linux-gnu/liblcms2.so.2» -> «/tmp/gdal/liblcms2.so.2»
+«/usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2» -> «/tmp/gdal/libldap_r-2.4.so.2»
+«/usr/lib/x86_64-linux-gnu/libltdl.so.7» -> «/tmp/gdal/libltdl.so.7»
+«/usr/lib/x86_64-linux-gnu/libminizip.so.0» -> «/tmp/gdal/libminizip.so.0»
+«/usr/lib/x86_64-linux-gnu/libmysqlclient.so.18» -> «/tmp/gdal/libmysqlclient.so.18»
+«/usr/lib/x86_64-linux-gnu/libodbcinst.so.1» -> «/tmp/gdal/libodbcinst.so.1»
+«/usr/lib/x86_64-linux-gnu/libodbc.so.1» -> «/tmp/gdal/libodbc.so.1»
+«/usr/lib/x86_64-linux-gnu/libopenjp2.so.7» -> «/tmp/gdal/libopenjp2.so.7»
+«/usr/lib/x86_64-linux-gnu/libp11-kit.so.0» -> «/tmp/gdal/libp11-kit.so.0»
+«/usr/lib/x86_64-linux-gnu/libpoppler.so.44» -> «/tmp/gdal/libpoppler.so.44»
+«/usr/lib/x86_64-linux-gnu/libpq.so.5» -> «/tmp/gdal/libpq.so.5»
+«/usr/lib/x86_64-linux-gnu/libquadmath.so.0» -> «/tmp/gdal/libquadmath.so.0»
+«/usr/lib/x86_64-linux-gnu/libroken.so.18» -> «/tmp/gdal/libroken.so.18»
+«/usr/lib/x86_64-linux-gnu/librtmp.so.0» -> «/tmp/gdal/librtmp.so.0»
+«/usr/lib/x86_64-linux-gnu/libsasl2.so.2» -> «/tmp/gdal/libsasl2.so.2»
+«/usr/lib/x86_64-linux-gnu/libspatialite.so.5» -> «/tmp/gdal/libspatialite.so.5»
+«/usr/lib/x86_64-linux-gnu/libsqlite3.so.0» -> «/tmp/gdal/libsqlite3.so.0»
+«/usr/lib/x86_64-linux-gnu/libstdc++.so.6» -> «/tmp/gdal/libstdc++.so.6»
+«/usr/lib/x86_64-linux-gnu/libtasn1.so.6» -> «/tmp/gdal/libtasn1.so.6»
+«/usr/lib/x86_64-linux-gnu/libtiff.so.5» -> «/tmp/gdal/libtiff.so.5»
+«/usr/lib/x86_64-linux-gnu/libwebp.so.5» -> «/tmp/gdal/libwebp.so.5»
+«/usr/lib/x86_64-linux-gnu/libwind.so.0» -> «/tmp/gdal/libwind.so.0»
+«/usr/lib/x86_64-linux-gnu/libxerces-c-3.1.so» -> «/tmp/gdal/libxerces-c-3.1.so»
+«/usr/lib/x86_64-linux-gnu/libxml2.so.2» -> «/tmp/gdal/libxml2.so.2»
+user@osgeolive:/usr/lib/jni$
+
+user@osgeolive:/usr/lib/jni$ cd /tmp/gdal
+user@osgeolive:/tmp/gdal$ rm libm.so.6 libc.so.6 libpthread.so.0 libdl.so.2
+user@osgeolive:/tmp/gdal$ cp /usr/lib/jni/* .
+user@osgeolive:/tmp/gdal$ mkdir java
+user@osgeolive:/tmp/gdal$ cd java
+user@osgeolive:/tmp/gdal/java$ cp /usr/share/java/gdal.jar .
+user@osgeolive:/tmp/gdal/java$ cd ..
+user@osgeolive:/tmp/gdal$
+
+Las siguientes librerias no esta claro si deben borrarse o no.
+
+libstdc++.so.6
+libgcc_s.so.1
+libcrypto.so.1.0.0
+libresolv.so.2
+libcrypt.so.1
+libz.so.1
+libssl.so.1.0.0
+
+libkrb5.so.26
+libkrb5.so.3
+libkrb5support.so.0
+
+De momento las dejo.
+
+
+
+Copiar la carpeta GDAL_DATA
+-----------------------------
+
+user@osgeolive:/tmp/gdal$ mkdir data
+user@osgeolive:/tmp/gdal$ cd data
+user@osgeolive:/tmp/gdal/data$ cp /usr/share/gdal/1.11/* .
+user@osgeolive:/tmp/gdal/data$ cd ..
+user@osgeolive:/tmp/gdal$ mkdir proj
+user@osgeolive:/tmp/gdal$ cd proj
+user@osgeolive:/tmp/gdal/proj$ cp /usr/share/proj/* .
+
+Generamos el fichero gdal-version.txt
+-----------------------------------------
+
+user@osgeolive:/tmp/gdal$ ( echo "# OSGEO LiveDVD 9.5" ; set -x ; uname -a ; lsb_release -a ; gdal-config --version ) >gdal-version.txt 2>&1 ; set +x
+user@osgeolive:/tmp/gdal$ cat gdal-version.txt
+# OSGEO LiveDVD 9.5
++ uname -a
+Linux osgeolive 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
++ lsb_release -a
+No LSB modules are available.
+Distributor ID:	Ubuntu
+Description:	Ubuntu 14.04.4 LTS
+Release:	14.04
+Codename:	trusty
++ gdal-config --version
+1.11.3
+user@osgeolive:/tmp/gdal$
+
+Crear el tar
+--------------
+
+user@osgeolive:/tmp/gdal$ tar cvzf ../gdal-1.11.3.0-osgeolive-9.5-ubuntu-14.04.4-amd64.tar.gz .
+user@osgeolive:/tmp/gdal$ cd ..
+user@osgeolive:/tmp$ scp gdal-1.11.3.0-osgeolive-9.5-ubuntu-14.04.4-amd64.tar.gz jjdelcerro@192.168.1.133:/home/jjdelcerro/Descargas
+jjdelcerro@192.168.1.133's password:
+gdal-1.11.3.0-osgeolive-9.5-ubuntu-14.04.4-amd64.tar.gz                                                                              100%   25MB  25.4MB/s   00:01
+user@osgeolive:/tmp$
+
+Todo junto
+-------------
+
+GDAL_VERSION=$(gdal-config --version)
+GDAL_VERSION2=$(expr ${GDAL_VERSION} : "\([0-9]*[.][0-9]*\)[.]")
+sudo apt-get install libgdal-java
+dpkg -c /var/cache/apt/archives/libgdal-java_*.deb
+cd /usr/lib/jni
+mkdir /tmp/gdal
+libs=$(ldd *.so | sed -n "s/.* => \(.*\) [(].*/\1/p" | sort | uniq)
+cp -v $libs /tmp/gdal
+cd /tmp/gdal
+rm libm.so.6 libc.so.6 libpthread.so.0 libdl.so.2
+cp /usr/lib/jni/* .
+mkdir data
+cd data
+cp /usr/share/gdal/${GDAL_VERSION2}/* .
+cd ..
+mkdir proj
+cd proj
+cp /usr/share/proj/* .
+cd ..
+mkdir java
+cd java
+cp /usr/share/java/gdal.jar .
+cd ..
+(
+  . /etc/os-release
+  ARCH=$(uname -i)
+  echo "# $NAME $VERSION" ; set -x ; uname -a ; lsb_release -a ; gdal-config --version ) >gdal-version.txt 2>&1 ; set +x
+  tar cvzf "../gdal-${GDAL_VERSION}.0-${ID}-${VERSION_ID}.0-${ARCH}.tar.gz" .
+)
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,62 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+
+<assembly>
+    <id>gvsig-plugin-package</id>
+    <formats>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>${gvsig.package.info.code}</baseDirectory>
+    <includeBaseDirectory>true</includeBaseDirectory>
+    <files>
+        <file>
+            <source>target/package.info</source>
+        </file>
+    </files>
+
+    <fileSets>
+        <fileSet>
+            <directory>target/org.gvsig.gdal.app.mainplugin.common</directory>
+            <outputDirectory>.</outputDirectory>
+            <excludes>
+                <exclude>package.info</exclude>
+            </excludes>
+        </fileSet>
+        <fileSet>
+            <directory>target/native/gdal</directory>
+            <outputDirectory>./gdal</outputDirectory>
+	    <excludes>
+	      <exclude>**/libdl.so.2</exclude>
+	      <exclude>**/libz.so.1</exclude>
+	    </excludes>
+      </fileSet>
+        <fileSet>
+            <directory>src/main/resources-plugin</directory>
+            <outputDirectory>.</outputDirectory>
+        </fileSet>
+    </fileSets>
+
+</assembly>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/src/main/assembly/gvsig-plugin-package.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/pom.xml	(revision 393)
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.gvsig.gdal.app.mainplugin.lin.x86_64</artifactId>
+  <packaging>jar</packaging>
+
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+    <version>1.0.60</version>
+  </parent>
+
+
+  <properties>
+    <gvsig.package.info.operatingSystem>lin</gvsig.package.info.operatingSystem>
+    <gvsig.package.info.architecture>x86_64</gvsig.package.info.architecture>
+
+    <gdal.classifier>ubuntu-16.04.2-amd64</gdal.classifier>
+    <gdal.version>1.11.3.3</gdal.version>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.gdal</groupId>
+        <artifactId>gdal</artifactId>
+        <version>${gdal.version}</version>
+        <classifier>${gdal.classifier}</classifier>
+        <scope>runtime</scope>
+        <type>tar.gz</type>
+      </dependency>
+      <dependency>
+        <groupId>org.gdal</groupId>
+        <artifactId>gdal</artifactId>
+        <version>${gdal.version}</version>
+        <!--
+        <classifier>${gdal.classifier}</classifier>
+        -->
+        <scope>runtime</scope>
+        <type>jar</type>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+
+  <dependencies>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+      <type>zip</type>
+    </dependency>
+    <dependency>
+      <groupId>org.gdal</groupId>
+      <artifactId>gdal</artifactId>
+      <!--
+      <classifier>${gdal.classifier}</classifier>
+      -->
+      <scope>runtime</scope>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>org.gdal</groupId>
+      <artifactId>gdal</artifactId>
+      <classifier>${gdal.classifier}</classifier>
+      <scope>runtime</scope>
+      <type>tar.gz</type>
+    </dependency>
+  </dependencies>
+
+
+
+  <build>
+    <plugins>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>unpack</id>
+            <phase>process-sources</phase>
+            <goals>
+              <goal>unpack</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>org.gvsig</groupId>
+                  <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                  <type>zip</type>
+                  <overWrite>true</overWrite>
+                  <outputDirectory>target</outputDirectory>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>org.gdal</groupId>
+                  <artifactId>gdal</artifactId>
+                  <version>${gdal.version}</version>
+                  <classifier>${gdal.classifier}</classifier>
+                  <type>tar.gz</type>
+                  <overWrite>true</overWrite>
+                  <outputDirectory>target/native/gdal</outputDirectory>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>install_plugin_for_linux_x86_64</id>
+      <activation>
+        <os>
+          <family>Linux</family>
+          <arch>x86_64</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+
+    <profile>
+      <id>install_plugin_for_linux_amd64</id>
+      <activation>
+        <os>
+          <family>Linux</family>
+          <arch>amd64</arch>
+        </os>
+      </activation>
+      <properties>
+        <gvsig.install.plugin>true</gvsig.install.plugin>
+      </properties>
+    </profile>
+  </profiles>
+
+
+</project>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:01:15 CET 2019
+buildNumber=67

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64/buildNumber.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/org.gvsig.gdal.app.mainplugin.lin.x86_64
___________________________________________________________________
Added: svn:ignore
   + target

.settings

.classpath

.project


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/pom.xml	(revision 393)
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal.app.mainplugin</artifactId>
+    <packaging>pom</packaging>
+    <name>org.gvsig.gdal.app.mainplugin</name>
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.gdal.app</artifactId>
+        <version>1.0.60</version>
+    </parent>
+
+
+    <properties>
+        <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-gdal/pool/</gvsig.package.info.poolURL>
+        <gvsig.package.info.dependencies />
+        <gvsig.package.info.code>org.gvsig.gdal.app.mainplugin</gvsig.package.info.code>
+        <gvsig.package.info.codealias />
+        <gvsig.package.info.name>GDAL/OGR native libraries for gvSIG</gvsig.package.info.name>
+        <gvsig.package.info.description>${project.parent.description}</gvsig.package.info.description>
+        <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2</gvsig.package.info.dependencies>
+    </properties>
+
+    <modules>
+        <module>org.gvsig.gdal.app.mainplugin.common</module>
+        <module>org.gvsig.gdal.app.mainplugin.all.all</module>
+        <module>org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86</module>
+        <module>org.gvsig.gdal.app.mainplugin.lin_ubuntu_14.04.x86_64</module>
+        <module>org.gvsig.gdal.app.mainplugin.lin.x86</module>
+        <module>org.gvsig.gdal.app.mainplugin.lin.x86_64</module>
+        <module>org.gvsig.gdal.app.mainplugin.win.x86</module>
+        <module>org.gvsig.gdal.app.mainplugin.win.x86_64</module>
+        <module>org.gvsig.gdal.app.mainplugin.darwin_macos_10.11.x86_64</module>
+    </modules>
+</project>

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.mainplugin
___________________________________________________________________
Added: svn:ignore
   + .project
.directory
.settings
target


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/java/org/gvsig/gdal/app/ogr/gml/GMLExtension.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/java/org/gvsig/gdal/app/ogr/gml/GMLExtension.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/java/org/gvsig/gdal/app/ogr/gml/GMLExtension.java	(revision 393)
@@ -0,0 +1,53 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.app.ogr.gml;
+
+import org.gvsig.andami.plugins.Extension;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class GMLExtension extends Extension {
+
+    @Override
+    public void execute(String arg0) {
+    }
+
+    @Override
+    public void initialize() {
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return false;
+    }
+
+    @Override
+    public boolean isVisible() {
+        return false;
+    }
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/resources-plugin/schemas/catastro.gfs
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/resources-plugin/schemas/catastro.gfs	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/resources-plugin/schemas/catastro.gfs	(revision 393)
@@ -0,0 +1,146 @@
+<GMLFeatureClassList>
+  <SequentialLayers>true</SequentialLayers>
+  <GMLFeatureClass>
+    <Name>CadastralParcel</Name>
+    <ElementPath>CadastralParcel</ElementPath>
+    <GeomPropertyDefn>
+        <Name>geometry</Name>
+        <ElementPath>geometry</ElementPath>
+        <Type>MultiPolygon</Type>
+    </GeomPropertyDefn>
+    <GeomPropertyDefn>
+        <Name>referencePoint</Name>
+        <ElementPath>referencePoint</ElementPath>
+        <Type>Point</Type>
+    </GeomPropertyDefn>
+    <PropertyDefn>
+      <Name>areaValue</Name>
+      <ElementPath>areaValue</ElementPath>
+      <Type>Integer</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>areaValue_uom</Name>
+      <ElementPath>areaValue_uom</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>beginLifespanVersion</Name>
+      <ElementPath>beginLifespanVersion</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>endLifespanVersion</Name>
+      <ElementPath>endLifespanVersion</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>inspireId_localId</Name>
+      <ElementPath>inspireId|Identifier|localId</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>inspireId_namespace</Name>
+      <ElementPath>inspireId|Identifier|namespace</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>label</Name>
+      <ElementPath>label</ElementPath>
+      <Type>Integer</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>nationalCadastralReference</Name>
+      <ElementPath>nationalCadastralReference</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>validFrom</Name>
+      <ElementPath>validFrom</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>validTo</Name>
+      <ElementPath>validFrom</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+  </GMLFeatureClass>
+<GMLFeatureClass>
+    <Name>CadastralZoning</Name>
+    <ElementPath>CadastralZoning</ElementPath>
+    <GeomPropertyDefn>
+        <Name>geometry</Name>
+        <ElementPath>geometry</ElementPath>
+        <Type>MultiPolygon</Type>
+    </GeomPropertyDefn>
+    <GeomPropertyDefn>
+        <Name>referencePoint</Name>
+        <ElementPath>referencePoint</ElementPath>
+        <Type>Point</Type>
+    </GeomPropertyDefn>
+    <PropertyDefn>
+      <Name>beginLifespanVersion</Name>
+      <ElementPath>beginLifespanVersion</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>endLifespanVersion</Name>
+      <ElementPath>endLifespanVersion</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>estimatedAccuracy</Name>
+      <ElementPath>estimatedAccuracy</ElementPath>
+      <Type>Real</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>estimatedAccuracy_uom</Name>
+      <ElementPath>estimatedAccuracy_uom</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>inspireId_localId</Name>
+      <ElementPath>inspireId|Identifier|localId</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>inspireId_namespace</Name>
+      <ElementPath>inspireId|Identifier|namespace</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>label</Name>
+      <ElementPath>label</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>level</Name>
+      <ElementPath>level</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>LocalisedCharacterString</Name>
+      <ElementPath>levelName|LocalisedCharacterString</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>nationalCadastalZoningReference</Name>
+      <ElementPath>nationalCadastalZoningReference</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>originalMapScaleDenominator</Name>
+      <ElementPath>originalMapScaleDenominator</ElementPath>
+      <Type>Integer</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>validFrom</Name>
+      <ElementPath>validFrom</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+    <PropertyDefn>
+      <Name>validTo</Name>
+      <ElementPath>validFrom</ElementPath>
+      <Type>String</Type>
+    </PropertyDefn>
+  </GMLFeatureClass>
+</GMLFeatureClassList>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/resources-plugin/config.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/resources-plugin/config.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/resources-plugin/config.xml	(revision 393)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<plugin-config>
+    <depends plugin-name="org.gvsig.app.mainplugin" />
+    <depends plugin-name="org.gvsig.gdal.app.mainplugin" />
+    <depends plugin-name="org.gvsig.gdal.app.ogr.mainplugin" />
+	<libraries library-dir="lib"/>
+	<resourceBundle name="text"/>
+	<extensions>
+		<extension class-name="org.gvsig.gdal.app.ogr.gml.GMLExtension"
+			description=""
+			active="true"
+			priority="1">
+		</extension>
+	</extensions>
+</plugin-config>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,51 @@
+<!-- gvSIG. Desktop Geographic Information System. Copyright (C) 2007-2016 
+	gvSIG Association. This program is free software; you can redistribute it 
+	and/or modify it under the terms of the GNU General Public License as published 
+	by the Free Software Foundation; either version 3 of the License, or (at 
+	your option) any later version. This program is distributed in the hope that 
+	it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty 
+	of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 
+	Public License for more details. You should have received a copy of the GNU 
+	General Public License along with this program; if not, write to the Free 
+	Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 
+	USA. For any additional information, do not hesitate to contact us at info 
+	AT gvsig.com, or visit our website www.gvsig.com. -->
+<assembly>
+	<id>gvsig-plugin-package</id>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<baseDirectory>${project.artifactId}</baseDirectory>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<files>
+		<file>
+			<source>target/${project.artifactId}-${project.version}.jar</source>
+			<outputDirectory>lib</outputDirectory>
+		</file>
+		<file>
+			<source>target/package.info</source>
+		</file>
+	</files>
+
+	<fileSets>
+		<fileSet>
+			<directory>src/main/resources-plugin</directory>
+			<outputDirectory>.</outputDirectory>
+		</fileSet>
+	</fileSets>
+
+
+	<dependencySets>
+		<dependencySet>
+			<useProjectArtifact>false</useProjectArtifact>
+			<useTransitiveDependencies>false</useTransitiveDependencies>
+			<outputDirectory>lib</outputDirectory>
+			<includes>
+				<include>org.gvsig:org.gvsig.gdal.prov.gml</include>
+			</includes>
+		</dependencySet>
+	</dependencySets>
+
+</assembly>
+
+
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/pom.xml	(revision 393)
@@ -0,0 +1,30 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>org.gvsig.gdal.app</artifactId>
+		<version>1.0.60</version>
+	</parent>
+	<artifactId>org.gvsig.gdal.app.ogr.gml</artifactId>
+
+
+    <properties>
+    <gvsig.package.info.code>org.gvsig.gdal.app.ogr.gml</gvsig.package.info.code>
+    <gvsig.install.plugin>true</gvsig.install.plugin>
+    <gvsig.package.info.name>Formats: OGR/GML support</gvsig.package.info.name>
+    <gvsig.package.info.categories>Formats,Vector</gvsig.package.info.categories>
+    <gvsig.package.info.description>OGR formats: allows user to load GML files throw OGR</gvsig.package.info.description>
+    <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2.3.0-A-0</gvsig.package.info.dependencies>
+  </properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.app.mainplugin</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.gdal.prov.gml</artifactId>
+		</dependency>
+	</dependencies>
+</project>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:01:37 CET 2019
+buildNumber=45

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.gml
___________________________________________________________________
Added: svn:ignore
   + target


Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/pom.xml	(revision 393)
@@ -0,0 +1,30 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>org.gvsig.gdal.app</artifactId>
+		<version>1.0.60</version>
+	</parent>
+	<artifactId>org.gvsig.gdal.app.ogr.mainplugin</artifactId>
+
+  <properties>
+    <gvsig.package.info.code>org.gvsig.gdal.app.ogr.mainplugin</gvsig.package.info.code>
+    <gvsig.install.plugin>true</gvsig.install.plugin>
+    <gvsig.package.info.name>Formats: OGR support</gvsig.package.info.name>
+    <gvsig.package.info.categories>Formats,Vector</gvsig.package.info.categories>
+    <gvsig.package.info.description>OGR formats: allows user to load files supported by OGR</gvsig.package.info.description>
+    <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2.3.0-A-0</gvsig.package.info.dependencies>
+  </properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.app.mainplugin</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.gdal.prov.ogr</artifactId>
+		</dependency>
+	</dependencies>
+
+</project>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/buildNumber.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/buildNumber.properties	(revision 393)
@@ -0,0 +1,2 @@
+#Mon Feb 11 10:01:37 CET 2019
+buildNumber=45
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/i18n/text_en.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/i18n/text_en.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/i18n/text_en.properties	(revision 393)
@@ -0,0 +1,8 @@
+connection_string_can_not_be_empty= Connection string can not be empty
+connection_string= Connection string
+error_creating_properties_panel= Error creating properties panel
+error_getting_layers_from_connection_string=Error getting layers from connection string
+error_getting_OGR_provider=Error getting OGR provider
+error_getting_selected_layer_properties=Error getting selected layer properties
+error_opening_connection_string=Error opening connection string
+feature_number= Feature number
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/i18n/text.properties
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/i18n/text.properties	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/i18n/text.properties	(revision 393)
@@ -0,0 +1,8 @@
+connection_string_can_not_be_empty= La cadena de conexi�n no puede estar vac�a
+connection_string= Cadena de conexi�n
+error_creating_properties_panel= Error creando panel de propiedades
+error_getting_layers_from_connection_string=Error al obtener las capas desde la cadena de conexi�n 
+error_getting_OGR_provider=Error al obtener el proveedor OGR
+error_getting_selected_layer_properties = Error al obtener las propiedades de la capas seleccionadas 
+error_opening_connection_string=Error al abrir la cadena de conexi�n
+feature_number= N�mero de fen�menos
\ No newline at end of file
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/config.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/config.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/config.xml	(revision 393)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<plugin-config>
+    <depends plugin-name="org.gvsig.app.mainplugin" />
+    <depends plugin-name="org.gvsig.gdal.app.mainplugin" />
+	<libraries library-dir="lib"/>
+	<resourceBundle name="text"/>
+	<extensions>
+		<extension class-name="org.gvsig.gdal.app.ogr.mainplugin.OGRExtension"
+			description=""
+			active="true"
+			priority="1">
+		</extension>
+	</extensions>
+</plugin-config>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/images/layer/layer-icon-gdal.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/images/layer/layer-icon-gdal.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/images/ogrprovider/ogr-dataexplorer-settings.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/resources-plugin/images/ogrprovider/ogr-dataexplorer-settings.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/assembly/gvsig-plugin-package.xml	(revision 393)
@@ -0,0 +1,51 @@
+<!-- gvSIG. Desktop Geographic Information System. Copyright (C) 2007-2016 
+	gvSIG Association. This program is free software; you can redistribute it 
+	and/or modify it under the terms of the GNU General Public License as published 
+	by the Free Software Foundation; either version 3 of the License, or (at 
+	your option) any later version. This program is distributed in the hope that 
+	it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty 
+	of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 
+	Public License for more details. You should have received a copy of the GNU 
+	General Public License along with this program; if not, write to the Free 
+	Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 
+	USA. For any additional information, do not hesitate to contact us at info 
+	AT gvsig.com, or visit our website www.gvsig.com. -->
+<assembly>
+	<id>gvsig-plugin-package</id>
+	<formats>
+		<format>zip</format>
+	</formats>
+	<baseDirectory>${project.artifactId}</baseDirectory>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<files>
+		<file>
+			<source>target/${project.artifactId}-${project.version}.jar</source>
+			<outputDirectory>lib</outputDirectory>
+		</file>
+		<file>
+			<source>target/package.info</source>
+		</file>
+	</files>
+
+	<fileSets>
+		<fileSet>
+			<directory>src/main/resources-plugin</directory>
+			<outputDirectory>.</outputDirectory>
+		</fileSet>
+	</fileSets>
+
+
+	<dependencySets>
+		<dependencySet>
+			<useProjectArtifact>false</useProjectArtifact>
+			<useTransitiveDependencies>false</useTransitiveDependencies>
+			<outputDirectory>lib</outputDirectory>
+			<includes>
+				<include>org.gvsig:org.gvsig.gdal.prov.ogr</include>
+			</includes>
+		</dependencySet>
+	</dependencySets>
+
+</assembly>
+
+
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/OGRExtension.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/OGRExtension.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/OGRExtension.java	(revision 393)
@@ -0,0 +1,58 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.app.ogr.mainplugin;
+
+import org.gvsig.andami.IconThemeHelper;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.extension.AddLayer;
+import org.gvsig.gdal.app.ogr.mainplugin.gui.OGRWizarPanel;
+
+/**
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRExtension extends Extension {
+    
+    @Override
+    public void execute(String arg0) {
+    }
+
+    @Override
+    public void initialize() {
+        AddLayer.addWizard(OGRWizarPanel.class);
+        
+        IconThemeHelper.registerIcon("ogrprovider", "ogr-dataexplorer-settings", this);
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return false;
+    }
+
+    @Override
+    public boolean isVisible() {
+        return false;
+    }
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerController.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerController.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerController.java	(revision 393)
@@ -0,0 +1,429 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.app.ogr.mainplugin.gui;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.prefs.Preferences;
+
+import javax.swing.JComponent;
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.gvsig.filedialogchooser.FileDialogChooser;
+import org.gvsig.filedialogchooser.FileDialogChooserManager;
+
+import org.gvsig.fmap.IconThemeHelper;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.DataStoreProviderFactory;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
+import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
+import static org.gvsig.fmap.dal.serverexplorer.filesystem.swing.FilesystemExplorerWizardPanelController.OPEN_LAYER_FILE_CHOOSER_ID;
+import org.gvsig.fmap.mapcontrol.swing.dynobject.DynObjectEditor;
+import org.gvsig.gdal.prov.ogr.OGRDataExplorer;
+import org.gvsig.gdal.prov.ogr.OGRDataExplorerParameters;
+import org.gvsig.gdal.prov.ogr.OGRDataStoreParameters;
+import org.gvsig.gdal.prov.ogr.OGRDataStoreProvider;
+import org.gvsig.gdal.prov.ogr.OGRDataStoreProviderFactory;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.folders.FoldersManager;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.service.ServiceException;
+import org.gvsig.tools.util.ToolsUtilLocator;
+import org.gvsig.tools.util.ToolsUtilManager;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class JOGRDataExplorerController extends JOGRDataExplorerView implements JOGRDataExplorer {
+
+    private static final Logger LOG = LoggerFactory.getLogger(JOGRDataExplorerController.class);
+
+    private static final long serialVersionUID = 2347040531301288139L;
+
+    private String lastConnectionString;
+
+    private OGRDataExplorerParameters dataExplorerParameters;
+
+    /**
+     *
+     */
+    public JOGRDataExplorerController() {
+        init();
+    }
+
+    private void init() {
+
+        initFileChooserButton();
+        initDataExplorerPropertiesButton();
+        initOpenButton();
+        initPropertiesButton();
+        initLayerTable();
+        translate();
+    }
+
+    private void initDataExplorerPropertiesButton() {
+
+        this.dataExplorerPropertiesButton.setIcon(IconThemeHelper
+            .getImageIcon("ogr-dataexplorer-settings"));
+        this.dataExplorerPropertiesButton.addActionListener(new ActionListener() {
+
+            @Override
+            public void actionPerformed(ActionEvent e) {
+
+                String connectionString = connectionField.getText();
+
+                if (StringUtils.isBlank(connectionString)) {
+                    lastConnectionString = null;
+                    I18nManager i18nManager = ToolsLocator.getI18nManager();
+                    JOptionPane.showMessageDialog(JOGRDataExplorerController.this,
+                        i18nManager.getTranslation("connection_string_can_not_be_empty"),
+                        i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
+                    return;
+                }
+
+                if (!getConnectionString().equals(lastConnectionString)) {
+                    setExplorerParameters();
+                }
+
+                try {
+                    DynObjectEditor editor = new DynObjectEditor(dataExplorerParameters);
+                    editor.editObject(true);
+                } catch (ServiceException e1) {
+                    LOG.error(String.format("Can not create DynObjectEditor with %1s",
+                        dataExplorerParameters), e);
+                    I18nManager i18nManager = ToolsLocator.getI18nManager();
+                    JOptionPane.showMessageDialog(JOGRDataExplorerController.this,
+                        i18nManager.getTranslation("error_creating_properties_panel"),
+                        i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
+                    return;
+                }
+            }
+
+        });
+    }
+
+    @SuppressWarnings("unchecked")
+    private void setExplorerParameters() {
+        DataManager dataManager = DALLocator.getDataManager();
+        List<String> storeProviders = dataManager.getStoreProviders();
+        for (String storeProviderName : storeProviders) {
+
+            // First we have to search specific data explorer
+            // parameters
+            // to open connection string so we have to avoid create
+            // default OGR parameters.
+            if (storeProviderName.equals(OGRDataStoreProvider.NAME)) {
+                continue;
+            }
+
+            DataStoreProviderFactory factory =
+                dataManager.getStoreProviderFactory(storeProviderName);
+            if (factory instanceof OGRDataStoreProviderFactory) {
+                OGRDataStoreProviderFactory ogrFactory = (OGRDataStoreProviderFactory) factory;
+                DynObject explorerParameters =
+                    ogrFactory.createDataExplorerParameters(getConnectionString());
+                dataExplorerParameters = (OGRDataExplorerParameters) explorerParameters;
+            }
+        }
+
+        // If there are not specific data explorer parameters,
+        // create
+        // default OGR data explorer parameters.
+        if (dataExplorerParameters == null) {
+            OGRDataStoreProviderFactory factory =
+                (OGRDataStoreProviderFactory) dataManager
+                    .getStoreProviderFactory(OGRDataStoreProvider.NAME);
+            dataExplorerParameters =
+                (OGRDataExplorerParameters) factory
+                    .createDataExplorerParameters(getConnectionString());
+        }
+
+        File file = new File(getConnectionString());
+        if (file.exists() && file.isFile()) {
+            dataExplorerParameters.setFile(file);
+        } else {
+            dataExplorerParameters.setConnectionString(getConnectionString());
+        }
+
+        lastConnectionString = getConnectionString();
+
+    }
+
+    private void initLayerTable() {
+        layerTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+
+        layerTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+
+            @Override
+            public void valueChanged(ListSelectionEvent e) {
+                if (layerTable.getSelectedRowCount() == 1) {
+                    propertiesButton.setEnabled(true);
+                } else {
+                    propertiesButton.setEnabled(false);
+                }
+            }
+        });
+    }
+
+    private void initOpenButton() {
+
+        this.openButton.addActionListener(new ActionListener() {
+
+            @SuppressWarnings("unchecked")
+            @Override
+            public void actionPerformed(ActionEvent e) {
+
+                String connectionString = connectionField.getText();
+
+                if (StringUtils.isBlank(connectionString)) {
+                    lastConnectionString = null;
+                    I18nManager i18nManager = ToolsLocator.getI18nManager();
+                    JOptionPane.showMessageDialog(JOGRDataExplorerController.this,
+                        i18nManager.getTranslation("connection_string_can_not_be_empty"),
+                        i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
+                    return;
+                }
+
+                DataManager dataManager = DALLocator.getDataManager();
+                OGRDataExplorer serverExplorer = null;
+                if (!getConnectionString().equals(lastConnectionString)) {
+                    setExplorerParameters();
+                }
+
+                // If there are not specific data explorer parameters,
+                // create
+                // default OGR data explorer parameters.
+                if (dataExplorerParameters == null) {
+                    OGRDataStoreProviderFactory factory =
+                        (OGRDataStoreProviderFactory) dataManager
+                            .getStoreProviderFactory(OGRDataStoreProvider.NAME);
+                    dataExplorerParameters =
+                        (OGRDataExplorerParameters) factory
+                            .createDataExplorerParameters(connectionString);
+                }
+
+                File file = new File(connectionString);
+                if (file.exists() && file.isFile()) {
+                    dataExplorerParameters.setFile(file);
+                } else {
+                    dataExplorerParameters.setConnectionString(connectionString);
+                }
+
+                lastConnectionString = connectionString;
+
+                try {
+                    serverExplorer =
+                        (OGRDataExplorer) dataManager.openServerExplorer(
+                            dataExplorerParameters.getExplorerName(), dataExplorerParameters);
+                } catch (InitializeException ex) {
+                    LOG.error("Can not create OGR server explorer parameters", ex);
+
+                    I18nManager i18nManager = ToolsLocator.getI18nManager();
+                    JOptionPane.showMessageDialog(JOGRDataExplorerController.this,
+                        i18nManager.getTranslation("error_opening_connection_string"),
+                        i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
+                    return;
+
+                } catch (ProviderNotRegisteredException ex) {
+                    LOG.error("OGR Provider is not registered", ex);
+
+                    I18nManager i18nManager = ToolsLocator.getI18nManager();
+                    JOptionPane.showMessageDialog(JOGRDataExplorerController.this,
+                        i18nManager.getTranslation("error_getting_OGR_provider"),
+                        i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
+                    return;
+                } catch (ValidateDataParametersException ex) {
+                    LOG.error(String.format("Can not open OGR server explorer. Parameters: %1s",
+                        connectionString), ex);
+
+                    I18nManager i18nManager = ToolsLocator.getI18nManager();
+                    JOptionPane.showMessageDialog(JOGRDataExplorerController.this,
+                        i18nManager.getTranslation("error_opening_connection_string"),
+                        i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
+                    return;
+                }
+
+                List storeParametersList;
+                try {
+                    storeParametersList = serverExplorer.list();
+                } catch (DataException ex) {
+                    LOG.error("Can not get layer list of OGR Data Explorer", ex);
+
+                    I18nManager i18nManager = ToolsLocator.getI18nManager();
+                    JOptionPane.showMessageDialog(JOGRDataExplorerController.this,
+                        i18nManager.getTranslation("error_getting_layers_from_connection_string"),
+                        i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
+                    return;
+                }
+
+                layerTable.setModel(new OGRDataStoreParameterTableModel(storeParametersList));
+            }
+        });
+    }
+
+    private void initPropertiesButton() {
+
+        this.propertiesButton.setEnabled(false);
+        this.propertiesButton.addActionListener(new ActionListener() {
+
+            @Override
+            public void actionPerformed(ActionEvent arg0) {
+
+                OGRDataStoreParameterTableModel model =
+                    (OGRDataStoreParameterTableModel) layerTable.getModel();
+
+                OGRDataStoreParameters parameters =
+                    model.getDataStoreParameter(layerTable.getSelectedRow());
+                try {
+                    DynObjectEditor editor = new DynObjectEditor(parameters);
+                    editor.editObject(true);
+                } catch (ServiceException e) {
+                    LOG.error(String.format("Can not create DynObjectEditor with %1s", parameters),
+                        e);
+                    I18nManager i18nManager = ToolsLocator.getI18nManager();
+                    JOptionPane.showMessageDialog(JOGRDataExplorerController.this,
+                        i18nManager.getTranslation("error_creating_properties_panel"),
+                        i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
+                    return;
+                }
+            }
+        });
+
+    }
+
+    private void initFileChooserButton() {
+
+        fileChooserButton.addActionListener(new ActionListener() {
+
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                FoldersManager foldersManager = ToolsLocator.getFoldersManager();
+                FileDialogChooserManager fileDialogChooserManager = ToolsUtilLocator.getFileDialogChooserManager();
+                
+                FileDialogChooser chooser = fileDialogChooserManager.create(OPEN_LAYER_FILE_CHOOSER_ID);
+                chooser.setCurrentDirectory(foldersManager.get("DataFolder"));
+                if (StringUtils.isNotBlank(getConnectionString())) {
+                    File file = new File(getConnectionString());
+                    if (file.exists()) {
+                        chooser.setCurrentDirectory(file.getParentFile());
+                    }
+                }
+
+                int reply = chooser.showOpenDialog(asJComponent());
+
+                if (reply == JFileChooser.APPROVE_OPTION) {
+
+                    File file = chooser.getSelectedFile();
+                    if (file.isFile() && file.exists() && file.canRead()) {
+                        connectionField.setText(file.getAbsolutePath());
+                    }
+                }
+            }
+        });
+    }
+
+    @Override
+    public JComponent asJComponent() {
+        return this;
+    }
+
+    @Override
+    public void setLocale(Locale l) {
+
+        if (!this.getLocale().equals(l)) {
+            this.translate();
+        }
+        super.setLocale(l);
+    }
+
+    private void translate() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        this.connectionLabel.setText(i18nManager.getTranslation(this.connectionLabel.getText()));
+        this.openButton.setText(i18nManager.getTranslation(this.openButton.getText()));
+        this.propertiesButton.setText(i18nManager.getTranslation(this.propertiesButton.getText()));
+    }
+
+    @Override
+    public List<String> getSelectedLayerNames() {
+
+        List<String> selectedLayerNames = new ArrayList<String>();
+        OGRDataStoreParameterTableModel model = getOGRTableModel();
+        int[] selectedRows = layerTable.getSelectedRows();
+        for (int i = 0; i < selectedRows.length; i++) {
+            OGRDataStoreParameters dataStoreParameter =
+                model.getDataStoreParameter(selectedRows[i]);
+            selectedLayerNames.add(dataStoreParameter.getLayerName());
+        }
+        return selectedLayerNames;
+    }
+
+    public List<DataStoreParameters> getSelectedLayerProperties() throws InitializeException,
+        ProviderNotRegisteredException {
+
+        OGRDataStoreParameterTableModel model = getOGRTableModel();
+
+        int[] selectedRows = layerTable.getSelectedRows();
+        List<DataStoreParameters> parameters = new ArrayList<DataStoreParameters>();
+        for (int i = 0; i < selectedRows.length; i++) {
+            parameters.add(model.getDataStoreParameter(selectedRows[i]));
+        }
+        return parameters;
+    }
+
+    @Override
+    public List<Integer> getSelectedLayerIndexes() {
+        int[] selectedRows = layerTable.getSelectedRows();
+        return Arrays.asList(ArrayUtils.toObject(selectedRows));
+    }
+
+    @Override
+    public String getConnectionString() {
+        return connectionField.getText();
+    }
+
+    private OGRDataStoreParameterTableModel getOGRTableModel() {
+        return (OGRDataStoreParameterTableModel) layerTable.getModel();
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/OGRWizarPanel.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/OGRWizarPanel.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/OGRWizarPanel.java	(revision 393)
@@ -0,0 +1,119 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.app.ogr.mainplugin.gui;
+
+import java.awt.BorderLayout;
+import java.util.List;
+
+import javax.swing.JOptionPane;
+
+import org.apache.commons.lang.StringUtils;
+import org.gvsig.app.gui.WizardPanel;
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.gdal.prov.ogr.OGRDataStoreParameters;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.exception.BaseException;
+import org.gvsig.tools.i18n.I18nManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRWizarPanel extends WizardPanel {
+
+    private static final Logger LOG = LoggerFactory.getLogger(OGRWizarPanel.class);
+
+    private static final long serialVersionUID = 678408522883979629L;
+
+    private static final String TAB_NAME = "OGR";
+
+    private JOGRDataExplorer component;
+
+    /**
+     * 
+     */
+    public OGRWizarPanel() {
+        super();
+
+        this.component = new JOGRDataExplorerController();
+
+        initWizard();
+    }
+
+    @Override
+    public void close() {
+
+    }
+
+    @Override
+    public void execute() {
+
+        String connectionString = this.component.getConnectionString();
+
+        if (StringUtils.isBlank(connectionString)) {
+            return;
+        }
+
+        List<DataStoreParameters> layerProperties = null;
+        try {
+            layerProperties = this.component.getSelectedLayerProperties();
+        } catch (BaseException e) {
+            LOG.error("Can not get properties of selected layers", e);
+
+            I18nManager i18nManager = ToolsLocator.getI18nManager();
+            JOptionPane.showMessageDialog(component.asJComponent(),
+                i18nManager.getTranslation("error_getting_selected_layer_properties"),
+                i18nManager.getTranslation("error"), JOptionPane.ERROR_MESSAGE);
+            return;
+        }
+
+        for (DataStoreParameters parameters : layerProperties) {
+
+            OGRDataStoreParameters ogrParameters = (OGRDataStoreParameters) parameters;
+            
+            if(ogrParameters.getCRS() == null){
+                ogrParameters.setCRS(getMapContext().getProjection());
+            }
+            
+            doAddLayer(ogrParameters.getLayerName(), ogrParameters);
+        }
+    }
+
+    @Override
+    public DataStoreParameters[] getParameters() {
+        return null;
+    }
+
+    @Override
+    public void initWizard() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        setTabName(i18nManager.getTranslation(TAB_NAME));
+        this.setLayout(new BorderLayout());
+        this.add(this.component.asJComponent(), BorderLayout.CENTER);
+
+    }
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerView.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerView.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerView.xml	(revision 393)
@@ -0,0 +1,641 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<object classname="com.jeta.forms.store.memento.FormPackage">
+ <at name="fileversion">
+  <object classname="com.jeta.forms.store.memento.FormsVersion2">
+   <at name="major">2</at>
+   <at name="minor">0</at>
+   <at name="sub">0</at>
+  </object>
+ </at>
+ <at name="form">
+  <object classname="com.jeta.forms.store.memento.FormMemento">
+   <super classname="com.jeta.forms.store.memento.ComponentMemento">
+    <at name="cellconstraints">
+     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+      <at name="column">1</at>
+      <at name="row">1</at>
+      <at name="colspan">1</at>
+      <at name="rowspan">1</at>
+      <at name="halign">default</at>
+      <at name="valign">default</at>
+      <at name="insets" object="insets">0,0,0,0</at>
+     </object>
+    </at>
+    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+   </super>
+   <at name="id">/home/lmarques/projects/externals/org.gvsig.gdal/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerView.xml</at>
+   <at name="rowspecs">CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),CENTER:4DLU:NONE</at>
+   <at name="colspecs">FILL:8DLU:NONE,FILL:DEFAULT:GROW(0.8),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE</at>
+   <at name="components">
+    <object classname="java.util.LinkedList">
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">4</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JTextField</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JTextField</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="height">20</at>
+            <at name="width">874</at>
+            <at name="name">connectionField</at>
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">8</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">2</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JTable</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JTable</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="height">32</at>
+            <at name="width">872</at>
+            <at name="name">layerTable</at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <at name="name">scollBars</at>
+              <at name="verticalpolicy">20</at>
+              <at name="horizontalpolicy">30</at>
+              <at name="border">
+               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+                <at name="borders">
+                 <object classname="java.util.LinkedList">
+                  <item >
+                   <at name="value">
+                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                     <super classname="com.jeta.forms.store.properties.BorderProperty">
+                      <at name="name">border</at>
+                     </super>
+                    </object>
+                   </at>
+                  </item>
+                 </object>
+                </at>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">4</at>
+           <at name="row">8</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JButton</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JButton</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="text">properties</at>
+            <at name="height">22</at>
+            <at name="width">92</at>
+            <at name="name">propertiesButton</at>
+            <at name="actionCommand">properties</at>
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">4</at>
+           <at name="row">6</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JButton</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JButton</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="text">Open</at>
+            <at name="height">22</at>
+            <at name="width">92</at>
+            <at name="name">openButton</at>
+            <at name="actionCommand">connect</at>
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">2</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="text">connection_string</at>
+            <at name="height">14</at>
+            <at name="width">874</at>
+            <at name="name">connectionLabel</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.FormMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">4</at>
+           <at name="row">4</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+        </super>
+        <at name="id">embedded.X7ac1519cQ151e8804b91RF7fff</at>
+        <at name="rowspecs">CENTER:DEFAULT:NONE</at>
+        <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0)</at>
+        <at name="components">
+         <object classname="java.util.LinkedList">
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">1</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JButton</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JButton</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="height">12</at>
+                 <at name="width">32</at>
+                 <at name="name">dataExplorerPropertiesButton</at>
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">1</at>
+                <at name="row">1</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JButton</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JButton</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="text">...</at>
+                 <at name="height">22</at>
+                 <at name="width">44</at>
+                 <at name="name">fileChooserButton</at>
+                 <at name="actionCommand">...</at>
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+         </object>
+        </at>
+        <at name="properties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.gui.form.GridView</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="name"></at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <at name="name">scollBars</at>
+              <at name="verticalpolicy">21</at>
+              <at name="horizontalpolicy">31</at>
+             </object>
+            </at>
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList"/>
+              </at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="cellpainters">
+         <object classname="com.jeta.forms.store.support.Matrix">
+          <at name="rows">
+           <object classname="[Ljava.lang.Object;" size="1">
+            <at name="item" index="0">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="rowgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+        <at name="colgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+    </object>
+   </at>
+   <at name="properties">
+    <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+     <at name="classname">com.jeta.forms.gui.form.GridView</at>
+     <at name="properties">
+      <object classname="com.jeta.forms.store.support.PropertyMap">
+       <at name="name"/>
+       <at name="fill">
+        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+         <at name="name">fill</at>
+        </object>
+       </at>
+       <at name="scollBars">
+        <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+         <at name="name">scollBars</at>
+         <at name="verticalpolicy">21</at>
+         <at name="horizontalpolicy">31</at>
+         <at name="border">
+          <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+           <super classname="com.jeta.forms.store.properties.BorderProperty">
+            <at name="name">border</at>
+           </super>
+           <at name="borders">
+            <object classname="java.util.LinkedList">
+             <item >
+              <at name="value">
+               <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+               </object>
+              </at>
+             </item>
+            </object>
+           </at>
+          </object>
+         </at>
+        </object>
+       </at>
+       <at name="border">
+        <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+         <super classname="com.jeta.forms.store.properties.BorderProperty">
+          <at name="name">border</at>
+         </super>
+         <at name="borders">
+          <object classname="java.util.LinkedList"/>
+         </at>
+        </object>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="cellpainters">
+    <object classname="com.jeta.forms.store.support.Matrix">
+     <at name="rows">
+      <object classname="[Ljava.lang.Object;" size="10">
+       <at name="item" index="0">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="1">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="2">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="3">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="4">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="5">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="6">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="7">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="8">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="9">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="rowgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+   <at name="colgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+  </object>
+ </at>
+</object>
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerView.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerView.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorerView.java	(revision 393)
@@ -0,0 +1,182 @@
+package org.gvsig.gdal.app.ogr.mainplugin.gui;
+
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import javax.swing.Box;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+
+
+public class JOGRDataExplorerView extends JPanel
+{
+   JTextField connectionField = new JTextField();
+   JTable layerTable = new JTable();
+   JButton propertiesButton = new JButton();
+   JButton openButton = new JButton();
+   JLabel connectionLabel = new JLabel();
+   JButton dataExplorerPropertiesButton = new JButton();
+   JButton fileChooserButton = new JButton();
+
+   /**
+    * Default constructor
+    */
+   public JOGRDataExplorerView()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   /**
+    * Method for recalculating the component orientation for 
+    * right-to-left Locales.
+    * @param orientation the component orientation to be applied
+    */
+   public void applyComponentOrientation( ComponentOrientation orientation )
+   {
+      // Not yet implemented...
+      // I18NUtils.applyComponentOrientation(this, orientation);
+      super.applyComponentOrientation(orientation);
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:8DLU:NONE,FILL:DEFAULT:GROW(0.8),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE","CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),CENTER:4DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      connectionField.setName("connectionField");
+      jpanel1.add(connectionField,cc.xy(2,4));
+
+      layerTable.setName("layerTable");
+      JScrollPane jscrollpane1 = new JScrollPane();
+      jscrollpane1.setViewportView(layerTable);
+      jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+      jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+      jpanel1.add(jscrollpane1,cc.xywh(2,8,1,2));
+
+      propertiesButton.setActionCommand("properties");
+      propertiesButton.setName("propertiesButton");
+      propertiesButton.setText("properties");
+      jpanel1.add(propertiesButton,cc.xy(4,8));
+
+      openButton.setActionCommand("connect");
+      openButton.setName("openButton");
+      openButton.setText("Open");
+      jpanel1.add(openButton,cc.xy(4,6));
+
+      connectionLabel.setName("connectionLabel");
+      connectionLabel.setText("connection_string");
+      jpanel1.add(connectionLabel,cc.xy(2,2));
+
+      jpanel1.add(createPanel1(),cc.xy(4,4));
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5,6,7,8,9,10 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel1()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0)","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      dataExplorerPropertiesButton.setName("dataExplorerPropertiesButton");
+      jpanel1.add(dataExplorerPropertiesButton,cc.xy(3,1));
+
+      fileChooserButton.setActionCommand("...");
+      fileChooserButton.setName("fileChooserButton");
+      fileChooserButton.setText("...");
+      jpanel1.add(fileChooserButton,cc.xy(1,1));
+
+      addFillComponents(jpanel1,new int[]{ 2 },new int[0]);
+      return jpanel1;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/OGRDataStoreParameterTableModel.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/OGRDataStoreParameterTableModel.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/OGRDataStoreParameterTableModel.java	(revision 393)
@@ -0,0 +1,99 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.app.ogr.mainplugin.gui;
+
+import java.util.List;
+
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.TableModel;
+
+import org.gvsig.gdal.prov.ogr.OGRDataStoreParameters;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public class OGRDataStoreParameterTableModel extends AbstractTableModel implements TableModel {
+
+    private static final long serialVersionUID = 315018176923252280L;
+
+    private List<OGRDataStoreParameters> parameters;
+
+    private Object[][] data;
+
+    private String[] columnNames = { "name" };
+
+    /**
+     * 
+     * @param parameters
+     */
+    public OGRDataStoreParameterTableModel(List<OGRDataStoreParameters> parameters) {
+        this.data = new Object[parameters.size()][columnNames.length];
+        this.parameters = parameters;
+        fillData(parameters);
+    }
+
+    private void fillData(List<OGRDataStoreParameters> parameters) {
+
+        for (int i = 0; i < parameters.size(); i++) {
+            data[i][0] = parameters.get(i).getLayerName();
+        }
+    }
+
+    @Override
+    public int getRowCount() {
+        return parameters.size();
+    }
+
+    @Override
+    public int getColumnCount() {
+        return columnNames.length;
+    }
+
+    @Override
+    public Object getValueAt(int rowIndex, int columnIndex) {
+        return data[rowIndex][columnIndex];
+    }
+
+    @Override
+    public String getColumnName(int col) {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        return i18nManager.getTranslation(columnNames[col]);
+    }
+
+    /**
+     * Get OGR layer
+     * 
+     * @param rowIndex
+     *            index of layer
+     * @return OGR layer
+     */
+    public OGRDataStoreParameters getDataStoreParameter(int rowIndex) {
+        return this.parameters.get(rowIndex);
+    }
+
+}
Index: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorer.java
===================================================================
--- tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorer.java	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin/src/main/java/org/gvsig/gdal/app/ogr/mainplugin/gui/JOGRDataExplorer.java	(revision 393)
@@ -0,0 +1,66 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2016 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.gdal.app.ogr.mainplugin.gui;
+
+import java.util.List;
+
+import org.gvsig.fmap.dal.DataStoreParameters;
+import org.gvsig.fmap.dal.exception.InitializeException;
+import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
+import org.gvsig.tools.swing.api.Component;
+
+/**
+ * 
+ * @author <a href="mailto:lmarques@disid.com">Lluis Marques</a>
+ *
+ */
+public interface JOGRDataExplorer extends Component {
+
+    /**
+     * 
+     * @return List with selected layer names
+     */
+    public List<String> getSelectedLayerNames();
+
+    /**
+     * 
+     * @return List with selected layer indexes
+     */
+    public List<Integer> getSelectedLayerIndexes();
+
+    /**
+     * 
+     * @return OGR Connection
+     */
+    public String getConnectionString();
+
+    /**
+     * 
+     * @return List<DataStoreParameters>
+     * @throws ProviderNotRegisteredException
+     * @throws InitializeException
+     */
+    public List<DataStoreParameters> getSelectedLayerProperties() throws InitializeException,
+        ProviderNotRegisteredException;
+}

Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app/org.gvsig.gdal.app.ogr.mainplugin
___________________________________________________________________
Added: svn:ignore
   + target



Property changes on: tags/org.gvsig.gdal-1.0.60/org.gvsig.gdal.app
___________________________________________________________________
Added: svn:ignore
   + .project
.directory
.settings


Index: tags/org.gvsig.gdal-1.0.60/pom.xml
===================================================================
--- tags/org.gvsig.gdal-1.0.60/pom.xml	(revision 0)
+++ tags/org.gvsig.gdal-1.0.60/pom.xml	(revision 393)
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.gdal</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.60</version>
+    <name>org.gvsig.gdal</name>
+    <description>GDAL-support library extension</description>
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.desktop</artifactId>
+        <version>2.0.238</version>
+    </parent>
+
+    <url>http://devel.gvsig.org/sites/org.gvsig.gdal/${project.version}</url>
+    <scm>
+        <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-gdal/tags/org.gvsig.gdal-1.0.60</connection>
+        <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-gdal/tags/org.gvsig.gdal-1.0.60</developerConnection>
+        <url>scm:svn:https://devel.gvsig.org/svn/gvsig-gdal/tags/org.gvsig.gdal-1.0.60</url>
+    </scm>
+    <developers>
+        <developer>
+            <id>jjdelcerro</id>
+            <name>Joaqu�n Jose del Cerro</name>
+            <email>jjdelcerro@gvsig.org</email>
+            <roles>
+                <role>Architect</role>
+                <role>Developer</role>
+            </roles>
+        </developer>
+        <developer>
+            <id>jbadia</id>
+            <name>Jose Badia</name>
+            <email>badia_jos@gva.es</email>
+            <roles>
+                <role>Developer</role>
+            </roles>
+        </developer>
+    </developers>
+    <distributionManagement>
+        <site>
+            <id>gvsig-repository</id>
+            <url>dav:https://devel.gvsig.org/sites/org.gvsig.gdal/${project.version}</url>
+        </site>
+    </distributionManagement>
+    <repositories>
+        <repository>
+            <id>gvsig-public-http-repository</id>
+            <name>gvSIG maven public HTTP repository</name>
+            <url>http://devel.gvsig.org/m2repo/j2se</url>
+            <releases>
+                <enabled>true</enabled>
+                <updatePolicy>daily</updatePolicy>
+                <checksumPolicy>warn</checksumPolicy>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+                <updatePolicy>daily</updatePolicy>
+                <checksumPolicy>warn</checksumPolicy>
+            </snapshots>
+        </repository>
+    </repositories>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+                <configuration>
+                    <tagBase>https://devel.gvsig.org/svn/gvsig-gdal/tags</tagBase>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <properties>
+        <svn.tags.folder>https://devel.gvsig.org/svn/gvsig-gdal/tags/</svn.tags.folder>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.gvsig</groupId>
+                <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                <version>1.0.60</version>
+                <type>zip</type>
+            </dependency>
+            <dependency>
+                <groupId>org.gvsig</groupId>
+                <artifactId>org.gvsig.gdal.app.mainplugin.common</artifactId>
+                <version>1.0.60</version>
+                <type>jar</type>
+            </dependency>
+            <dependency>
+                <groupId>org.gvsig</groupId>
+                <artifactId>org.gvsig.gdal.app.mainplugin.all.all</artifactId>
+                <version>1.0.60</version>
+            </dependency>
+            <dependency>
+                <groupId>org.gvsig</groupId>
+                <artifactId>org.gvsig.gdal.app.mainplugin.lin.x86</artifactId>
+                <version>1.0.60</version>
+            </dependency>
+            <dependency>
+                <groupId>org.gvsig</groupId>
+                <artifactId>org.gvsig.gdal.app.mainplugin.lin.x86_64</artifactId>
+                <version>1.0.60</version>
+            </dependency>
+            <dependency>
+                <groupId>org.gvsig</groupId>
+                <artifactId>org.gvsig.gdal.app.mainplugin.win.x86</artifactId>
+                <version>1.0.60</version>
+            </dependency>
+            <dependency>
+            	<groupId>org.gvsig</groupId>
+            	<artifactId>org.gvsig.gdal.app.ogr.mainplugin</artifactId>
+                <version>1.0.60</version>
+            </dependency>
+            <dependency>
+            	<groupId>org.gvsig</groupId>
+            	<artifactId>org.gvsig.gdal.prov.ogr</artifactId>
+                <version>1.0.60</version>
+            </dependency>
+            <dependency>
+            	<groupId>org.gvsig</groupId>
+            	<artifactId>org.gvsig.gdal.prov.gml</artifactId>
+                <version>1.0.60</version>
+            </dependency>
+            <dependency>
+            	<groupId>org.gvsig</groupId>
+            	<artifactId>org.gvsig.gdal.app.ogr.gml</artifactId>
+                <version>1.0.60</version>
+            </dependency>
+
+           <!--
+             This is the version of gdal used to compile, but it not has to match
+             with version available at runtime.
+             The runtime version is platform dependent.
+           -->
+            <dependency>
+                <groupId>org.gdal</groupId>
+                <artifactId>gdal</artifactId>
+                <version>1.11.2.2</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <modules>
+        <!--
+        <module>org.gvsig.gdal.gpx</module>
+        -->
+        <module>org.gvsig.gdal.app</module>
+        <module>org.gvsig.gdal.prov</module>
+    </modules>
+</project>

Property changes on: tags/org.gvsig.gdal-1.0.60/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain


Property changes on: tags/org.gvsig.gdal-1.0.60
___________________________________________________________________
Added: svn:ignore
   + .project
.directory
.settings


