Index: applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/BruxellesDataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/BruxellesDataSetHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/BruxellesDataSetHandler.java	(revision 28113)
@@ -18,9 +18,8 @@
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.Locale;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.be.BelgianDataSetHandler;
+import org.openstreetmap.josm.plugins.opendata.core.util.OdUtils;
 import org.openstreetmap.josm.plugins.opendata.modules.be.bruxelles.BruxellesConstants;
 
@@ -70,8 +69,5 @@
 	public URL getLocalPortalURL() {
 		String basePortal = null;
-		String lang = Main.pref.get("language");
-		if (lang == null || lang.isEmpty()) {
-			lang = Locale.getDefault().toString();
-		}
+		String lang = OdUtils.getJosmLanguage();
 			
 		if (lang.startsWith("fr")) {
Index: applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/culture/BDHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/culture/BDHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/be.bruxelles/src/org/openstreetmap/josm/plugins/opendata/modules/be/bruxelles/datasets/culture/BDHandler.java	(revision 28113)
@@ -7,4 +7,8 @@
 public class BDHandler extends BruxellesDataSetHandler {
 
+	public BDHandler() {
+		getCsvHandler().setSeparator(",");
+	}
+	
 	@Override
 	public boolean acceptsFilename(String filename) {
@@ -19,11 +23,3 @@
 		}
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getCsvSeparator()
-	 */
-	@Override
-	public String getCsvSeparator() {
-		return ",";
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/datasets/DataGovDataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/datasets/DataGovDataSetHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/be.datagovbe/src/org/openstreetmap/josm/plugins/opendata/modules/be/datagovbe/datasets/DataGovDataSetHandler.java	(revision 28113)
@@ -15,6 +15,4 @@
 //    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 package org.openstreetmap.josm.plugins.opendata.modules.be.datagovbe.datasets;
-
-import java.net.URL;
 
 import org.openstreetmap.josm.data.projection.Projection;
@@ -58,11 +56,3 @@
 		return SOURCE_DATAGOVBE;
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getLocalPortalURL()
-	 */
-	@Override
-	public URL getLocalPortalURL() {
-		return null;
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/Cg41DataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/Cg41DataSetHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.cg41/src/org/openstreetmap/josm/plugins/opendata/modules/fr/cg41/datasets/Cg41DataSetHandler.java	(revision 28113)
@@ -2,5 +2,4 @@
 
 import java.net.MalformedURLException;
-import java.net.URL;
 
 import org.openstreetmap.josm.data.osm.Tag;
@@ -9,6 +8,4 @@
 
 public abstract class Cg41DataSetHandler extends FrenchDataSetHandler implements Cg41Constants {
-	
-	private int portalId;
 	
 	public Cg41DataSetHandler(int portalId, String nationalPath) {
@@ -36,6 +33,13 @@
 
 	private final void init(int portalId, String nationalPath) {
-		this.portalId = portalId;
 		setNationalPortalPath(nationalPath);
+		try {
+			if (portalId > 0) {
+				setLocalPortalURL(PORTAL_CG41 + portalId);
+			}
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		}
+
 	}
 
@@ -63,14 +67,3 @@
 		return ICON_CG41_16;
 	}
-
-	public final URL getLocalPortalURL() {
-		try {
-			if (portalId > 0) {
-				return new URL(PORTAL_CG41 + portalId);
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/DataGouvDataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/DataGouvDataSetHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/DataGouvDataSetHandler.java	(revision 28113)
@@ -17,8 +17,8 @@
 
 import java.net.MalformedURLException;
-import java.net.URL;
 
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchDataSetHandler;
+import org.openstreetmap.josm.plugins.opendata.core.licenses.License;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.DataGouvFrConstants;
 
@@ -50,4 +50,5 @@
 		setNationalPortalPath(portalPath);
 		setSingleProjection(singleProjection);
+		setLicense(License.LOOL);
 	}
 
@@ -58,25 +59,4 @@
 	public String getSource() {
 		return SOURCE_DATAGOUVFR;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getLocalPortalURL()
-	 */
-	@Override
-	public URL getLocalPortalURL() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getLicenseURL()
-	 */
-	@Override
-	public URL getLicenseURL() {
-		try {
-			return new URL(FRENCH_PORTAL+"Licence-Ouverte-Open-Licence");
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
 	}
 	
Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/administration/GeoFlaHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/administration/GeoFlaHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/administration/GeoFlaHandler.java	(revision 28113)
@@ -37,16 +37,9 @@
 		super();
 		setName("GEOFLA®");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.portals.fr.datagouvfr.datasets.DataGouvDataSetHandler#getLocalPortalURL()
-	 */
-	@Override
-	public URL getLocalPortalURL() {
+		getShpHandler().setPreferMultipolygonToSimpleWay(true);
 		try {
-			return new URL("http://professionnels.ign.fr/ficheProduitCMS.do?idDoc=6185461");
+			setLocalPortalURL("http://professionnels.ign.fr/ficheProduitCMS.do?idDoc=6185461");
 		} catch (MalformedURLException e) {
-			System.err.println(e.getMessage());
-			return null;
+			e.printStackTrace();
 		}
 	}
@@ -79,9 +72,4 @@
 	protected boolean isArrondissementFile(String filename) {
 		return acceptsShpFilename(filename, "ARRONDISSEMENT") || acceptsShpFilename(filename, "LIMITE_ARRONDISSEMENT");
-	}
-
-	@Override
-	public boolean preferMultipolygonToSimpleWay() {
-		return true;
 	}
 
Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/culture/BibliothequesHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/culture/BibliothequesHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/culture/BibliothequesHandler.java	(revision 28113)
@@ -16,6 +16,4 @@
 package org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.datasets.culture;
 
-import java.nio.charset.Charset;
-
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
@@ -28,4 +26,5 @@
 		setName("Bibliothèques municipales");
 		setDownloadFileName("lieux de lecture_geoloc.txt");
+		getCsvHandler().setCharset(ISO8859_15);
 	}
 
@@ -41,11 +40,3 @@
 		}
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getCsvCharset()
-	 */
-	@Override
-	public Charset getCsvCharset() {
-		return Charset.forName(ISO8859_15);
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/diplomatie/EtabAEFEHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/diplomatie/EtabAEFEHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/diplomatie/EtabAEFEHandler.java	(revision 28113)
@@ -26,4 +26,5 @@
 		setName("Établissements du réseau d'enseignement de l'AEFE");
 		setDownloadFileName("ETALAB_MAEE_Extraction_LDAP_geoloc_AEFE_2011-10-13.csv");
+		getCsvHandler().setSeparator(",");
 	}
 
@@ -44,11 +45,3 @@
 		}
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getCsvSeparator()
-	 */
-	@Override
-	public String getCsvSeparator() {
-		return ",";
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/AssainissementHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/AssainissementHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/ecologie/AssainissementHandler.java	(revision 28113)
@@ -30,4 +30,5 @@
 		super("assainissement-collectif-30381843");
 		setName("Assainissement collectif");
+		getSpreadSheetHandler().setSheetNumber(1);
 	}
 
@@ -40,12 +41,4 @@
 	public void updateDataSet(DataSet ds) {
 		// TODO Auto-generated method stub
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getSheetNumber()
-	 */
-	@Override
-	public int getSheetNumber() {
-		return 1;
 	}
 
Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/Etab1er2ndDegreHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/Etab1er2ndDegreHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/Etab1er2ndDegreHandler.java	(revision 28113)
@@ -16,18 +16,31 @@
 package org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.datasets.education;
 
-import java.nio.charset.Charset;
-
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.plugins.opendata.core.io.tabular.DefaultCsvHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.datasets.DataGouvDataSetHandler;
 
 public class Etab1er2ndDegreHandler extends DataGouvDataSetHandler {
 
+	private class EtabCsvHandler extends DefaultCsvHandler {
+		
+		public EtabCsvHandler() {
+			setCharset(ISO8859_15);
+			setHandlesProjection(true);
+		}
+		
+		@Override
+		public LatLon getCoor(EastNorth en, String[] fields) {
+			return getLatLonByDptCode(en, fields[0].substring(0, 3), false);
+		}
+	}
+	
 	public Etab1er2ndDegreHandler() {
 		super("Géolocalisation-des-établissements-d'enseignement-du-premier-degré-et-du-second-degré-du-ministère-d-30378093");
 		setName("Établissements d'enseignement du premier degré et du second degré");
 		setDownloadFileName("MENJVA_etab_geoloc.csv");
+		setCsvHandler(new EtabCsvHandler());
 	}
 	
@@ -53,27 +66,3 @@
 		}
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#handlesCsvProjection()
-	 */
-	@Override
-	public boolean handlesSpreadSheetProjection() {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getCsvCoor(org.openstreetmap.josm.data.coor.EastNorth, java.lang.String[])
-	 */
-	@Override
-	public LatLon getSpreadSheetCoor(EastNorth en, String[] fields) {
-		return getLatLonByDptCode(en, fields[0].substring(0, 3), false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getCsvCharset()
-	 */
-	@Override
-	public Charset getCsvCharset() {
-		return Charset.forName(ISO8859_15);
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/EtabSupHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/EtabSupHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/education/EtabSupHandler.java	(revision 28113)
@@ -24,8 +24,17 @@
 public class EtabSupHandler extends DataGouvDataSetHandler {
 
+	private class EtabSupCsvHandler extends InternalCsvHandler {
+		@Override
+		public LatLon getCoor(EastNorth en, String[] fields) {
+			// X/Y sont inversees dans le fichier
+			return wgs84.eastNorth2latlon(new EastNorth(en.north(), en.east()));
+		}
+	}
+	
 	public EtabSupHandler() {
 		super("Etablissements-d'enseignement-supérieur-30382046", wgs84);
 		setName("Établissements d'enseignement supérieur");
 		setDownloadFileName("livraison ETALAB 28 11 2011.xls");
+		setCsvHandler(new EtabSupCsvHandler());
 	}
 
@@ -42,12 +51,3 @@
 		}
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.portals.fr.datagouvfr.datasets.DataGouvDataSetHandler#getSpreadSheetCoor(org.openstreetmap.josm.data.coor.EastNorth, java.lang.String[])
-	 */
-	@Override
-	public LatLon getSpreadSheetCoor(EastNorth en, String[] fields) {
-		// X/Y sont inversees dans le fichier
-		return wgs84.eastNorth2latlon(new EastNorth(en.north(), en.east()));
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/EauxDeSurfaceHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/EauxDeSurfaceHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/EauxDeSurfaceHandler.java	(revision 28113)
@@ -29,4 +29,5 @@
 
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.plugins.opendata.core.io.archive.DefaultZipHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.datasets.DataGouvDataSetHandler;
 import org.openstreetmap.josm.tools.Pair;
@@ -65,4 +66,5 @@
 	public EauxDeSurfaceHandler() {
 		setName("Eaux de surface");
+		setZipHandler(new InternalZipHandler());
 	}
 	
@@ -123,25 +125,24 @@
 		return new Pair<String, URL>(a.name, new URL("http://www.rapportage.eaufrance.fr/sites/default/files/SIG/FR"+a.code+"_SW.zip"));
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#notifyTempFileWritten(java.io.File)
-	 */
-	@Override
-	public void notifyTempFileWritten(File file) {
-		if (file.getName().matches(SHP_PATTERN.replace("(.*)", "F")+"\\.prj")) { // Adour-Garonne .prj files cannot be parsed because they do not contain quotes... 
-			try {
-				BufferedReader reader = new BufferedReader(new FileReader(file));
-				String line = reader.readLine();
-				reader.close();
-				if (!line.contains("\"")) {
-					for (String term : new String[]{"GCS_ETRS_1989", "D_ETRS_1989", "GRS_1980", "Greenwich", "Degree"}) {
-						line = line.replace(term, "\""+term+"\"");
+	
+	private class InternalZipHandler extends DefaultZipHandler {
+		@Override
+		public void notifyTempFileWritten(File file) {
+			if (file.getName().matches(SHP_PATTERN.replace("(.*)", "F")+"\\.prj")) { // Adour-Garonne .prj files cannot be parsed because they do not contain quotes... 
+				try {
+					BufferedReader reader = new BufferedReader(new FileReader(file));
+					String line = reader.readLine();
+					reader.close();
+					if (!line.contains("\"")) {
+						for (String term : new String[]{"GCS_ETRS_1989", "D_ETRS_1989", "GRS_1980", "Greenwich", "Degree"}) {
+							line = line.replace(term, "\""+term+"\"");
+						}
+						BufferedWriter writer = new BufferedWriter(new FileWriter(file));
+						writer.write(line);
+						writer.close();
 					}
-					BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-					writer.write(line);
-					writer.close();
+				} catch (Exception e) {
+					e.printStackTrace();
 				}
-			} catch (Exception e) {
-				e.printStackTrace();
 			}
 		}
Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/transport/PassageNiveauHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/transport/PassageNiveauHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/transport/PassageNiveauHandler.java	(revision 28113)
@@ -16,6 +16,4 @@
 package org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.datasets.transport;
 
-import java.nio.charset.Charset;
-
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
@@ -28,4 +26,5 @@
 		setName("Passages à niveau");
 		setDownloadFileName("passage_a_niveau.csv");
+		getCsvHandler().setCharset(ISO8859_15);
 	}
 
@@ -41,11 +40,3 @@
 		}
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getCsvCharset()
-	 */
-	@Override
-	public Charset getCsvCharset() {
-		return Charset.forName(ISO8859_15);
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/LeMansDataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/LeMansDataSetHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.lemans/src/org/openstreetmap/josm/plugins/opendata/modules/fr/lemans/datasets/LeMansDataSetHandler.java	(revision 28113)
@@ -23,10 +23,9 @@
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchDataSetHandler;
+import org.openstreetmap.josm.plugins.opendata.core.licenses.License;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.lemans.LeMansConstants;
 import org.openstreetmap.josm.tools.Pair;
 
 public abstract class LeMansDataSetHandler extends FrenchDataSetHandler implements LeMansConstants {
-	
-	private String uuid;
 	
 	private String kmzUuid;
@@ -58,5 +57,12 @@
 
 	private final void init(String uuid) {
-		this.uuid = uuid;
+		try {
+			setLicense(License.ODbL);
+			if (uuid != null && !uuid.isEmpty()) {
+				setLocalPortalURL(PORTAL + "page.do?t=2&uuid=" + uuid);
+			}
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		}
 	}
 		
@@ -73,20 +79,9 @@
 		return SOURCE_LE_MANS;
 	}
-
-	public final URL getLocalPortalURL() {
-		try {
-			if (uuid != null && !uuid.isEmpty()) {
-				return new URL(PORTAL + "page.do?t=2&uuid=" + uuid);
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
 	
 	/* (non-Javadoc)
 	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getLicenseURL()
 	 */
-	@Override
+	/*@Override
 	public URL getLicenseURL() {
 		try {
@@ -96,6 +91,6 @@
 		}
 		return null;
-	}
-	
+	}*/
+
 	/* (non-Javadoc)
 	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getDataURLs()
Index: applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisLicense.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisLicense.java	(revision 28113)
+++ applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/ParisLicense.java	(revision 28113)
@@ -0,0 +1,30 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    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, see <http://www.gnu.org/licenses/>.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.paris;
+
+import org.openstreetmap.josm.plugins.opendata.core.licenses.ODbL;
+
+public class ParisLicense extends ODbL {
+
+	public ParisLicense() {
+		// TODO: Paris license
+		/*try {
+			setURL(PORTAL + "/la-licence", "fr");
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		}*/
+	}
+}
Index: applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/ParisDataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/ParisDataSetHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/ParisDataSetHandler.java	(revision 28113)
@@ -22,4 +22,5 @@
 import org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchDataSetHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.paris.ParisConstants;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.paris.ParisLicense;
 
 public abstract class ParisDataSetHandler extends FrenchDataSetHandler implements ParisConstants {
@@ -53,4 +54,12 @@
 	private final void init(int documentId) {
 		this.documentId = documentId;
+		setLicense(new ParisLicense());
+		try {
+			if (documentId > 0) {
+				setLocalPortalURL(PORTAL + "jsp/site/Portal.jsp?document_id="+documentId + "&portlet_id="+portletId);
+			}
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		}
 	}
 
@@ -69,15 +78,4 @@
 	public String getLocalPortalIconName() {
 		return ICON_PARIS_24;
-	}
-
-	public final URL getLocalPortalURL() {
-		try {
-			if (documentId > 0) {
-				return new URL(PORTAL + "jsp/site/Portal.jsp?document_id="+documentId + "&portlet_id="+portletId);
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
 	}
 	
Index: applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/SanisettesHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/SanisettesHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.paris/src/org/openstreetmap/josm/plugins/opendata/modules/fr/paris/datasets/urbanisme/SanisettesHandler.java	(revision 28113)
@@ -32,4 +32,5 @@
 		super(93);
 		setName("Sanisettes");
+		getShpHandler().setCheckNodeProximity(true);
 	}
 
@@ -116,11 +117,3 @@
 		return PORTAL+"hn/sanisettes.zip";
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#checkShpNodeProximity()
-	 */
-	@Override
-	public boolean checkShpNodeProximity() {
-		return true;
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfLicense.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfLicense.java	(revision 28113)
+++ applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/SncfLicense.java	(revision 28113)
@@ -0,0 +1,31 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    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, see <http://www.gnu.org/licenses/>.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.sncf;
+
+import java.net.MalformedURLException;
+
+import org.openstreetmap.josm.plugins.opendata.core.licenses.License;
+
+public class SncfLicense extends License {
+
+	public SncfLicense() {
+		try {
+			setURL("http://test.data-sncf.com/licence", "fr");
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		}
+	}
+}
Index: applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/EquipementsHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/EquipementsHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/EquipementsHandler.java	(revision 28113)
@@ -1,2 +1,17 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    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, see <http://www.gnu.org/licenses/>.
 package org.openstreetmap.josm.plugins.opendata.modules.fr.sncf.datasets;
 
@@ -8,6 +23,15 @@
 public class EquipementsHandler extends SncfDataSetHandler {
 
+	private class LambertIICsvHandler extends InternalCsvHandler {
+		@Override
+		public LatLon getCoor(EastNorth en, String[] fields) {
+			// Lambert II coordinates offset by 2000000 (see http://fr.wikipedia.org/wiki/Projection_conique_conforme_de_Lambert#Projections_officielles_en_France_métropolitaine)
+			return super.getCoor(new EastNorth(en.getX(), en.getY()-2000000), fields);
+		}
+	}
+	
 	public EquipementsHandler() {
 		super("equipementsgares");
+		setCsvHandler(new LambertIICsvHandler());
 		setSingleProjection(lambert4Zones[1]); // Lambert II
 	}
@@ -25,12 +49,3 @@
 		}
 	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchDataSetHandler#getSpreadSheetCoor(org.openstreetmap.josm.data.coor.EastNorth, java.lang.String[])
-	 */
-	@Override
-	public LatLon getSpreadSheetCoor(EastNorth en, String[] fields) {
-		// Lambert II coordinates offset by 2000000 (see http://fr.wikipedia.org/wiki/Projection_conique_conforme_de_Lambert#Projections_officielles_en_France_métropolitaine)
-		return super.getSpreadSheetCoor(new EastNorth(en.getX(), en.getY()-2000000), fields);
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/SncfDataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/SncfDataSetHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.sncf/src/org/openstreetmap/josm/plugins/opendata/modules/fr/sncf/datasets/SncfDataSetHandler.java	(revision 28113)
@@ -1,14 +1,27 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    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, see <http://www.gnu.org/licenses/>.
 package org.openstreetmap.josm.plugins.opendata.modules.fr.sncf.datasets;
 
 import java.net.MalformedURLException;
-import java.net.URL;
 
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchDataSetHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.sncf.SncfConstants;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.sncf.SncfLicense;
 
 public abstract class SncfDataSetHandler extends FrenchDataSetHandler implements SncfConstants {
-	
-	private String portalId;
 	
 	public SncfDataSetHandler(String portalId) {
@@ -45,5 +58,12 @@
 	
 	private final void init(String portalId) {
-		this.portalId = portalId;
+		setLicense(new SncfLicense());
+		if (portalId != null && !portalId.isEmpty()) {
+			try {
+				setLocalPortalURL(PORTAL + portalId);
+			} catch (MalformedURLException e) {
+				e.printStackTrace();
+			}
+		}
 	}
 
@@ -71,27 +91,3 @@
 		return ICON_16;
 	}
-
-	public final URL getLocalPortalURL() {
-		try {
-			if (portalId != null) {
-				return new URL(PORTAL + portalId);
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getLicenseURL()
-	 */
-	@Override
-	public URL getLicenseURL() {
-		try {
-			return new URL("http://test.data-sncf.com/licence");
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseConstants.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseConstants.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseConstants.java	(revision 28113)
@@ -35,5 +35,5 @@
 	 * Portal
 	 */
-	public static final String PORTAL = "http://data.grandtoulouse.fr/les-donnees/-/opendata/card/";
+	public static final String PORTAL = "http://data.grandtoulouse.fr";
 
 	/**
Index: applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseLicense.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseLicense.java	(revision 28113)
+++ applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseLicense.java	(revision 28113)
@@ -0,0 +1,30 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    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, see <http://www.gnu.org/licenses/>.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse;
+
+import org.openstreetmap.josm.plugins.opendata.core.licenses.ODbL;
+
+public class ToulouseLicense extends ODbL implements ToulouseConstants {
+
+	public ToulouseLicense() {
+		// TODO: Toulouse license
+		/*try {
+			setURL(PORTAL + "/la-licence", "fr");
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		}*/
+	}
+}
Index: applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/ToulouseDataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/ToulouseDataSetHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/ToulouseDataSetHandler.java	(revision 28113)
@@ -1,15 +1,27 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2012 Don-vip
+//
+//    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, see <http://www.gnu.org/licenses/>.
 package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets;
 
 import java.net.MalformedURLException;
-import java.net.URL;
 
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.fr.FrenchDataSetHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.ToulouseConstants;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.ToulouseLicense;
 
 public abstract class ToulouseDataSetHandler extends FrenchDataSetHandler implements ToulouseConstants {
-	
-	private int portalId;
-	private String wikiPage;
 	
 	public ToulouseDataSetHandler(int portalId) {
@@ -46,5 +58,15 @@
 	
 	private final void init(int portalId) {
-		this.portalId = portalId;
+		try {
+			setLicense(new ToulouseLicense());
+			if (portalId > 0) {
+				String url = PORTAL + "/les-donnees/-/opendata/card/" + portalId + "--";
+				setLocalPortalURL(url);
+				//setLicenseURL(url+"/license");
+				setDataURL(url+"/resource/document");
+			}
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+		}
 	}
 
@@ -72,60 +94,14 @@
 		return ICON_CROIX_16;
 	}
-
-	public final URL getLocalPortalURL() {
-		try {
-			if (portalId > 0) {
-				return new URL(PORTAL + portalId + "--");
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getLicenseURL()
-	 */
-	@Override
-	public URL getLicenseURL() {
-		try {
-			return new URL(getLocalPortalURL().toString()+"/license");
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getDataURL()
-	 */
-	@Override
-	public URL getDataURL() {
-		try {
-			return new URL(getLocalPortalURL().toString()+"/resource/document");
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.fr.opendata.datasets.AbstractDataSetHandler#getWikiURL()
-	 */
-	@Override
-	public URL getWikiURL() {
-		try {
-			if (wikiPage != null && !wikiPage.isEmpty()) {
-				return new URL(WIKI + "/" + wikiPage);
-			}
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
 	
 	protected final void setWikiPage(String wikiPage) {
-		this.wikiPage = wikiPage.replace(" ", "_");
-		setName(wikiPage.replace("_", " "));
+		if (wikiPage != null && !wikiPage.isEmpty()) {
+			setName(wikiPage.replace("_", " "));
+			try {
+				setWikiURL(WIKI + "/" + wikiPage.replace(" ", "_"));
+			} catch (MalformedURLException e) {
+				e.printStackTrace();
+			}
+		}
 	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ChantiersPonctuelsHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ChantiersPonctuelsHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ChantiersPonctuelsHandler.java	(revision 28113)
@@ -16,5 +16,4 @@
 package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport;
 
-import java.nio.charset.Charset;
 
 public class ChantiersPonctuelsHandler extends ChantiersHandler {
@@ -22,4 +21,5 @@
 	public ChantiersPonctuelsHandler() {
 		super(14071, "Chantiers en cours (ponctuel)");
+		getCsvHandler().setCharset(ISO8859_15);
 	}
 
@@ -28,11 +28,3 @@
 		return acceptsCsvKmzTabFilename(filename, "Chantiers_Ponctuels");
 	}
-	
-	/* (non-Javadoc)
-	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#getCsvCharset()
-	 */
-	@Override
-	public Charset getCsvCharset() {
-		return Charset.forName(ISO8859_15);
-	}
 }
Index: applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PistesCyclablesHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PistesCyclablesHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PistesCyclablesHandler.java	(revision 28113)
@@ -16,11 +16,4 @@
 package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport;
 
-import static org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler.OaQueryType.NODE;
-import static org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler.OaQueryType.WAY;
-import static org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler.OaRecurseType.NODE_RELATION;
-import static org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler.OaRecurseType.RELATION_WAY;
-import static org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler.OaRecurseType.WAY_NODE;
-import static org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler.OaRecurseType.WAY_RELATION;
-
 import java.util.Arrays;
 import java.util.Collection;
@@ -31,5 +24,9 @@
 import org.openstreetmap.josm.data.osm.IPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
+
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaQueryType.*;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.*;
 
 public class PistesCyclablesHandler extends ToulouseDataSetHandler {
@@ -65,9 +62,9 @@
 	@Override
 	protected String getOverpassApiQueries(String bbox, String... conditions) {
-		return oaQuery(bbox, NODE, conditions) + "\n" + 
-				oaRecurse(NODE_RELATION, RELATION_WAY, WAY_NODE) + "\n" +
-				oaQuery(bbox, WAY, conditions) + "\n" +
-				oaRecurse(WAY_NODE, "nodes") + "\n" +
-				oaRecurse(WAY_RELATION);
+		return OverpassApi.query(bbox, NODE, conditions) + "\n" + 
+				OverpassApi.recurse(NODE_RELATION, RELATION_WAY, WAY_NODE) + "\n" +
+				OverpassApi.query(bbox, WAY, conditions) + "\n" +
+				OverpassApi.recurse(WAY_NODE, "nodes") + "\n" +
+				OverpassApi.recurse(WAY_RELATION);
 	}
 
Index: applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ReseauTisseoHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ReseauTisseoHandler.java	(revision 28096)
+++ applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ReseauTisseoHandler.java	(revision 28113)
@@ -34,5 +34,5 @@
 		setName("Réseau Tisséo (Métro, Bus, Tram)");
 		setCategory(CAT_TRANSPORT);
-		setSkipXsdValidationInZipReading(true);
+		getZipHandler().setSkipXsdValidation(true);
 	}
 
