do you agree with my assessment below?.. ede

On 06.10.2016 13:00, Michaël Michaud wrote:
> Hi,
> 
> Yes, seems that I've broken something,
> 
> Michaël
> 
> 
> Le 06/10/2016 à 12:07, [email protected] a écrit :
>> hey Mike,
>>
>> is it possible you broke zip reloading on project opening with your commit? 
>> haven't downloaded it yet and am not sure i like the changes. many changes 
>> always equals a higher probability to break something.
>> why couldn't you simply create the "missing" property directly before the 
>> file is read/written in ReaderWriterFileDataSource ?
>>
>> i can have a go at it, but maybe you had a good reason to touch all these 
>> classes.
>>
>> ..ede
>>
>> On 06.10.2016 08:44, [email protected] wrote:
>>> Revision: 5047
>>>            http://sourceforge.net/p/jump-pilot/code/5047
>>> Author:   michaudm
>>> Date:     2016-10-06 06:44:39 +0000 (Thu, 06 Oct 2016)
>>> Log Message:
>>> -----------
>>> Use URI_KEY and FILE_KEY properties for file based datasources in order to 
>>> keep compatibility with legacy plugins
>>>
>>> Modified Paths:
>>> --------------
>>>      core/trunk/ChangeLog
>>>      core/trunk/src/com/vividsolutions/jump/io/CompressedFile.java
>>>      core/trunk/src/com/vividsolutions/jump/io/datasource/DataSource.java
>>>      
>>> core/trunk/src/com/vividsolutions/jump/io/datasource/ReaderWriterFileDataSource.java
>>>      
>>> core/trunk/src/com/vividsolutions/jump/workbench/datasource/FileDataSourceQueryChooser.java
>>>      
>>> core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/OpenProjectPlugIn.java
>>>      core/trunk/src/jumptest/io/Playground.java
>>>      core/trunk/src/language/jump.properties
>>>      core/trunk/src/language/jump_cz.properties
>>>      core/trunk/src/language/jump_de.properties
>>>      core/trunk/src/language/jump_es.properties
>>>      core/trunk/src/language/jump_fi.properties
>>>      core/trunk/src/language/jump_fr.properties
>>>      core/trunk/src/language/jump_hu.properties
>>>      core/trunk/src/language/jump_it.properties
>>>      core/trunk/src/language/jump_ja_JP.properties
>>>      core/trunk/src/language/jump_ml.properties
>>>      core/trunk/src/language/jump_pt.properties
>>>      core/trunk/src/language/jump_pt_BR.properties
>>>      core/trunk/src/language/jump_ta_IN.properties
>>>      core/trunk/src/language/jump_te.properties
>>>      core/trunk/src/language/jump_zh_CN.properties
>>>      core/trunk/src/language/jump_zh_HK.properties
>>>      core/trunk/src/org/openjump/core/ccordsys/utils/ProjUtils.java
>>>      
>>> core/trunk/src/org/openjump/core/ui/io/file/DataSourceFileLayerLoader.java
>>>      
>>> core/trunk/src/org/openjump/core/ui/plugin/file/SaveLayersWithoutDataSourcePlugIn.java
>>>      
>>> core/trunk/src/org/openjump/core/ui/plugin/file/open/OpenProjectWizard.java
>>>      
>>> core/trunk/src/org/openjump/core/ui/plugin/layer/NewLayerPropertiesPlugIn.java
>>>      
>>> core/trunk/src/org/openjump/core/ui/plugin/mousemenu/SaveDatasetsPlugIn.java
>>>
>>> Modified: core/trunk/ChangeLog
>>> ===================================================================
>>> --- core/trunk/ChangeLog    2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ core/trunk/ChangeLog    2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -3,6 +3,10 @@
>>>   # 2. make sure that lines break at 80 chars for constricted display 
>>> situations
>>>   #<-------------------------------- 80 chars 
>>> ---------------------------------->#
>>>   
>>> +2016-10-06 mmichaud <[email protected]>
>>> +  * Use URI_KEY and FILE_KEY properties for file based datasources
>>> +    in order to keep compatibility with legacy plugins
>>> +
>>>   2016-10-05 mmichaud <[email protected]>
>>>     * Fix #431 : Save project with unsaved layers
>>>   
>>>
>>> Modified: core/trunk/src/com/vividsolutions/jump/io/CompressedFile.java
>>> ===================================================================
>>> --- core/trunk/src/com/vividsolutions/jump/io/CompressedFile.java   
>>> 2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ core/trunk/src/com/vividsolutions/jump/io/CompressedFile.java   
>>> 2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -207,7 +207,7 @@
>>>   
>>>       String extractMsg = compressedEntry != null ? " extract '" + 
>>> compressedEntry
>>>           + "'" : "";
>>> -    Logger.debug("open '" + filePath + "'" + extractMsg);
>>> +    Logger.debug("Open '" + filePath + "'" + extractMsg);
>>>   
>>>       // check file accessibility beforehand
>>>       File file = new File(filePath);
>>>
>>> Modified: 
>>> core/trunk/src/com/vividsolutions/jump/io/datasource/DataSource.java
>>> ===================================================================
>>> --- core/trunk/src/com/vividsolutions/jump/io/datasource/DataSource.java    
>>> 2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ core/trunk/src/com/vividsolutions/jump/io/datasource/DataSource.java    
>>> 2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -75,6 +75,7 @@
>>>     /**
>>>      * Filename property, used for file-based DataSources
>>>      */
>>> +  @Deprecated
>>>     public static final String FILE_KEY = "File";
>>>   
>>>     /**
>>>
>>> Modified: 
>>> core/trunk/src/com/vividsolutions/jump/io/datasource/ReaderWriterFileDataSource.java
>>> ===================================================================
>>> --- 
>>> core/trunk/src/com/vividsolutions/jump/io/datasource/ReaderWriterFileDataSource.java
>>>     2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ 
>>> core/trunk/src/com/vividsolutions/jump/io/datasource/ReaderWriterFileDataSource.java
>>>     2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -31,6 +31,7 @@
>>>    */
>>>   package com.vividsolutions.jump.io.datasource;
>>>   
>>> +import java.io.File;
>>>   import java.net.URI;
>>>   import java.util.ArrayList;
>>>   import java.util.Collection;
>>> @@ -90,7 +91,7 @@
>>>                   .setTitle(
>>>                       monitor,
>>>                       I18N.getMessage(
>>> -                        
>>> "com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open-{0}",
>>> +                        
>>> "com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open",
>>>                           createDescriptiveName(uri)));
>>>             }
>>>   
>>> @@ -115,14 +116,21 @@
>>>           
>>>           // make readers task monitor aware
>>>           DriverProperties dp = getWriterDriverProperties();
>>> -        URI uri = new URI(dp.getProperty(DataSource.URI_KEY));
>>> +        URI uri = null;
>>> +        if (dp.getProperty(DataSource.URI_KEY) != null) {
>>> +          uri = new URI(dp.getProperty(DataSource.URI_KEY));
>>> +        }
>>> +        // for legacy plugins
>>> +        else if (dp.getProperty(DataSource.FILE_KEY) != null) {
>>> +          uri = new File(dp.getProperty(DataSource.FILE_KEY)).toURI();
>>> +        }
>>>           if (writer instanceof TaskMonitorSupport) {
>>>             ((TaskMonitorSupport) writer).setTaskMonitor(monitor);
>>>             TaskMonitorUtil
>>>                 .setTitle(
>>>                     monitor,
>>>                     I18N.getMessage(
>>> -                      
>>> "com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write-{0}",
>>> +                      
>>> "com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write",
>>>                         createDescriptiveName(uri)));
>>>           }
>>>   
>>>
>>> Modified: 
>>> core/trunk/src/com/vividsolutions/jump/workbench/datasource/FileDataSourceQueryChooser.java
>>> ===================================================================
>>> --- 
>>> core/trunk/src/com/vividsolutions/jump/workbench/datasource/FileDataSourceQueryChooser.java
>>>      2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ 
>>> core/trunk/src/com/vividsolutions/jump/workbench/datasource/FileDataSourceQueryChooser.java
>>>      2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -210,8 +210,8 @@
>>>   
>>>       protected Map<?,?> toProperties(File file) {
>>>           HashMap<String,String> properties = new HashMap<>();
>>> +        properties.put(DataSource.URI_KEY, file.toURI().toString());
>>>           properties.put(DataSource.FILE_KEY, file.getPath());
>>> -        properties.put(DataSource.URI_KEY, file.toURI().toString());
>>>           properties.put(DataSource.COORDINATE_SYSTEM_KEY,
>>>               
>>> getFileChooserPanel().getSelectedCoordinateSystem().getName());
>>>   
>>>
>>> Modified: 
>>> core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/OpenProjectPlugIn.java
>>> ===================================================================
>>> --- 
>>> core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/OpenProjectPlugIn.java
>>>        2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ 
>>> core/trunk/src/com/vividsolutions/jump/workbench/ui/plugin/OpenProjectPlugIn.java
>>>        2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -237,7 +237,8 @@
>>>                           {
>>>                               //set the new source for this layer
>>>                             Map properties = 
>>> layer.getDataSourceQuery().getDataSource().getProperties();
>>> -                           properties.put(DataSource.FILE_KEY, filename);
>>> +                            properties.put(DataSource.URI_KEY, new 
>>> File(filename).toURI().toString());
>>> +                            properties.put(DataSource.FILE_KEY, filename);
>>>                             
>>> layer.getDataSourceQuery().getDataSource().setProperties(properties);
>>>                             load(layer, registry, monitor);
>>>                           }
>>>
>>> Modified: core/trunk/src/jumptest/io/Playground.java
>>> ===================================================================
>>> --- core/trunk/src/jumptest/io/Playground.java      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/jumptest/io/Playground.java      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -10,6 +10,7 @@
>>>   import com.vividsolutions.jump.task.DummyTaskMonitor;
>>>   
>>>   
>>> +import java.io.File;
>>>   import java.util.ArrayList;
>>>   import java.util.Collections;
>>>   import java.util.Iterator;
>>>
>>> Modified: core/trunk/src/language/jump.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump.properties 2016-10-05 14:15:10 UTC (rev 
>>> 5046)
>>> +++ core/trunk/src/language/jump.properties 2016-10-06 06:44:39 UTC (rev 
>>> 5047)
>>> @@ -22,12 +22,15 @@
>>>   JUMPWorkbench.status.initialize-datasources = Initialize Datasources
>>>   JUMPWorkbench.status.show-workbench = Show Workbench
>>>   
>>> +
>>>   
>>> com.vividsolutions.jump.datastore.spatialdatabases.AbstractSpatialDatabasesDSExtension.datastore-disabled
>>>  = Datastore ''{0}'' disabled\: {1}
>>>   
>>> com.vividsolutions.jump.datastore.spatialdatabases.AbstractSpatialDatabasesDSExtension.missing-dependency-jars
>>>  = Missing dependency jars {0}
>>>   
>>> com.vividsolutions.jump.datastore.spatialdatabases.AbstractSpatialDatabasesDSExtension.there-were-errors
>>>  = There were errors\: {0}
>>>   
>>> com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.unsupported-query-type
>>>  = Unsupported Query Type
>>>   
>>> com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.resultset-must-have-a-geometry-column
>>>  = Result Set Must Have a Geometry Column
>>>   
>>> com.vividsolutions.jump.datastore.spatialdatabases.SpatialDatabasesDSConnection.SQL-error
>>>  = SQL error\:
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open = 
>>> Open {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write = 
>>> Write {0}
>>>   com.vividsolutions.jump.io.ShapefileReader.shp-gt-dbf = Error reading 
>>> shapefile ''{0}'' \:\n\
>>>     \ number of records in shp ({1}) > number of records in dbf ({2}).
>>>   com.vividsolutions.jump.io.ShapefileReader.shp-lt-dbf = Error reading 
>>> shapefile ''{0}'' \:\n\
>>>
>>> Modified: core/trunk/src/language/jump_cz.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_cz.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_cz.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2710,4 +2710,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_de.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_de.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_de.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2706,4 +2706,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_es.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_es.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_es.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2689,4 +2689,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_fi.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_fi.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_fi.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2683,4 +2683,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_fr.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_fr.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_fr.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2713,4 +2713,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=Ecrire
>>>  des geometries avec Z
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=Cl\xE9
>>>  primaire
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=Ouvrir
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=Enregistrer
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_hu.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_hu.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_hu.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2706,4 +2706,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_it.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_it.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_it.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2690,3 +2690,5 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=Chiave
>>>  primaria
>>>   ui.EditOptionsPanel.select-geometry=Seleziona la geometria dopo che \xE8 
>>> stata disegnata
>>>   ui.EditOptionsPanel.select-geometry-warning=Attenzione: questa opzione 
>>> diseleziona geometrie selezionate precedentemente
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>>
>>> Modified: core/trunk/src/language/jump_ja_JP.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_ja_JP.properties   2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_ja_JP.properties   2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2708,4 +2708,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_ml.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_ml.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_ml.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -3979,4 +3979,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_pt.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_pt.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_pt.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2704,4 +2704,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_pt_BR.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_pt_BR.properties   2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_pt_BR.properties   2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2705,4 +2705,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_ta_IN.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_ta_IN.properties   2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_ta_IN.properties   2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2707,4 +2707,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_te.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_te.properties      2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_te.properties      2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -3213,4 +3213,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_zh_CN.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_zh_CN.properties   2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_zh_CN.properties   2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2868,4 +2868,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/language/jump_zh_HK.properties
>>> ===================================================================
>>> --- core/trunk/src/language/jump_zh_HK.properties   2016-10-05 14:15:10 UTC 
>>> (rev 5046)
>>> +++ core/trunk/src/language/jump_zh_HK.properties   2016-10-06 06:44:39 UTC 
>>> (rev 5047)
>>> @@ -2869,4 +2869,6 @@
>>>   
>>> org.openjump.core.ui.plugin.datastore.DataStoreSaveDriverPanel.write-3d-geometries=#T:Write
>>>  3D geometries
>>>   
>>> org.openjump.core.ui.plugin.datastore.postgis2.PostGISSaveDriverPanel.primary-key=#T:Primary
>>>  Key
>>>   ui.EditOptionsPanel.select-geometry=#T:Select the geometry after it has 
>>> been drawn
>>> -ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> \ No newline at end of file
>>> +ui.EditOptionsPanel.select-geometry-warning=#T:Warning: this option 
>>> deselects previous geometries selection
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.open=#T:Open
>>>  {0}
>>> +com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource.write=#T:Write
>>>  {0}
>>> \ No newline at end of file
>>>
>>> Modified: core/trunk/src/org/openjump/core/ccordsys/utils/ProjUtils.java
>>> ===================================================================
>>> --- core/trunk/src/org/openjump/core/ccordsys/utils/ProjUtils.java  
>>> 2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ core/trunk/src/org/openjump/core/ccordsys/utils/ProjUtils.java  
>>> 2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -18,8 +18,10 @@
>>>   
>>>   import java.io.File;
>>>   import java.io.IOException;
>>> +import java.net.URI;
>>>   import java.net.URISyntaxException;
>>>   import java.util.Iterator;
>>> +import java.util.Map;
>>>   import java.util.Scanner;
>>>   
>>>   /**
>>> @@ -301,9 +303,14 @@
>>>           else {
>>>               if (!isDataBaseLayer(layer)) {
>>>                   DataSourceQuery dsq = layer.getDataSourceQuery();
>>> -                Object fnameObj = 
>>> dsq.getDataSource().getProperties().get(DataSource.FILE_KEY);
>>> -                fileSourcePath = fnameObj.toString();
>>> -                srsInfo = getSRSInfoFromAuxiliaryFile(fileSourcePath);
>>> +                Map properties = dsq.getDataSource().getProperties();
>>> +                if (properties.get(DataSource.URI_KEY) != null) {
>>> +                    fileSourcePath = new 
>>> URI(properties.get(DataSource.URI_KEY).toString()).getPath();
>>> +                    srsInfo = getSRSInfoFromAuxiliaryFile(fileSourcePath);
>>> +                } else if (properties.get(DataSource.FILE_KEY) != null) {
>>> +                    fileSourcePath = 
>>> properties.get(DataSource.FILE_KEY).toString();
>>> +                    srsInfo = getSRSInfoFromAuxiliaryFile(fileSourcePath);
>>> +                }
>>>               }
>>>           }
>>>           return srsInfo;
>>>
>>> Modified: 
>>> core/trunk/src/org/openjump/core/ui/io/file/DataSourceFileLayerLoader.java
>>> ===================================================================
>>> --- 
>>> core/trunk/src/org/openjump/core/ui/io/file/DataSourceFileLayerLoader.java  
>>>     2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ 
>>> core/trunk/src/org/openjump/core/ui/io/file/DataSourceFileLayerLoader.java  
>>>     2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -27,6 +27,7 @@
>>>   package org.openjump.core.ui.io.file;
>>>   
>>>   import java.io.File;
>>> +import java.net.MalformedURLException;
>>>   import java.net.URI;
>>>   import java.net.URISyntaxException;
>>>   import java.util.ArrayList;
>>> @@ -396,6 +397,7 @@
>>>         file = new File(uri);
>>>       }
>>>       String filePath = file.getAbsolutePath();
>>> +    properties.put(DataSource.URI_KEY, uri.toString());
>>>       properties.put(DataSource.FILE_KEY, filePath);
>>>       properties.putAll(options);
>>>       return properties;
>>>
>>> Modified: 
>>> core/trunk/src/org/openjump/core/ui/plugin/file/SaveLayersWithoutDataSourcePlugIn.java
>>> ===================================================================
>>> --- 
>>> core/trunk/src/org/openjump/core/ui/plugin/file/SaveLayersWithoutDataSourcePlugIn.java
>>>   2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ 
>>> core/trunk/src/org/openjump/core/ui/plugin/file/SaveLayersWithoutDataSourcePlugIn.java
>>>   2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -166,8 +166,8 @@
>>>           String path = new File(dir, fileName.getName()).getAbsolutePath();
>>>           
>>>           DriverProperties dp = new DriverProperties();
>>> -        dp.set("File", path);
>>> -        dp.set(DataSource.URI_KEY, new 
>>> File(path).toURI().toURL().toExternalForm());
>>> +        dp.set(DataSource.URI_KEY, new File(path).toURI().toString());
>>> +        dp.set(DataSource.FILE_KEY, path);
>>>           dataSource.setProperties(dp);
>>>                   
>>>           DataSourceQuery dsq = new DataSourceQuery(dataSource, path, path);
>>>
>>> Modified: 
>>> core/trunk/src/org/openjump/core/ui/plugin/file/open/OpenProjectWizard.java
>>> ===================================================================
>>> --- 
>>> core/trunk/src/org/openjump/core/ui/plugin/file/open/OpenProjectWizard.java 
>>>     2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ 
>>> core/trunk/src/org/openjump/core/ui/plugin/file/open/OpenProjectWizard.java 
>>>     2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -35,6 +35,8 @@
>>>   import java.awt.*;
>>>   import java.awt.geom.NoninvertibleTransformException;
>>>   import java.io.*;
>>> +import java.net.MalformedURLException;
>>> +import java.net.URI;
>>>   import java.util.ArrayList;
>>>   import java.util.Collections;
>>>   import java.util.List;
>>> @@ -299,11 +301,18 @@
>>>                               DataSourceQuery dataSourceQuery = 
>>> layer.getDataSourceQuery();
>>>                               DataSource dataSource = 
>>> dataSourceQuery.getDataSource();
>>>                               Map properties = dataSource.getProperties();
>>> -                            String fname = 
>>> properties.get(DataSource.FILE_KEY).toString();
>>> +                            String fname = null;
>>> +                            if (properties.get(DataSource.URI_KEY) != null 
>>> && properties.get(DataSource.URI_KEY).toString().length()>0) {
>>> +                                fname = new 
>>> URI(properties.get(DataSource.URI_KEY).toString()).getPath();
>>> +                            }
>>> +                            //if (fname == null) {
>>> +                            //    fname = 
>>> properties.get(DataSource.FILE_KEY).toString();
>>> +                            //}
>>>                               String filename = findFile.getFileName(fname);
>>>                               if (filename.length() > 0) {
>>>                                   // set the new source for this layer
>>> -                                properties.put(DataSource.FILE_KEY, 
>>> filename);
>>> +                                //properties.put(DataSource.FILE_KEY, 
>>> filename);
>>> +                                properties.put(DataSource.URI_KEY, new 
>>> File(filename).toURI().toString());
>>>                                   dataSource.setProperties(properties);
>>>                                   load(layer, registry, monitor);
>>>                               } else {
>>> @@ -424,14 +433,16 @@
>>>         return false;
>>>     }
>>>   
>>> -    private File getLayerFileProperty(Layer layer) {
>>> +    private File getLayerFileProperty(Layer layer) throws 
>>> MalformedURLException {
>>>         DataSourceQuery dataSourceQuery = layer.getDataSourceQuery();
>>>         DataSource dataSource = dataSourceQuery.getDataSource();
>>>         Map properties = dataSource.getProperties();
>>> -      Object property = properties.get(DataSource.FILE_KEY);
>>> -      if(property == null || property.toString().equals(""))
>>> -          return null;
>>> -      File layerFile = new File(property.toString());
>>> +      File layerFile = null;
>>> +      if (properties.get(DataSource.URI_KEY) != null && 
>>> properties.get(DataSource.URI_KEY).toString().length() > 0) {
>>> +          layerFile = new 
>>> File(URI.create(properties.get(DataSource.URI_KEY).toString()).toURL().toExternalForm());
>>> +      } else if (properties.get(DataSource.FILE_KEY) != null && 
>>> properties.get(DataSource.FILE_KEY).toString().length() > 0) {
>>> +          layerFile = new 
>>> File(properties.get(DataSource.FILE_KEY).toString());
>>> +      }
>>>         return layerFile;
>>>      }
>>>   
>>> @@ -439,6 +450,7 @@
>>>         DataSourceQuery dataSourceQuery = layer.getDataSourceQuery();
>>>         DataSource dataSource = dataSourceQuery.getDataSource();
>>>         Map properties = dataSource.getProperties();
>>> +      properties.put(DataSource.URI_KEY, file.toURI().toString());
>>>         properties.put(DataSource.FILE_KEY, file.getAbsolutePath());
>>>      }
>>>     
>>>
>>> Modified: 
>>> core/trunk/src/org/openjump/core/ui/plugin/layer/NewLayerPropertiesPlugIn.java
>>> ===================================================================
>>> --- 
>>> core/trunk/src/org/openjump/core/ui/plugin/layer/NewLayerPropertiesPlugIn.java
>>>   2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ 
>>> core/trunk/src/org/openjump/core/ui/plugin/layer/NewLayerPropertiesPlugIn.java
>>>   2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -37,6 +37,8 @@
>>>   import java.awt.event.ActionListener;
>>>   import java.io.File;
>>>   import java.io.IOException;
>>> +import java.net.URI;
>>> +import java.net.URISyntaxException;
>>>   import java.nio.charset.Charset;
>>>   import java.text.DecimalFormat;
>>>   import java.text.NumberFormat;
>>> @@ -440,8 +442,7 @@
>>>                           info = info
>>>                                   + property(SOURCE_PATH, label_Path_R, 
>>> bgColor1);
>>>                           // Add charset if selected vector layer is a 
>>> shapefile
>>> -                        if ((layers.length == 1)
>>> -                                && (layers[0].getDataSourceQuery() != 
>>> null)) {
>>> +                        if (layers[0].getDataSourceQuery() != null) {
>>>                               if (layers[0]
>>>                                       .getDataSourceQuery()
>>>                                       .getDataSource()
>>> @@ -460,8 +461,7 @@
>>>                   info = info + header("", COORDINATE_SYSTEM);
>>>                   setInfoProjection(layers);
>>>                   info = info + property(CRS, label_Coordinate, bgColor0);
>>> -                info = info
>>> -                        + property(SOURCE_PATH, label_Coordinate_file, 
>>> bgColor1);
>>> +                info = info + property(SOURCE_PATH, label_Coordinate_file, 
>>> bgColor1);
>>>               }
>>>               // if more than one layer.class is selected
>>>               else {
>>> @@ -526,7 +526,7 @@
>>>           }
>>>   
>>>           // Set Info layer (excluded projection)
>>> -        private void setInfo(Layer[] layers) throws IOException {
>>> +        private void setInfo(Layer[] layers) throws IOException, 
>>> URISyntaxException {
>>>               if (layers.length == 1) {
>>>                   // If only one layer is selected
>>>                   if (layers[0].getName().startsWith("wfs")) {
>>> @@ -568,7 +568,7 @@
>>>                           }
>>>                           String geoClassName = geo.getClass().getName();
>>>                           int count = geometryModes.get(geoClassName) == 
>>> null ? 0
>>> -                                : ((Integer) 
>>> geometryModes.get(geoClassName))
>>> +                                : (geometryModes.get(geoClassName))
>>>                                           .intValue();
>>>                           geometryModes.put(new String(geoClassName),
>>>                                   new Integer(count + 1));
>>> @@ -576,22 +576,20 @@
>>>                   }
>>>                   DataSourceQuery dsq = layers[l].getDataSourceQuery();
>>>                   if (dsq != null) {
>>> -                    String dsqSourceClass = dsq.getDataSource().getClass()
>>> -                            .getName();
>>> +                    String dsqSourceClass = 
>>> dsq.getDataSource().getClass().getName();
>>>                       if (sourceClass.equals("")) {
>>>                           sourceClass = dsqSourceClass;
>>>                       } else if (!sourceClass.equals(dsqSourceClass)) {
>>>                           multipleSourceTypes = true;
>>>                       }
>>> -                    Object fnameObj = dsq.getDataSource().getProperties()
>>> -                            .get(DataSource.FILE_KEY);
>>> -                    if (fnameObj == null) {
>>> -                        fnameObj = dsq.getDataSource().getProperties()
>>> -                                
>>> .get(DataStoreQueryDataSource.CONNECTION_DESCRIPTOR_KEY);
>>> +                    Map properties = dsq.getDataSource().getProperties();
>>> +                    if (properties.get(DataSource.URI_KEY) != null) {
>>> +                        sourcePath = new 
>>> URI(properties.get(DataSource.URI_KEY).toString()).getPath();
>>> +                    } else if (properties.get(DataSource.FILE_KEY) != 
>>> null) {
>>> +                        sourcePath = 
>>> properties.get(DataSource.FILE_KEY).toString();
>>> +                    } else if 
>>> (properties.get(DataStoreQueryDataSource.CONNECTION_DESCRIPTOR_KEY) != 
>>> null) {
>>> +                        sourcePath = 
>>> properties.get(DataStoreQueryDataSource.CONNECTION_DESCRIPTOR_KEY).toString();
>>>                       }
>>> -                    if (fnameObj != null) {
>>> -                        sourcePath = fnameObj.toString();
>>> -                    }
>>>                   }
>>>               }
>>>               if (numFeatures == 0) {
>>>
>>> Modified: 
>>> core/trunk/src/org/openjump/core/ui/plugin/mousemenu/SaveDatasetsPlugIn.java
>>> ===================================================================
>>> --- 
>>> core/trunk/src/org/openjump/core/ui/plugin/mousemenu/SaveDatasetsPlugIn.java
>>>     2016-10-05 14:15:10 UTC (rev 5046)
>>> +++ 
>>> core/trunk/src/org/openjump/core/ui/plugin/mousemenu/SaveDatasetsPlugIn.java
>>>     2016-10-06 06:44:39 UTC (rev 5047)
>>> @@ -627,8 +627,9 @@
>>>             String newFileName = path + newLayer.getName() + ".shp";
>>>             HashMap properties = new HashMap();
>>>             properties.put(DataSource.COORDINATE_SYSTEM_KEY, "Unspecified");
>>> +          properties.put(DataSource.URI_KEY, new 
>>> File(newFileName).toURI().toString());
>>>             properties.put(DataSource.FILE_KEY, newFileName);
>>> -          DataSource dataSource = (DataSource) 
>>> StandardReaderWriterFileDataSource.Shapefile.class
>>> +          DataSource dataSource = 
>>> StandardReaderWriterFileDataSource.Shapefile.class
>>>                 .newInstance();
>>>             dataSource.setProperties(properties);
>>>             DataSourceQuery dataSourceQuery = new 
>>> DataSourceQuery(dataSource,
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Jump-pilot-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Jump-pilot-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>
> 
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most 
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> Jump-pilot-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to