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>

Reply via email to