- Use linked hash map in GeonameEntry to make sure that we conserve the order of the properties - Fix type mapping detection algorithm
Signed-off-by: Serge Huber <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/8d54f8d9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/8d54f8d9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/8d54f8d9 Branch: refs/heads/feature-UNOMI-70-ES5X Commit: 8d54f8d93c45187aaf9307932f461ecd9b6e9da9 Parents: 69bb3cc Author: Serge Huber <[email protected]> Authored: Wed Dec 21 21:27:08 2016 +0100 Committer: Serge Huber <[email protected]> Committed: Wed Dec 21 21:27:08 2016 +0100 ---------------------------------------------------------------------- .../java/org/apache/unomi/geonames/services/GeonameEntry.java | 4 ++-- .../org/apache/unomi/geonames/services/GeonamesServiceImpl.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/8d54f8d9/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonameEntry.java ---------------------------------------------------------------------- diff --git a/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonameEntry.java b/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonameEntry.java index 014a699..ac41a6e 100644 --- a/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonameEntry.java +++ b/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonameEntry.java @@ -20,7 +20,7 @@ package org.apache.unomi.geonames.services; import org.apache.unomi.api.Item; import java.util.Date; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -56,7 +56,7 @@ public class GeonameEntry extends Item { this.name = name; this.asciiname = asciiname; // this.alternatenames = alternatenames; - this.location = new HashMap<>(); + this.location = new LinkedHashMap<>(); this.location.put("lat",lat); this.location.put("lon",lon); this.featureClass = featureClass; http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/8d54f8d9/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonamesServiceImpl.java ---------------------------------------------------------------------- diff --git a/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonamesServiceImpl.java b/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonamesServiceImpl.java index 2b0a0dc..9bce9b2 100644 --- a/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonamesServiceImpl.java +++ b/extensions/geonames/services/src/main/java/org/apache/unomi/geonames/services/GeonamesServiceImpl.java @@ -98,7 +98,7 @@ public class GeonamesServiceImpl implements GeonamesService { private void importGeoNameDatabase(final File f, final Timer t) { Map<String,Map<String,Object>> typeMappings = persistenceService.getPropertiesMapping(GeonameEntry.ITEM_TYPE); - if (typeMappings == null) { + if (typeMappings == null || typeMappings.size() == 0) { logger.warn("Type mappings for type {} are not yet installed, delaying import until they are ready!", GeonameEntry.ITEM_TYPE); t.schedule(new TimerTask() { @Override @@ -107,6 +107,8 @@ public class GeonamesServiceImpl implements GeonamesService { } }, 5000); return; + } else { + // let's check that the mappings are correct } try {
