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 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseConstants.java	(revision 35272)
@@ -5,5 +5,5 @@
 
 public interface ToulouseConstants extends FrenchConstants {
-    
+
     /**
      * Sources and Refs
@@ -13,5 +13,5 @@
     public static final String SOURCE_TISSEO = "Tisséo SMTC";
     public static final String REF_TOULOUSE_METROPOLE = "ref:FR:ToulouseMetropole";
-    
+
     /**
      * Wiki
@@ -22,5 +22,5 @@
      * Portal
      */
-    public static final String PORTAL = "http://data.toulouse-metropole.fr";
+    public static final String PORTAL = "https://data.toulouse-metropole.fr";
 
     /**
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModule.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModule.java	(revision 35272)
@@ -14,7 +14,7 @@
 import org.openstreetmap.josm.plugins.opendata.core.modules.ModuleInformation;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.associations.Club3eAgeHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.citoyennete.BureauxVoteDecoupageHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.citoyennete.BureauxVoteHandler;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.citoyennete.Club3eAgeHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.citoyennete.MairieAnnexeHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.citoyennete.MairieHandler;
@@ -23,13 +23,11 @@
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.citoyennete.SecteursHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.culture.BibliothequesHandler;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.culture.EquipementCulturelBalmaHandler;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.culture.EquipementCulturelHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.culture.LudothequeHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.culture.MuseeHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.culture.TheatreHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.enfance.CrechesHandler;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.enfance.EcoleBalmaHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.enfance.EcoleElementaireHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.enfance.EcoleMaternelleHandler;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.enfance.PetiteEnfanceEtJeunesseBalmaHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.environnement.RecupEmballageHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.environnement.RecupVerreHandler;
@@ -39,6 +37,4 @@
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.services.MarchesPleinVentHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.services.PointsLumineuxHandler;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.sport.InstallationSportiveBalmaHandler;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.sport.InstallationSportiveToulouseHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.topographie.AltimetrieVoieHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport.AiresPietonnesHandler;
@@ -100,11 +96,7 @@
         handlers.add(RecupVerreHandler.class);
         handlers.add(ReseauTisseoHandler.class);
-        handlers.add(EcoleBalmaHandler.class);
-        handlers.add(PetiteEnfanceEtJeunesseBalmaHandler.class);
-        handlers.add(EquipementCulturelBalmaHandler.class);
-        handlers.add(InstallationSportiveBalmaHandler.class);
+        handlers.add(EquipementCulturelHandler.class);
         handlers.add(ChantiersPonctuelsHandler.class);
         handlers.add(ChantiersLineairesHandler.class);
-        handlers.add(InstallationSportiveToulouseHandler.class);
         handlers.add(StationsAutoPartageHandler.class);
         handlers.add(MarchesPleinVentHandler.class);
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 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/ToulouseDataSetHandler.java	(revision 35272)
@@ -42,5 +42,4 @@
      * Categories
      */
-    public static final DataSetCategory CAT_ASSOCIATIONS = new DataSetCategory("Associations", "people.png");
     public static final DataSetCategory CAT_CITOYENNETE = new DataSetCategory("Citoyenneté", "presets/service/townhall.svg");
     public static final DataSetCategory CAT_CULTURE = new DataSetCategory("Culture", "presets/sightseeing/arts_centre.svg");
@@ -55,34 +54,34 @@
     public static final DataSetCategory CAT_URBANISME = new DataSetCategory("Urbanisme", "presets/place/city.svg");
 
-    public ToulouseDataSetHandler(int portalId) {
-        init(portalId);
-    }
-
-    public ToulouseDataSetHandler(int portalId, String relevantTag) {
+    public ToulouseDataSetHandler(String portalId) {
+        init(portalId);
+    }
+
+    public ToulouseDataSetHandler(String portalId, String relevantTag) {
         super(relevantTag);
         init(portalId);
     }
 
-    public ToulouseDataSetHandler(int portalId, boolean relevantUnion, String... relevantTags) {
+    public ToulouseDataSetHandler(String portalId, boolean relevantUnion, String... relevantTags) {
         super(relevantUnion, relevantTags);
         init(portalId);
     }
 
-    public ToulouseDataSetHandler(int portalId, String... relevantTags) {
+    public ToulouseDataSetHandler(String portalId, String... relevantTags) {
         this(portalId, false, relevantTags);
     }
 
-    public ToulouseDataSetHandler(int portalId, boolean relevantUnion, Tag... relevantTags) {
+    public ToulouseDataSetHandler(String portalId, boolean relevantUnion, Tag... relevantTags) {
         super(relevantUnion, relevantTags);
         init(portalId);
     }
 
-    private void init(int portalId) {
+    private void init(String portalId) {
         try {
             setLicense(new ToulouseLicense());
-            if (portalId > 0) {
-                String url = PORTAL + "/les-donnees/-/opendata/card/" + portalId + "--";
-                setLocalPortalURL(url);
-                setDataURL(url+"/resource/document");
+            if (portalId != null) {
+                String url = PORTAL + "/explore/dataset/" + portalId;
+                setLocalPortalURL(url + "/information/");
+                setDataURL(url + "/download/?format=geojson&timezone=Europe/Paris");
             }
             addTool(new SplitByMunicipality());
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/BureauxVoteDecoupageHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/BureauxVoteDecoupageHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/BureauxVoteDecoupageHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public BureauxVoteDecoupageHandler() {
-        super(14401, "boundary=polling_station");
+        super("elections-2019-decoupage-des-bureaux-de-vote", "boundary=polling_station");
         setWikiPage("Découpage des bureaux de vote");
         setCategory(CAT_CITOYENNETE);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/BureauxVoteHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/BureauxVoteHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/BureauxVoteHandler.java	(revision 35272)
@@ -9,6 +9,6 @@
 
     public BureauxVoteHandler() {
-        super(12550, "polling_station");
-        setWikiPage("Bureaux de vote 2012");
+        super("elections-2017-lieux-de-vote", "polling_station");
+        setWikiPage("Elections 2017 - Lieux de vote");
         setCategory(CAT_CITOYENNETE);
     }
@@ -23,5 +23,5 @@
         for (Relation r : ds.getRelations()) {
             replace(r, "TEXT", "name");
-            r.put("polling_station", "2012");
+            r.put("polling_station", "2017");
             r.put("building", "yes");
             String name = r.getName();
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/Club3eAgeHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/Club3eAgeHandler.java	(revision 35272)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/Club3eAgeHandler.java	(revision 35272)
@@ -0,0 +1,40 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.citoyennete;
+
+import org.apache.commons.text.WordUtils;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
+
+public class Club3eAgeHandler extends ToulouseDataSetHandler {
+
+    public Club3eAgeHandler() {
+        super("clubs-du-3eme-age", "social_facility=outreach", "social_facility:for=senior");
+        setWikiPage("Clubs du 3ème âge");
+        setCategory(CAT_CITOYENNETE);
+    }
+
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsCsvKmzTabFilename(filename, "Club_3E_AGE");
+    }
+
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            replace(n, "Nom", "name");
+            replace(n, "Telephone", "contact:phone");
+            n.put("name", WordUtils.capitalizeFully(n.get("name")));
+            n.put("social_facility", "outreach");
+            n.put("social_facility:for", "senior");
+            n.remove("Adresse");
+            n.remove("CP");
+            n.remove("Classe");
+            n.remove("CodSTI");
+            n.remove("Description");
+            n.remove("Numero");
+            n.remove("Ville");
+            n.remove("color");
+        }
+    }
+}
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/MairieAnnexeHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/MairieAnnexeHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/MairieAnnexeHandler.java	(revision 35272)
@@ -6,7 +6,7 @@
 
 public class MairieAnnexeHandler extends MairieHandler {
-    
+
     public MairieAnnexeHandler() {
-        super(12560, "Mairies annexes");
+        super("mairies-annexes", "Mairies de quartier");
         setCategory(CAT_CITOYENNETE);
     }
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/MairieHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/MairieHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/MairieHandler.java	(revision 35272)
@@ -9,9 +9,9 @@
 
     public MairieHandler() {
-        this(12554, "Mairies");
+        this("mairies", "Mairies");
         setCategory(CAT_CITOYENNETE);
     }
-    
-    protected MairieHandler(int portalId, String wikiPage) {
+
+    protected MairieHandler(String portalId, String wikiPage) {
         super(portalId, "amenity=townhall");
         setWikiPage(wikiPage);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/PolesTerritoriauxHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/PolesTerritoriauxHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/PolesTerritoriauxHandler.java	(revision 35272)
@@ -9,6 +9,6 @@
 
     public PolesTerritoriauxHandler() {
-        super(12568);
-        setName("Pôles territoriaux ");
+        super("poles-territoriaux");
+        setName("Pôles territoriaux");
         setCategory(CAT_CITOYENNETE);
     }
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/QuartiersHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/QuartiersHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/QuartiersHandler.java	(revision 35272)
@@ -9,6 +9,6 @@
 
     public QuartiersHandler() {
-        super(12574, "admin_level=11");
-        setWikiPage("Quartiers de proximité");
+        super("quartiers-de-democratie-locale0", "admin_level=11");
+        setWikiPage("Quartiers de démocratie locale");
         setCategory(CAT_CITOYENNETE);
         setMenuIcon("presets/misc/boundaries.svg");
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/SecteursHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/SecteursHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/SecteursHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public SecteursHandler() {
-        super(12580, "admin_level=10");
+        super("secteurs-de-democratie-locale", "admin_level=10");
         setWikiPage("Secteurs de proximité");
         setCategory(CAT_CITOYENNETE);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/BibliothequesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/BibliothequesHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/BibliothequesHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public BibliothequesHandler() {
-        super(12402, "amenity=library");
+        super("mediatheques-bibliotheques-et-bibliobus", "amenity=library");
         setWikiPage("Médiathèques, bibliothèques et bibliobus");
         setCategory(CAT_CULTURE);
Index: plications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/EquipementCulturelBalmaHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/EquipementCulturelBalmaHandler.java	(revision 35271)
+++ 	(revision )
@@ -1,31 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.culture;
-
-import org.openstreetmap.josm.data.osm.DataSet;
-import org.openstreetmap.josm.data.osm.Node;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
-
-public class EquipementCulturelBalmaHandler extends ToulouseDataSetHandler {
-
-    public EquipementCulturelBalmaHandler() {
-        super(13997);
-        setWikiPage("Équipements Culturels");
-        setCategory(CAT_CULTURE);
-    }
-
-    @Override
-    public boolean acceptsFilename(String filename) {
-        return acceptsKmzFilename(filename, "culture");
-    }
-
-    @Override
-    public void updateDataSet(DataSet ds) {
-        for (Node n : ds.getNodes()) {
-            if (n.get("name").equalsIgnoreCase("Bibliothèque")) {
-                n.put("amenity", "library");
-            } else if (n.get("name").equalsIgnoreCase("Auditorium")) {
-                n.put("amenity", "auditorium");
-            }
-        }
-    }
-}
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/EquipementCulturelHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/EquipementCulturelHandler.java	(revision 35272)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/EquipementCulturelHandler.java	(revision 35272)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.culture;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
+
+public class EquipementCulturelHandler extends ToulouseDataSetHandler {
+
+    public EquipementCulturelHandler() {
+        super("equipements-culturels1");
+        setWikiPage("Équipements Culturels");
+        setCategory(CAT_CULTURE);
+    }
+
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzFilename(filename, "culture");
+    }
+
+    @Override
+    public void updateDataSet(DataSet ds) {
+        for (Node n : ds.getNodes()) {
+            if (n.get("name").equalsIgnoreCase("Bibliothèque")) {
+                n.put("amenity", "library");
+            } else if (n.get("name").equalsIgnoreCase("Auditorium")) {
+                n.put("amenity", "auditorium");
+            }
+        }
+    }
+}
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/LudothequeHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/LudothequeHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/LudothequeHandler.java	(revision 35272)
@@ -9,9 +9,9 @@
 
     public LudothequeHandler() {
-        super(12420, "amenity=toy_library");
+        super("ludotheques", "amenity=toy_library");
         setWikiPage("Ludothèques");
         setCategory(CAT_CULTURE);
     }
-    
+
     @Override
     public boolean acceptsFilename(String filename) {
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/MuseeHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/MuseeHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/MuseeHandler.java	(revision 35272)
@@ -10,5 +10,5 @@
 
     public MuseeHandler() {
-        super(12426, "tourism=museum");
+        super("musees", "tourism=museum");
         setWikiPage("Musées");
         setCategory(CAT_CULTURE);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/TheatreHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/TheatreHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/culture/TheatreHandler.java	(revision 35272)
@@ -9,6 +9,6 @@
 
     public TheatreHandler() {
-        super(12448, "amenity=theatre");
-        setWikiPage("Théâtres");
+        super("theatres-et-salles-de-spectacles", "amenity=theatre");
+        setWikiPage("Théâtres et salles de spectacles");
         setCategory(CAT_CULTURE);
     }
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/CrechesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/CrechesHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/CrechesHandler.java	(revision 35272)
@@ -10,5 +10,5 @@
 
     public CrechesHandler() {
-        super(12462, "amenity=kindergarten");
+        super("creches1", "amenity=kindergarten");
         setWikiPage("Crèches");
         setCategory(CAT_ENFANCE);
Index: plications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/EcoleBalmaHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/EcoleBalmaHandler.java	(revision 35271)
+++ 	(revision )
@@ -1,27 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.enfance;
-
-import org.openstreetmap.josm.data.osm.DataSet;
-import org.openstreetmap.josm.data.osm.Node;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
-
-public class EcoleBalmaHandler extends ToulouseDataSetHandler {
-
-    public EcoleBalmaHandler() {
-        super(13993, "amenity=school");
-        setWikiPage("Écoles");
-        setCategory(CAT_ENFANCE);
-    }
-
-    @Override
-    public boolean acceptsFilename(String filename) {
-        return acceptsKmzFilename(filename, "Ecoles");
-    }
-
-    @Override
-    public void updateDataSet(DataSet ds) {
-        for (Node n : ds.getNodes()) {
-            n.put("amenity", "school");
-        }
-    }
-}
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/EcoleElementaireHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/EcoleElementaireHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/EcoleElementaireHandler.java	(revision 35272)
@@ -10,5 +10,5 @@
 
     public EcoleElementaireHandler() {
-        super(12474, "amenity=school");
+        super("ecoles-elementaires-publiques", "amenity=school");
         setWikiPage("Écoles élémentaires publiques");
         setCategory(CAT_ENFANCE);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/EcoleMaternelleHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/EcoleMaternelleHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/EcoleMaternelleHandler.java	(revision 35272)
@@ -9,8 +9,8 @@
 
     public EcoleMaternelleHandler() {
-        super(12490, "amenity=school");
+        super("ecoles-maternelles-publiques", "amenity=school");
         setWikiPage("Écoles maternelles publiques");
         setCategory(CAT_ENFANCE);
-        for (String forbidden : new String[]{"élémentaire","primaire","collège","lycée","secondaire"}) {
+        for (String forbidden : new String[]{"élémentaire", "primaire", "collège", "lycée", "secondaire"}) {
             addForbiddenTag("school:FR="+forbidden);
         }
Index: plications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/PetiteEnfanceEtJeunesseBalmaHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/enfance/PetiteEnfanceEtJeunesseBalmaHandler.java	(revision 35271)
+++ 	(revision )
@@ -1,29 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.enfance;
-
-import org.openstreetmap.josm.data.osm.DataSet;
-import org.openstreetmap.josm.data.osm.Node;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
-
-public class PetiteEnfanceEtJeunesseBalmaHandler extends ToulouseDataSetHandler {
-
-    public PetiteEnfanceEtJeunesseBalmaHandler() {
-        super(14001);
-        setWikiPage("Petite enfance et jeunesse");
-        setCategory(CAT_ENFANCE);
-    }
-
-    @Override
-    public boolean acceptsFilename(String filename) {
-        return acceptsKmzFilename(filename, "Petite enfance et jeunesse");
-    }
-
-    @Override
-    public void updateDataSet(DataSet ds) {
-        for (Node n : ds.getNodes()) {
-            if (n.get("name").equalsIgnoreCase("Crèche")) {
-                n.put("amenity", "kindergarten");
-            }
-        }
-    }
-}
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/environnement/RecupEmballageHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/environnement/RecupEmballageHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/environnement/RecupEmballageHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public RecupEmballageHandler() {
-        super(12494, "amenity=recycling");
+        super("recup-emballage", "amenity=recycling");
         setWikiPage("Récup' Emballage");
         setCategory(CAT_ENVIRONNEMENT);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/environnement/RecupVerreHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/environnement/RecupVerreHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/environnement/RecupVerreHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public RecupVerreHandler() {
-        super(12496, "amenity=recycling");
+        super("recup-verre", "amenity=recycling");
         setWikiPage("Récup' Verre");
         setCategory(CAT_ENVIRONNEMENT);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/environnement/StationEpurationHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/environnement/StationEpurationHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/environnement/StationEpurationHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public StationEpurationHandler() {
-        super(12500, "man_made=wastewater_plant");
+        super("stations-d-epurations", "man_made=wastewater_plant");
         setWikiPage("Stations d'épuration");
         setCategory(CAT_ENVIRONNEMENT);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/patrimoine/Parcelles1680Handler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/patrimoine/Parcelles1680Handler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/patrimoine/Parcelles1680Handler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public Parcelles1680Handler() {
-        super(12514);
+        super("parcellaire-de-1680");
         setName("Parcellaire de 1680");
         setCategory(CAT_PATRIMOINE);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/patrimoine/Parcelles1830Handler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/patrimoine/Parcelles1830Handler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/patrimoine/Parcelles1830Handler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public Parcelles1830Handler() {
-        super(12534);
+        super("parcellaire-de-1830");
         setName("Parcellaire de 1830");
         setCategory(CAT_PATRIMOINE);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/services/MarchesPleinVentHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/services/MarchesPleinVentHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/services/MarchesPleinVentHandler.java	(revision 35272)
@@ -10,6 +10,6 @@
 
     public MarchesPleinVentHandler() {
-        super(19640, "amenity=marketplace");
-        setName("Marchés de plein vent");
+        super("marches-couverts-et-de-plein-vent", "amenity=marketplace");
+        setName("Marchés couverts et de plein-vent");
         setCategory(CAT_SERVICES);
         setSingleProjection(wgs84);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/services/PointsLumineuxHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/services/PointsLumineuxHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/services/PointsLumineuxHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public PointsLumineuxHandler() {
-        super(25051, "highway=street_lamp");
+        super("points-lumineux", "highway=street_lamp");
         setName("Points lumineux");
         setCategory(CAT_SERVICES);
Index: plications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/sport/InstallationSportiveBalmaHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/sport/InstallationSportiveBalmaHandler.java	(revision 35271)
+++ 	(revision )
@@ -1,44 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.sport;
-
-import org.openstreetmap.josm.data.osm.DataSet;
-import org.openstreetmap.josm.data.osm.Node;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
-
-public class InstallationSportiveBalmaHandler extends ToulouseDataSetHandler {
-
-    public InstallationSportiveBalmaHandler() {
-        super(14010);
-        setWikiPage("Installations sportives (Balma)");
-        setCategory(CAT_SPORT);
-    }
-
-    @Override
-    public boolean acceptsFilename(String filename) {
-        return acceptsKmzFilename(filename, "Sports");
-    }
-
-    @Override
-    public void updateDataSet(DataSet ds) {
-        for (Node n : ds.getNodes()) {
-            if (n.get("name").startsWith("Gymnase")) {
-                n.put("leisure", "sports_centre");
-            } else if (n.get("name").startsWith("Piscine")) {
-                n.put("leisure", "swimming_pool");
-                n.put("sport", "swimming");
-            } else if (n.get("name").startsWith("Skate")) {
-                n.put("leisure", "skate_park");
-                n.put("sport", "skateboard");
-            } else if (n.get("name").startsWith("Tennis")) {
-                n.put("leisure", "pitch");
-                n.put("sport", "tennis");
-            } else if (n.get("name").startsWith("Stade")) {
-                n.put("leisure", "pitch");
-            } else if (n.get("name").startsWith("Dojo")) {
-                n.put("amenity", "dojo");
-            } else if (n.get("name").startsWith("Boulodrome")) {
-                n.put("sport", "boules");
-            }
-        }
-    }
-}
Index: plications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/sport/InstallationSportiveToulouseHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/sport/InstallationSportiveToulouseHandler.java	(revision 35271)
+++ 	(revision )
@@ -1,43 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.sport;
-
-import org.openstreetmap.josm.data.osm.DataSet;
-import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
-
-public class InstallationSportiveToulouseHandler extends ToulouseDataSetHandler {
-
-    public InstallationSportiveToulouseHandler() {
-        super(14413);
-        setWikiPage("Installations sportives (Toulouse)");
-        setCategory(CAT_SPORT);
-    }
-
-    @Override
-    public boolean acceptsFilename(String filename) {
-        return acceptsKmzFilename(filename, "Sports");
-    }
-
-    @Override
-    public void updateDataSet(DataSet ds) {
-        /*for (Node n : ds.getNodes()) {
-            if (n.get("name").startsWith("Gymnase")) {
-                n.put("leisure", "sports_centre");
-            } else if (n.get("name").startsWith("Piscine")) {
-                n.put("leisure", "swimming_pool");
-                n.put("sport", "swimming");
-            } else if (n.get("name").startsWith("Skate")) {
-                n.put("leisure", "skate_park");
-                n.put("sport", "skateboard");
-            } else if (n.get("name").startsWith("Tennis")) {
-                n.put("leisure", "pitch");
-                n.put("sport", "tennis");
-            } else if (n.get("name").startsWith("Stade")) {
-                n.put("leisure", "pitch");
-            } else if (n.get("name").startsWith("Dojo")) {
-                n.put("amenity", "dojo");
-            } else if (n.get("name").startsWith("Boulodrome")) {
-                n.put("sport", "boules");
-            }
-        }*/
-    }
-}
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/topographie/AltimetrieVoieHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/topographie/AltimetrieVoieHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/topographie/AltimetrieVoieHandler.java	(revision 35272)
@@ -7,7 +7,7 @@
 
 public class AltimetrieVoieHandler extends ToulouseDataSetHandler  {
-    
+
     public AltimetrieVoieHandler() {
-        super(12660, "ele");
+        super("altimetrie-des-voies", "ele");
         setName("Altimétrie des voies");
         setCategory(CAT_TOPOGRAPHIE);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/AiresPietonnesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/AiresPietonnesHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/AiresPietonnesHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public AiresPietonnesHandler() {
-        super(19687, "Street", "highway=pedestrian");
+        super("aires-pietonnes", "Street", "highway=pedestrian");
         setName("Aires piétonnes");
         setCategory(CAT_TRANSPORT);
@@ -22,5 +22,5 @@
     public void updateDataSet(DataSet ds) {
         super.updateDataSet(ds);
-        
+
         for (Way w : ds.getWays()) {
             w.put("highway", "pedestrian");
@@ -39,5 +39,5 @@
         }
     }
-    
+
     @Override
     protected String getStreetId(Way w) {
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ChantiersHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ChantiersHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ChantiersHandler.java	(revision 35272)
@@ -9,10 +9,10 @@
 
     public ChantiersHandler(int portalId, String name) {
-        super(portalId, "highway=construction");
+        super("chantiers-en-cours", "highway=construction");
         setWikiPage("Chantiers en cours");
         setName(name);
         setCategory(CAT_TRANSPORT);
     }
-    
+
     @Override
     public void updateDataSet(DataSet ds) {
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/HorodateurHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/HorodateurHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/HorodateurHandler.java	(revision 35272)
@@ -9,9 +9,10 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
+import org.openstreetmap.josm.tools.Logging;
 
 public class HorodateurHandler extends ToulouseDataSetHandler {
 
     public HorodateurHandler() {
-        super(12540, "vending=parking_tickets");
+        super("horodateurs", "vending=parking_tickets");
         setWikiPage("Horodateurs");
         setCategory(CAT_TRANSPORT);
@@ -40,5 +41,5 @@
         String opening_hours = "";
         if (m.matches()) {
-            for (int i = 1; i<=m.groupCount(); i++) {
+            for (int i = 1; i <= m.groupCount(); i++) {
                 if (m.group(i) != null) {
                     if (!opening_hours.isEmpty()) {
@@ -50,10 +51,10 @@
                         opening_hours += parseHour(m2.group(1)) + "-" + parseHour(m2.group(2));
                     } else {
-                        System.err.println(m.group(i)+" does not match "+p2);
+                        Logging.error(m.group(i)+" does not match "+p2);
                     }
                 }
             }
         } else {
-            System.err.println(horaire+" does not match "+p);
+            Logging.error(horaire+" does not match "+p);
         }
         return opening_hours;
@@ -72,31 +73,11 @@
             n.remove("Reglementation");
             n.remove("color");
-            replace(n, "commune", "operator", new ValueReplacer() {
-                @Override
-                public String replace(String value) {
-                    return "Mairie de "+WordUtils.capitalizeFully(value);
-                }
-            });
-            replace(n, "horaire", "opening_hours", new ValueReplacer() {
-                @Override
-                public String replace(String value) {
-                    return parseOpeningHours(value);
-                }
-            });
-            replace(n, "maj_date", "source:date", new ValueReplacer() {
-                @Override
-                public String replace(String value) {
-                    return value.substring(0, 4)+"-"+value.substring(4, 6)+"-"+value.substring(6, 8);
-                }
-            });
+            replace(n, "commune", "operator", value -> "Mairie de "+WordUtils.capitalizeFully(value));
+            replace(n, "horaire", "opening_hours", this::parseOpeningHours);
+            replace(n, "maj_date", "source:date", value -> value.substring(0, 4)+"-"+value.substring(4, 6)+"-"+value.substring(6, 8));
             replace(n, "observations", "note");
-            replace(n, "quartier_residant", "parking:ticket:zone", new ValueReplacer() {
-                @Override
-                public String replace(String value) {
-                    return WordUtils.capitalizeFully(value.trim())
-                            .replace(" Iv", " IV").replace("Sebastopol", "Sébastopol")
-                            .replace("St ", "Saint-").replace("Peri", "Péri");
-                }
-            });
+            replace(n, "quartier_residant", "parking:ticket:zone", value -> WordUtils.capitalizeFully(value.trim())
+                    .replace(" Iv", " IV").replace("Sebastopol", "Sébastopol")
+                    .replace("St ", "Saint-").replace("Peri", "Péri"));
         }
     }
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/MetroStationHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/MetroStationHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/MetroStationHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public MetroStationHandler() {
-        super(12542, "subway=yes");
+        super("stations-de-metro", "subway=yes");
         setName("Stations de métro");
         setCategory(CAT_TRANSPORT);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PMRHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PMRHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PMRHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public PMRHandler() {
-        super(12538, "amenity=parking_space");
+        super("pmr", "amenity=parking_space");
         setWikiPage("PMR");
         setCategory(CAT_TRANSPORT);
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 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PistesCyclablesHandler.java	(revision 35272)
@@ -1,4 +1,11 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport;
+
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaQueryType.NODE;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaQueryType.WAY;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.NODE_RELATION;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.RELATION_WAY;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.WAY_NODE;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.WAY_RELATION;
 
 import java.util.Arrays;
@@ -12,38 +19,37 @@
 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.*;
+import org.openstreetmap.josm.tools.Logging;
 
 public class PistesCyclablesHandler extends ToulouseDataSetHandler {
 
     protected final Map<String, Collection<String>> map = new HashMap<>();
-    
+
     private String streetField;
-    
+
     public PistesCyclablesHandler() {
         this("Nom_voie");
         setCategory(CAT_TRANSPORT);
     }
-    
+
     public PistesCyclablesHandler(String streetField) {
-        super(12544, true, "cycleway", "cycleway:right", "cycleway:left", "cycleway:both", "highway=cycleway", "ramp:bicycle=yes", "bicycle=yes", "barrier=cycle_barrier");
+        super("reseau-cyclable-et-vert", true,
+                "cycleway", "cycleway:right", "cycleway:left", "cycleway:both", "highway=cycleway", "ramp:bicycle=yes", "bicycle=yes", "barrier=cycle_barrier");
         setWikiPage("Réseau cyclable et vert");
         addForbiddenTag("cycleway=no");
         this.streetField = streetField;
-        map.put("secondary", Arrays.asList(new String[] {"AVENUE", "Av ", "av ", "Avenue ", "avenue ", "BOULEVARD ", "bd ", "ALLEE", "Allee", "allee", 
-                "PONT ", "Pont ", "PORT ", "ROUTE ", "Rte ", "BOULINGRIN", "boulingrin"}));
-        map.put("residential", Arrays.asList(new String[] {"CHEMIN ", "Chemin ", "chemin ", "IMPASSE ", "imp ", "PLACE ", "Place ", "place ", 
-                "RUE ", "Rue ", "rue ", "QUAI", "VOIE ", "grand rue"}));
+        map.put("secondary", Arrays.asList("AVENUE", "Av ", "av ", "Avenue ", "avenue ", "BOULEVARD ", "bd ", "ALLEE", "Allee", "allee",
+                "PONT ", "Pont ", "PORT ", "ROUTE ", "Rte ", "BOULINGRIN", "boulingrin"));
+        map.put("residential", Arrays.asList("CHEMIN ", "Chemin ", "chemin ", "IMPASSE ", "imp ", "PLACE ", "Place ", "place ",
+                "RUE ", "Rue ", "rue ", "QUAI", "VOIE ", "grand rue"));
     }
-    
+
     @Override
     public boolean acceptsFilename(String filename) {
         return acceptsKmzTabFilename(filename, "Pistes_Cyclables");
     }
-    
+
     @Override
     protected String getOverpassApiQueries(String bbox, String... conditions) {
-        return OverpassApi.query(bbox, NODE, conditions) + "\n" + 
+        return OverpassApi.query(bbox, NODE, conditions) + "\n" +
                 OverpassApi.recurse(NODE_RELATION, RELATION_WAY, WAY_NODE) + "\n" +
                 OverpassApi.query(bbox, WAY, conditions) + "\n" +
@@ -65,5 +71,5 @@
         return null;
     }
-    
+
     @Override
     public void updateDataSet(DataSet ds) {
@@ -71,5 +77,5 @@
 
             w.remove("name");
-            
+
             String obs_type = w.get("obs_type");
             if (obs_type.equals("bande")) {
@@ -89,11 +95,11 @@
                 w.put("zone:maxspeed", "FR:30");
             } else {
-                System.out.println(obs_type);
+                Logging.info(obs_type);
             }
-                
+
             String name = w.get(streetField);
             if (name != null) {
                 w.remove(streetField);
-                    
+
                 if (w.get("highway") == null && applyHighwayTag(name, w) == null) {
                     w.put("highway", "road");
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 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/ReseauTisseoHandler.java	(revision 35272)
@@ -11,11 +11,12 @@
 import org.openstreetmap.josm.plugins.opendata.core.io.NeptuneReader;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.ToulouseDataSetHandler;
+import org.openstreetmap.josm.tools.Logging;
 
 public class ReseauTisseoHandler extends ToulouseDataSetHandler {
 
     private static final URL neptuneSchemaUrl = ReseauTisseoHandler.class.getResource(TOULOUSE_NEPTUNE_XSD);
-    
+
     public ReseauTisseoHandler() {
-        super(14022, "network=fr_tisseo");
+        super("tisseo-offre-de-transport-neptune", "network=fr_tisseo");
         NeptuneReader.registerSchema(neptuneSchemaUrl);
         setName("Réseau Tisséo (Métro, Bus, Tram)");
@@ -28,8 +29,8 @@
         return acceptsZipFilename(filename, "14022-reseau-tisseo-metro-bus-tram-") || filename.toLowerCase().endsWith(OdConstants.XML_EXT);
     }
-    
+
     @Override
     public boolean acceptsFile(File file) {
-        return acceptsFilename(file.getName()) 
+        return acceptsFilename(file.getName())
                 && (file.getName().toLowerCase().endsWith(OdConstants.ZIP_EXT) || NeptuneReader.acceptsXmlNeptuneFile(file, neptuneSchemaUrl));
     }
@@ -45,5 +46,5 @@
             return new URL("https://wiki.openstreetmap.org/wiki/Toulouse/Transports_en_commun#Réseau_Tisséo");
         } catch (MalformedURLException e) {
-            e.printStackTrace();
+            Logging.error(e);
         }
         return null;
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/StationsAutoPartageHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/StationsAutoPartageHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/StationsAutoPartageHandler.java	(revision 35272)
@@ -10,5 +10,5 @@
 
     public StationsAutoPartageHandler() {
-        super(19163, "amenity=car_sharing");
+        super("stations-d-auto-partage", "amenity=car_sharing");
         setName("Stations d'auto partage");
         setCategory(CAT_TRANSPORT);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/TramwayStationHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/TramwayStationHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/TramwayStationHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public TramwayStationHandler() {
-        super(12611, "tram=yes");
+        super("stations-de-tramway", "tram=yes");
         setName("Stations de tramway");
         setCategory(CAT_TRANSPORT);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/VeloToulouseHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/VeloToulouseHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/VeloToulouseHandler.java	(revision 35272)
@@ -10,5 +10,5 @@
 
     public VeloToulouseHandler() {
-        super(12546, "amenity=bicycle_rental");
+        super("velo-toulouse", "amenity=bicycle_rental");
         setWikiPage("Vélô Toulouse");
         setCategory(CAT_TRANSPORT);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/Zone30Handler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/Zone30Handler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/Zone30Handler.java	(revision 35272)
@@ -7,7 +7,7 @@
 
 public class Zone30Handler extends VoirieHandler {
-    
+
     public Zone30Handler() {
-        super(12548, "Street", "maxspeed=30");
+        super("zones-30", "Street", "maxspeed=30");
         setWikiPage("Zones 30");
         setCategory(CAT_TRANSPORT);
@@ -18,9 +18,9 @@
         return acceptsKmzTabFilename(filename, "Zone30");
     }
-    
+
     @Override
     public void updateDataSet(DataSet ds) {
         super.updateDataSet(ds);
-        
+
         for (Way w : ds.getWays()) {
             w.put("zone:maxspeed", "FR:30");
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/CommuneHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/CommuneHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/CommuneHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public CommuneHandler() {
-        super(12582, "admin_level=8");
+        super("communes", "admin_level=8");
         setName("Communes");
         setCategory(CAT_URBANISME);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/NumerosRueHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/NumerosRueHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/NumerosRueHandler.java	(revision 35272)
@@ -15,5 +15,5 @@
 
     public NumerosRueHandler() {
-        super(12673, "addr:housenumber");
+        super("numero-de-rue", "addr:housenumber");
         setWikiPage("Numéros de rue");
         setCategory(CAT_URBANISME);
@@ -28,5 +28,5 @@
     public void updateDataSet(DataSet ds) {
         Map<String, Relation> associatedStreets = new HashMap<>();
-        
+
         for (Node n : ds.getNodes()) {
             replace(n, "no", "addr:housenumber");
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/SanisetteHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/SanisetteHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/SanisetteHandler.java	(revision 35272)
@@ -9,5 +9,5 @@
 
     public SanisetteHandler() {
-        super(12584, "amenity=toilets");
+        super("sanisettes", "amenity=toilets");
         setWikiPage("Sanisettes");
         setCategory(CAT_URBANISME);
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/VoirieHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/VoirieHandler.java	(revision 35271)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/VoirieHandler.java	(revision 35272)
@@ -22,5 +22,5 @@
 
     public VoirieHandler() {
-        this(12693, "lib_off", "highway");
+        this("filaire-de-voirie", "lib_off", "highway");
         setName("Filaire de voirie");
         setCategory(CAT_URBANISME);
@@ -28,14 +28,14 @@
     }
 
-    protected VoirieHandler(int portalId, String streetField, String relevantTag) {
+    protected VoirieHandler(String portalId, String streetField, String relevantTag) {
         super(portalId, relevantTag);
         this.streetField = streetField;
-        map.put("motorway", Arrays.asList(new String[] {"A6", "AUTOROUTE "}));
-        map.put("trunk", Arrays.asList(new String[] {"ROCADE "}));
-        map.put("secondary", Arrays.asList(new String[] {"AV ", "BD ", "ALL ", "PONT ", "RTE ", "PORT ", "BOULINGRIN"}));
-        map.put("residential", Arrays.asList(new String[] {"RUE ", "GRANDE-RUE ", "PROM ", "CHE", "CAMINOT ", "IMP ", "COURS ",
-                "LOT ", "ANC", "VIEUX ", "PL ", "CLOS ", "CITE ", "RESIDENCE ", "SENTIER ", "QU ", "SQ ", "VOIE ", "ESP "}));
-        map.put("unclassified", Arrays.asList(new String[] {"ZONE "}));
-        map.put("road", Arrays.asList(new String[] {"VA "}));
+        map.put("motorway", Arrays.asList("A6", "AUTOROUTE "));
+        map.put("trunk", Arrays.asList("ROCADE "));
+        map.put("secondary", Arrays.asList("AV ", "BD ", "ALL ", "PONT ", "RTE ", "PORT ", "BOULINGRIN"));
+        map.put("residential", Arrays.asList("RUE ", "GRANDE-RUE ", "PROM ", "CHE", "CAMINOT ", "IMP ", "COURS ",
+                "LOT ", "ANC", "VIEUX ", "PL ", "CLOS ", "CITE ", "RESIDENCE ", "SENTIER ", "QU ", "SQ ", "VOIE ", "ESP "));
+        map.put("unclassified", Arrays.asList("ZONE "));
+        map.put("road", Arrays.asList("VA "));
     }
 
Index: /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModuleTestIT.java
===================================================================
--- /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModuleTestIT.java	(revision 35272)
+++ /applications/editors/josm/plugins/opendata/test/unit/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModuleTestIT.java	(revision 35272)
@@ -0,0 +1,38 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+import org.openstreetmap.josm.tools.HttpClient;
+
+/**
+ * Integration tests of {@link ToulouseModule} class.
+ */
+public class ToulouseModuleTestIT {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    public JOSMTestRules rules = new JOSMTestRules().preferences().timeout(30_000);
+
+    @Test
+    public void testUrlValidity() throws IOException {
+        Map<String, Integer> errors = new TreeMap<>();
+        for (AbstractDataSetHandler handler : new ToulouseModule(null).getNewlyInstanciatedHandlers()) {
+            int code = HttpClient.create(handler.getLocalPortalURL()).connect().getResponseCode();
+            if (code >= 400) {
+                errors.put(handler.getLocalPortalURL().toExternalForm(), code);
+            }
+        }
+        assertTrue(errors.toString(), errors.isEmpty());
+    }
+}
