This is an automated email from the ASF dual-hosted git repository. bchapuis pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
commit cc1ee9c0810c5b6481c379ffaf6787c24a89026f Author: Bertil Chapuis <[email protected]> AuthorDate: Mon Sep 16 16:49:40 2024 +0200 Fix issues identified when executing the workflow (#894) - DataConversions should always call the wrapped methods - Only one log provider should be included in the project - Use MonotonicPairedDataMap for coordinates and references --- .../org/apache/baremaps/workflow/WorkflowContext.java | 16 +++++++++++++--- .../apache/baremaps/data/collection/DataConversions.java | 8 +------- .../baremaps/data/collection/MonotonicDataMap.java | 1 - pom.xml | 6 ++++++ 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowContext.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowContext.java index 349f3012..f793c7d0 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowContext.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowContext.java @@ -64,14 +64,14 @@ public class WorkflowContext { } public Map<Long, Coordinate> getCoordinateMap() throws IOException { - return DataConversions.asMap(getMemoryAlignedDataMap("coordinates", new LonLatDataType())); + return DataConversions.asMap(getMonotonicPairedDataMap("coordinates", new LonLatDataType())); } public Map<Long, List<Long>> getReferenceMap() throws IOException { return DataConversions.asMap(getMonotonicDataMap("references", new LongListDataType())); } - public <T> DataMap<Long, T> getMemoryAlignedDataMap(String name, FixedSizeDataType<T> dataType) + private <T> DataMap<Long, T> getMemoryAlignedDataMap(String name, FixedSizeDataType<T> dataType) throws IOException { var coordinateDir = Files.createDirectories(cacheDir.resolve(name)); return new MemoryAlignedDataMap<>( @@ -79,7 +79,7 @@ public class WorkflowContext { new MemoryMappedDirectory(coordinateDir)); } - public <T> DataMap<Long, T> getMonotonicDataMap(String name, DataType<T> dataType) + private <T> DataMap<Long, T> getMonotonicDataMap(String name, DataType<T> dataType) throws IOException { var mapDir = Files.createDirectories(cacheDir.resolve(name)); var keysDir = Files.createDirectories(mapDir.resolve("keys")); @@ -93,6 +93,16 @@ public class WorkflowContext { new MemoryMappedDirectory(valuesDir))); } + private DataMap<Long, Coordinate> getMonotonicPairedDataMap(String name, + DataType<Coordinate> dataType) + throws IOException { + var mapDir = Files.createDirectories(cacheDir.resolve(name)); + return new MonotonicPairedDataMap<>( + new MemoryAlignedDataList<>( + new PairDataType<>(new LongDataType(), new LonLatDataType()), + new MemoryMappedDirectory(Files.createDirectories(mapDir)))); + } + public void cleanCache() throws IOException { FileUtils.deleteRecursively(cacheDir); } diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java index 1211985d..593f6acd 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java @@ -270,13 +270,7 @@ public class DataConversions { @Override public V get(Object key) { - if (map instanceof MemoryAlignedDataMap) { - return map.get(key); - } else if (map instanceof IndexedDataMap) { - return map.get(key); - } else { - return super.get(key); - } + return map.get(key); } @Override diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicDataMap.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicDataMap.java index 6a5b4467..25094823 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicDataMap.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/MonotonicDataMap.java @@ -149,7 +149,6 @@ public class MonotonicDataMap<E> implements DataMap<Long, E> { .iterator(); } - /** {@inheritDoc} */ @Override public long size() { diff --git a/pom.xml b/pom.xml index d60471ea..75f89b46 100644 --- a/pom.xml +++ b/pom.xml @@ -237,6 +237,12 @@ limitations under the License. <groupId>mil.nga.geopackage</groupId> <artifactId>geopackage</artifactId> <version>${version.lib.geopackage}</version> + <exclusions> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-nop</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>net.ripe.ipresource</groupId>
