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


The following commit(s) were added to refs/heads/main by this push:
     new 1ee41570 Fix some issues detected by sonar (#867)
1ee41570 is described below

commit 1ee41570015560baf1b6411b2eb73dfd7f7cfe9a
Author: Bertil Chapuis <[email protected]>
AuthorDate: Tue Jun 11 13:46:38 2024 +0200

    Fix some issues detected by sonar (#867)
    
    * Suppress warning related to decompression
    
    * Suppress warning related to spli
    Suppress warning related to split with regex
    
    * Add integrity tag to html sub resources
    
    * Use static method of parent class
    
    * Use try with resources
    
    * Remove empty constructor
    
    * Introduce constants
    
    * Throw exception upon clear
    
    * Use correct static method
    
    * Add comment to constructor
    
    * Format with spotless
    
    * Add comment in constructor
    
    * Implement truncate method
    
    * Suppress warnings
    
    * Throw exceptions
    
    * Capitalize enum
    
    * Suppress warnings
    
    * Throw dedicated exception instead of generic one
    
    * Format code with spotless
---
 .../org/apache/baremaps/cli/geocoder/Search.java   |   4 +-
 .../org/apache/baremaps/cli/geocoder/Serve.java    |   4 +-
 .../java/org/apache/baremaps/cli/map/MBTiles.java  |  66 ++++++-------
 .../org/apache/baremaps/config/ConfigReader.java   |   2 -
 .../database/metadata/DatabaseMetadata.java        | 104 ++++++++++++++-------
 .../baremaps/database/postgres/CoordinateMap.java  |   2 +-
 .../baremaps/geocoder/GeonamesQueryBuilder.java    |   6 +-
 .../apache/baremaps/geocoder/GeonamesRecord.java   |   4 +-
 .../baremaps/geocoderosm/GeocoderOsmQuery.java     |   4 +-
 .../org/apache/baremaps/iploc/IpLocMapper.java     |   1 +
 .../java/org/apache/baremaps/iploc/NicReader.java  |   4 +-
 .../storage/flatgeobuf/FlatGeoBufDataTable.java    |   7 +-
 .../storage/postgres/PostgresDataStore.java        |   4 +-
 .../storage/postgres/PostgresDataTable.java        |  28 +++---
 .../storage/postgres/PostgresTypeConversion.java   |   1 +
 .../storage/shapefile/ShapefileDataTable.java      |   4 +-
 .../storage/shapefile/internal/DBaseDataType.java  |  30 +++---
 .../shapefile/internal/DbaseByteReader.java        |  31 +++---
 .../shapefile/internal/ShapefileByteReader.java    |  30 +++---
 .../workflow/tasks/CreateGeonamesIndex.java        |   4 +-
 .../baremaps/workflow/tasks/CreateIplocIndex.java  |   4 +-
 .../baremaps/workflow/tasks/DecompressFile.java    |   1 +
 .../apache/baremaps/workflow/tasks/ExecuteSql.java |   1 +
 .../baremaps/geocoder/GeonamesIndexTest.java       |   4 +-
 .../apache/baremaps/geocoderosm/OSMIndexTest.java  |   4 +-
 .../org/apache/baremaps/iploc/IpLocObjectTest.java |   4 +-
 .../src/main/resources/static/server.html          |  12 +--
 .../src/main/resources/static/viewer.html          |  18 ++--
 28 files changed, 221 insertions(+), 167 deletions(-)

diff --git 
a/baremaps-cli/src/main/java/org/apache/baremaps/cli/geocoder/Search.java 
b/baremaps-cli/src/main/java/org/apache/baremaps/cli/geocoder/Search.java
index 5292996f..379b0c27 100644
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/geocoder/Search.java
+++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/geocoder/Search.java
@@ -23,7 +23,7 @@ import java.nio.file.Path;
 import java.util.concurrent.Callable;
 import org.apache.baremaps.geocoder.GeonamesQueryBuilder;
 import org.apache.lucene.search.*;
-import org.apache.lucene.store.MMapDirectory;
+import org.apache.lucene.store.FSDirectory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import picocli.CommandLine.Command;
@@ -57,7 +57,7 @@ public class Search implements Callable<Integer> {
   @Override
   public Integer call() throws Exception {
     try (
-        var directory = MMapDirectory.open(indexDirectory);
+        var directory = FSDirectory.open(indexDirectory);
         var searcherManager = new SearcherManager(directory, new 
SearcherFactory())) {
       var query = new 
GeonamesQueryBuilder().queryText(terms).countryCode(countryCode).build();
       var searcher = searcherManager.acquire();
diff --git 
a/baremaps-cli/src/main/java/org/apache/baremaps/cli/geocoder/Serve.java 
b/baremaps-cli/src/main/java/org/apache/baremaps/cli/geocoder/Serve.java
index 271f9812..3af14e17 100644
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/geocoder/Serve.java
+++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/geocoder/Serve.java
@@ -33,7 +33,7 @@ import java.util.concurrent.Callable;
 import org.apache.baremaps.server.GeocoderResource;
 import org.apache.lucene.search.SearcherFactory;
 import org.apache.lucene.search.SearcherManager;
-import org.apache.lucene.store.MMapDirectory;
+import org.apache.lucene.store.FSDirectory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import picocli.CommandLine.Command;
@@ -59,7 +59,7 @@ public class Serve implements Callable<Integer> {
   public Integer call() throws Exception {
 
     try (
-        var directory = MMapDirectory.open(indexDirectory);
+        var directory = FSDirectory.open(indexDirectory);
         var searcherManager = new SearcherManager(directory, new 
SearcherFactory())) {
 
       var serverBuilder = Server.builder();
diff --git 
a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/MBTiles.java 
b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/MBTiles.java
index 3358c50d..1644e719 100644
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/MBTiles.java
+++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/MBTiles.java
@@ -79,50 +79,52 @@ public class MBTiles implements Callable<Integer> {
     var caffeineSpec = CaffeineSpec.parse(cache);
 
     var datasource = SqliteUtils.createDataSource(mbtilesPath, true);
-    var tileStore = new MBTilesStore(datasource);
-    var tileCache = new TileCache(tileStore, caffeineSpec);
-    var tileStoreSupplier = (Supplier<TileStore>) () -> tileCache;
+    try (var tileStore = new MBTilesStore(datasource);
+        var tileCache = new TileCache(tileStore, caffeineSpec)) {
+      var tileStoreSupplier = (Supplier<TileStore>) () -> tileCache;
 
-    var style = objectMapper.readValue(configReader.read(stylePath), 
Style.class);
-    var styleSupplier = (Supplier<Style>) () -> style;
+      var style = objectMapper.readValue(configReader.read(stylePath), 
Style.class);
+      var styleSupplier = (Supplier<Style>) () -> style;
 
-    var tileJSON = objectMapper.readValue(configReader.read(tileJSONPath), 
TileJSON.class);
-    var tileJSONSupplier = (Supplier<TileJSON>) () -> tileJSON;
+      var tileJSON = objectMapper.readValue(configReader.read(tileJSONPath), 
TileJSON.class);
+      var tileJSONSupplier = (Supplier<TileJSON>) () -> tileJSON;
 
-    var serverBuilder = Server.builder();
-    serverBuilder.http(port);
+      var serverBuilder = Server.builder();
+      serverBuilder.http(port);
 
-    var jsonResponseConverter = new 
JacksonResponseConverterFunction(objectMapper);
-    serverBuilder.annotatedService(new TileResource(tileStoreSupplier), 
jsonResponseConverter);
-    serverBuilder.annotatedService(new StyleResource(styleSupplier), 
jsonResponseConverter);
-    serverBuilder.annotatedService(new TileJSONResource(tileJSONSupplier), 
jsonResponseConverter);
+      var jsonResponseConverter = new 
JacksonResponseConverterFunction(objectMapper);
+      serverBuilder.annotatedService(new TileResource(tileStoreSupplier), 
jsonResponseConverter);
+      serverBuilder.annotatedService(new StyleResource(styleSupplier), 
jsonResponseConverter);
+      serverBuilder.annotatedService(new TileJSONResource(tileJSONSupplier), 
jsonResponseConverter);
 
-    var index = HttpFile.of(ClassLoader.getSystemClassLoader(), 
"/static/server.html");
-    serverBuilder.service("/", index.asService());
-    serverBuilder.serviceUnder("/", 
FileService.of(ClassLoader.getSystemClassLoader(), "/static"));
+      var index = HttpFile.of(ClassLoader.getSystemClassLoader(), 
"/static/server.html");
+      serverBuilder.service("/", index.asService());
+      serverBuilder.serviceUnder("/",
+          FileService.of(ClassLoader.getSystemClassLoader(), "/static"));
 
-    serverBuilder.decorator(CorsService.builderForAnyOrigin()
-        .allowRequestMethods(HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, 
HttpMethod.DELETE,
-            HttpMethod.OPTIONS, HttpMethod.HEAD)
-        .allowRequestHeaders(HttpHeaderNames.ORIGIN, 
HttpHeaderNames.CONTENT_TYPE,
-            HttpHeaderNames.ACCEPT, HttpHeaderNames.AUTHORIZATION)
-        .allowCredentials()
-        .exposeHeaders(HttpHeaderNames.LOCATION)
-        .newDecorator());
+      serverBuilder.decorator(CorsService.builderForAnyOrigin()
+          .allowRequestMethods(HttpMethod.GET, HttpMethod.POST, 
HttpMethod.PUT, HttpMethod.DELETE,
+              HttpMethod.OPTIONS, HttpMethod.HEAD)
+          .allowRequestHeaders(HttpHeaderNames.ORIGIN, 
HttpHeaderNames.CONTENT_TYPE,
+              HttpHeaderNames.ACCEPT, HttpHeaderNames.AUTHORIZATION)
+          .allowCredentials()
+          .exposeHeaders(HttpHeaderNames.LOCATION)
+          .newDecorator());
 
-    serverBuilder.serviceUnder("/docs", new DocService());
+      serverBuilder.serviceUnder("/docs", new DocService());
 
-    serverBuilder.disableServerHeader();
-    serverBuilder.disableDateHeader();
+      serverBuilder.disableServerHeader();
+      serverBuilder.disableDateHeader();
 
-    var server = serverBuilder.build();
+      var server = serverBuilder.build();
 
-    var startFuture = server.start();
-    startFuture.join();
+      var startFuture = server.start();
+      startFuture.join();
 
-    var shutdownFuture = server.closeOnJvmShutdown();
-    shutdownFuture.join();
+      var shutdownFuture = server.closeOnJvmShutdown();
+      shutdownFuture.join();
 
+    }
     return 0;
   }
 }
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java 
b/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java
index 2900df20..244a2800 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java
@@ -34,8 +34,6 @@ public class ConfigReader {
     System.setProperty("polyglot.engine.WarnInterpreterOnly", "false");
   }
 
-  public ConfigReader() {}
-
   public String read(Path path) throws IOException {
     var extension = 
com.google.common.io.Files.getFileExtension(path.toString());
     var config = switch (extension) {
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/database/metadata/DatabaseMetadata.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/database/metadata/DatabaseMetadata.java
index c3b67575..dcddb4a5 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/database/metadata/DatabaseMetadata.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/database/metadata/DatabaseMetadata.java
@@ -29,6 +29,36 @@ import javax.sql.DataSource;
 
 public class DatabaseMetadata {
 
+  public static final String TABLE_CAT = "TABLE_CAT";
+  public static final String TABLE_SCHEM = "TABLE_SCHEM";
+  public static final String TABLE_NAME = "TABLE_NAME";
+  public static final String TABLE_TYPE = "TABLE_TYPE";
+  public static final String REMARKS = "REMARKS";
+  public static final String TYPE_CAT = "TYPE_CAT";
+  public static final String TYPE_SCHEM = "TYPE_SCHEM";
+  public static final String TYPE_NAME = "TYPE_NAME";
+  public static final String SELF_REFERENCING_COL_NAME = 
"SELF_REFERENCING_COL_NAME";
+  public static final String REF_GENERATION = "REF_GENERATION";
+  public static final String COLUMN_NAME = "COLUMN_NAME";
+  public static final String DATA_TYPE = "DATA_TYPE";
+  public static final String COLUMN_SIZE = "COLUMN_SIZE";
+  public static final String DECIMAL_DIGITS = "DECIMAL_DIGITS";
+  public static final String NUM_PREC_RADIX = "NUM_PREC_RADIX";
+  public static final String NULLABLE = "NULLABLE";
+  public static final String COLUMN_DEF = "COLUMN_DEF";
+  public static final String KEY_SEQ = "KEY_SEQ";
+  public static final String PK_NAME = "PK_NAME";
+  public static final String SQL_DATA_TYPE = "SQL_DATA_TYPE";
+  public static final String SQL_DATETIME_SUB = "SQL_DATETIME_SUB";
+  public static final String CHAR_OCTET_LENGTH = "CHAR_OCTET_LENGTH";
+  public static final String ORDINAL_POSITION = "ORDINAL_POSITION";
+  public static final String IS_NULLABLE = "IS_NULLABLE";
+  public static final String SCOPE_CATALOG = "SCOPE_CATALOG";
+  public static final String SCOPE_SCHEMA = "SCOPE_SCHEMA";
+  public static final String SCOPE_TABLE = "SCOPE_TABLE";
+  public static final String SOURCE_DATA_TYPE = "SOURCE_DATA_TYPE";
+  public static final String IS_AUTOINCREMENT = "IS_AUTOINCREMENT";
+  public static final String IS_GENERATEDCOLUMN = "IS_GENERATEDCOLUMN";
   private final DataSource dataSource;
 
   public DatabaseMetadata(DataSource dataSource) {
@@ -62,12 +92,17 @@ public class DatabaseMetadata {
         var resultSet =
             connection.getMetaData().getTables(catalog, schemaPattern, 
tableNamePattern, types)) {
       while (resultSet.next()) {
-        tableDescriptions.add(new TableResult(resultSet.getString("TABLE_CAT"),
-            resultSet.getString("TABLE_SCHEM"), 
resultSet.getString("TABLE_NAME"),
-            resultSet.getString("TABLE_TYPE"), resultSet.getString("REMARKS"),
-            resultSet.getString("TYPE_CAT"), resultSet.getString("TYPE_SCHEM"),
-            resultSet.getString("TYPE_NAME"), 
resultSet.getString("SELF_REFERENCING_COL_NAME"),
-            resultSet.getString("REF_GENERATION")));
+        tableDescriptions.add(new TableResult(
+            resultSet.getString(TABLE_CAT),
+            resultSet.getString(TABLE_SCHEM),
+            resultSet.getString(TABLE_NAME),
+            resultSet.getString(TABLE_TYPE),
+            resultSet.getString(REMARKS),
+            resultSet.getString(TYPE_CAT),
+            resultSet.getString(TYPE_SCHEM),
+            resultSet.getString(TYPE_NAME),
+            resultSet.getString(SELF_REFERENCING_COL_NAME),
+            resultSet.getString(REF_GENERATION)));
       }
     } catch (SQLException e) {
       throw new RuntimeException(e);
@@ -83,29 +118,29 @@ public class DatabaseMetadata {
             tableNamePattern, columnNamePattern)) {
       while (resultSet.next()) {
         tableColumns.add(new ColumnResult(
-            resultSet.getString("TABLE_CAT"),
-            resultSet.getString("TABLE_SCHEM"),
-            resultSet.getString("TABLE_NAME"),
-            resultSet.getString("COLUMN_NAME"),
-            resultSet.getInt("DATA_TYPE"),
-            resultSet.getString("TYPE_NAME"),
-            resultSet.getInt("COLUMN_SIZE"),
-            resultSet.getInt("DECIMAL_DIGITS"),
-            resultSet.getInt("NUM_PREC_RADIX"),
-            resultSet.getInt("NULLABLE"),
-            resultSet.getString("REMARKS"),
-            resultSet.getString("COLUMN_DEF"),
-            resultSet.getInt("SQL_DATA_TYPE"),
-            resultSet.getInt("SQL_DATETIME_SUB"),
-            resultSet.getInt("CHAR_OCTET_LENGTH"),
-            resultSet.getInt("ORDINAL_POSITION"),
-            resultSet.getString("IS_NULLABLE"),
-            resultSet.getString("SCOPE_CATALOG"),
-            resultSet.getString("SCOPE_SCHEMA"),
-            resultSet.getString("SCOPE_TABLE"),
-            resultSet.getShort("SOURCE_DATA_TYPE"),
-            resultSet.getString("IS_AUTOINCREMENT"),
-            resultSet.getString("IS_GENERATEDCOLUMN")));
+            resultSet.getString(TABLE_CAT),
+            resultSet.getString(TABLE_SCHEM),
+            resultSet.getString(TABLE_NAME),
+            resultSet.getString(COLUMN_NAME),
+            resultSet.getInt(DATA_TYPE),
+            resultSet.getString(TYPE_NAME),
+            resultSet.getInt(COLUMN_SIZE),
+            resultSet.getInt(DECIMAL_DIGITS),
+            resultSet.getInt(NUM_PREC_RADIX),
+            resultSet.getInt(NULLABLE),
+            resultSet.getString(REMARKS),
+            resultSet.getString(COLUMN_DEF),
+            resultSet.getInt(SQL_DATA_TYPE),
+            resultSet.getInt(SQL_DATETIME_SUB),
+            resultSet.getInt(CHAR_OCTET_LENGTH),
+            resultSet.getInt(ORDINAL_POSITION),
+            resultSet.getString(IS_NULLABLE),
+            resultSet.getString(SCOPE_CATALOG),
+            resultSet.getString(SCOPE_SCHEMA),
+            resultSet.getString(SCOPE_TABLE),
+            resultSet.getShort(SOURCE_DATA_TYPE),
+            resultSet.getString(IS_AUTOINCREMENT),
+            resultSet.getString(IS_GENERATEDCOLUMN)));
       }
     } catch (SQLException e) {
       throw new RuntimeException(e);
@@ -119,10 +154,13 @@ public class DatabaseMetadata {
     try (var connection = dataSource.getConnection();
         var resultSet = connection.getMetaData().getPrimaryKeys(catalog, 
schemaPattern, table)) {
       while (resultSet.next()) {
-        tablePrimaryKeyColumns.add(new 
PrimaryKeyResult(resultSet.getString("TABLE_CAT"),
-            resultSet.getString("TABLE_SCHEM"), 
resultSet.getString("TABLE_NAME"),
-            resultSet.getString("COLUMN_NAME"), resultSet.getShort("KEY_SEQ"),
-            resultSet.getString("PK_NAME")));
+        tablePrimaryKeyColumns.add(new PrimaryKeyResult(
+            resultSet.getString(TABLE_CAT),
+            resultSet.getString(TABLE_SCHEM),
+            resultSet.getString(TABLE_NAME),
+            resultSet.getString(COLUMN_NAME),
+            resultSet.getShort(KEY_SEQ),
+            resultSet.getString(PK_NAME)));
       }
     } catch (SQLException e) {
       throw new RuntimeException(e);
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/database/postgres/CoordinateMap.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/database/postgres/CoordinateMap.java
index ed3cad6c..fa390859 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/database/postgres/CoordinateMap.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/database/postgres/CoordinateMap.java
@@ -258,6 +258,6 @@ public class CoordinateMap extends PostgresMap<Long, 
Coordinate> {
 
   @Override
   public void clear() {
-
+    throw new UnsupportedOperationException();
   }
 }
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/geocoder/GeonamesQueryBuilder.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/geocoder/GeonamesQueryBuilder.java
index 7cef357f..8b4958ac 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/geocoder/GeonamesQueryBuilder.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/geocoder/GeonamesQueryBuilder.java
@@ -28,7 +28,7 @@ import org.apache.lucene.expressions.SimpleBindings;
 import org.apache.lucene.expressions.js.JavascriptCompiler;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.queries.function.FunctionScoreQuery;
-import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.queryparser.classic.QueryParserBase;
 import org.apache.lucene.queryparser.simple.SimpleQueryParser;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
@@ -96,7 +96,7 @@ public class GeonamesQueryBuilder {
     var builder = new BooleanQuery.Builder();
 
     if (queryText != null) {
-      var queryTextEsc = QueryParser.escape(queryText);
+      var queryTextEsc = QueryParserBase.escape(queryText);
       if (!queryTextEsc.isBlank()) {
         // Changing the fields here might affect queries using queryText.
         var fieldWeights = Map.of("name", 1f, "asciiname", 1f, "country", 1f, 
"countryCode", 1f);
@@ -112,7 +112,7 @@ public class GeonamesQueryBuilder {
     }
 
     if (countryCode != null) {
-      var countryCodeEsc = QueryParser.escape(countryCode);
+      var countryCodeEsc = QueryParserBase.escape(countryCode);
       if (!countryCodeEsc.isBlank()) {
         var countryCodeQuery = new TermQuery(new Term("countryCode", 
countryCodeEsc));
         builder.add(countryCodeQuery, BooleanClause.Occur.MUST);
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/geocoder/GeonamesRecord.java 
b/baremaps-core/src/main/java/org/apache/baremaps/geocoder/GeonamesRecord.java
index 493534af..56138ee8 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/geocoder/GeonamesRecord.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/geocoder/GeonamesRecord.java
@@ -84,7 +84,9 @@ public class GeonamesRecord {
   // date of last modification in yyyy-MM-dd format
   private String modificationDate;
 
-  public GeonamesRecord() {}
+  public GeonamesRecord() {
+    // Default constructor
+  }
 
   public Integer getGeonameid() {
     return geonameid;
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/geocoderosm/GeocoderOsmQuery.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/geocoderosm/GeocoderOsmQuery.java
index 09e98111..bd326369 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/geocoderosm/GeocoderOsmQuery.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/geocoderosm/GeocoderOsmQuery.java
@@ -18,7 +18,7 @@
 package org.apache.baremaps.geocoderosm;
 
 import org.apache.baremaps.geocoder.GeocoderConstants;
-import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.queryparser.classic.QueryParserBase;
 import org.apache.lucene.queryparser.simple.SimpleQueryParser;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
@@ -34,7 +34,7 @@ public class GeocoderOsmQuery {
 
   public Query build() {
     var builder = new BooleanQuery.Builder();
-    var queryTextEsc = QueryParser.escape(query);
+    var queryTextEsc = QueryParserBase.escape(query);
 
     var parser = new SimpleQueryParser(GeocoderConstants.ANALYZER, 
OsmTags.NAME.key());
     var termsQuery = parser.parse(queryTextEsc);
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocMapper.java 
b/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocMapper.java
index 5448c2b6..f2a605b7 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocMapper.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocMapper.java
@@ -63,6 +63,7 @@ public class IpLocMapper implements Function<NicObject, 
Optional<IpLocObject>> {
    *         {@code NicObject}
    */
   @Override
+  @SuppressWarnings({"squid:S3776", "squid:S1192"})
   public Optional<IpLocObject> apply(NicObject nicObject) {
     try {
       if (nicObject.attributes().isEmpty()) {
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicReader.java 
b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicReader.java
index e2c5cfd1..8eb9a70a 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicReader.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicReader.java
@@ -27,7 +27,9 @@ import java.util.stream.StreamSupport;
 /** A parser for Network Coordination Center (NIC) data. */
 public class NicReader {
 
-  public NicReader() {}
+  public NicReader() {
+    // Default constructor
+  }
 
   /**
    * Creates an ordered stream of NIC objects.
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/flatgeobuf/FlatGeoBufDataTable.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/flatgeobuf/FlatGeoBufDataTable.java
index f3598d28..e3dd4815 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/flatgeobuf/FlatGeoBufDataTable.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/flatgeobuf/FlatGeoBufDataTable.java
@@ -29,6 +29,7 @@ import java.util.NoSuchElementException;
 import org.apache.baremaps.data.collection.DataCollection;
 import org.apache.baremaps.data.storage.DataRow;
 import org.apache.baremaps.data.storage.DataSchema;
+import org.apache.baremaps.data.storage.DataStoreException;
 import org.apache.baremaps.data.storage.DataTable;
 import org.locationtech.jts.geom.*;
 import org.wololo.flatgeobuf.Constants;
@@ -116,7 +117,7 @@ public class FlatGeoBufDataTable implements DataTable {
       // create the feature stream
       return new RowIterator(channel, headerMeta, schema, buffer);
     } catch (IOException e) {
-      throw new RuntimeException(e);
+      throw new DataStoreException(e);
     }
   }
 
@@ -125,7 +126,7 @@ public class FlatGeoBufDataTable implements DataTable {
    */
   @Override
   public void clear() {
-
+    throw new UnsupportedOperationException();
   }
 
   /**
@@ -138,7 +139,7 @@ public class FlatGeoBufDataTable implements DataTable {
       HeaderMeta headerMeta = readHeaderMeta(channel, buffer);
       return headerMeta.featuresCount;
     } catch (IOException e) {
-      throw new RuntimeException(e);
+      throw new DataStoreException(e);
     }
   }
 
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDataStore.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDataStore.java
index de05ebe6..3168d21f 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDataStore.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDataStore.java
@@ -152,7 +152,7 @@ public class PostgresDataStore implements DataStore {
         }
       }
     } catch (Exception e) {
-      throw new RuntimeException(e);
+      throw new DataStoreException(e);
     }
   }
 
@@ -166,7 +166,7 @@ public class PostgresDataStore implements DataStore {
         var statement = connection.prepareStatement(dropTable(schema))) {
       statement.execute();
     } catch (SQLException e) {
-      throw new RuntimeException(e);
+      throw new DataStoreException(e);
     }
   }
 
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDataTable.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDataTable.java
index 6e6315a2..d3d707e3 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDataTable.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresDataTable.java
@@ -23,10 +23,7 @@ import java.util.*;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 import javax.sql.DataSource;
-import org.apache.baremaps.data.storage.DataRow;
-import org.apache.baremaps.data.storage.DataRowImpl;
-import org.apache.baremaps.data.storage.DataSchema;
-import org.apache.baremaps.data.storage.DataTable;
+import org.apache.baremaps.data.storage.*;
 import org.apache.baremaps.openstreetmap.utils.GeometryUtils;
 import org.locationtech.jts.geom.*;
 
@@ -81,7 +78,7 @@ public class PostgresDataTable implements DataTable {
       resultSet.next();
       return resultSet.getLong(1);
     } catch (SQLException e) {
-      throw new RuntimeException(e);
+      throw new DataStoreException(e);
     }
   }
 
@@ -104,7 +101,7 @@ public class PostgresDataTable implements DataTable {
       setParameters(statement, row);
       return statement.executeUpdate() > 0;
     } catch (SQLException e) {
-      throw new RuntimeException(e);
+      throw new DataStoreException(e);
     }
   }
 
@@ -122,7 +119,7 @@ public class PostgresDataTable implements DataTable {
       statement.executeBatch();
       return true;
     } catch (SQLException e) {
-      throw new RuntimeException(e);
+      throw new DataStoreException(e);
     }
   }
 
@@ -131,7 +128,12 @@ public class PostgresDataTable implements DataTable {
    */
   @Override
   public void clear() {
-
+    try (var connection = dataSource.getConnection();
+        var statement = connection.createStatement()) {
+      statement.execute(truncate(schema));
+    } catch (SQLException e) {
+      throw new DataStoreException(e);
+    }
   }
 
   /**
@@ -199,6 +201,10 @@ public class PostgresDataTable implements DataTable {
     return String.format("SELECT COUNT(*) FROM \"%s\"", schema.name());
   }
 
+  private String truncate(DataSchema schema) {
+    return String.format("TRUNCATE TABLE \"%s\"", schema.name());
+  }
+
   /**
    * An iterator that iterates over the rows of a table.
    */
@@ -220,7 +226,7 @@ public class PostgresDataTable implements DataTable {
         hasNext = resultSet.next();
       } catch (SQLException e) {
         close();
-        throw new RuntimeException("Error while initializing SQL query 
iterator", e);
+        throw new DataStoreException("Error while initializing SQL query 
iterator", e);
       }
     }
 
@@ -257,7 +263,7 @@ public class PostgresDataTable implements DataTable {
         return new DataRowImpl(schema, values);
       } catch (SQLException e) {
         close();
-        throw new RuntimeException("Error while fetching the next result", e);
+        throw new DataStoreException("Error while fetching the next result", 
e);
       }
     }
 
@@ -277,7 +283,7 @@ public class PostgresDataTable implements DataTable {
           connection.close();
         }
       } catch (SQLException e) {
-        throw new RuntimeException("Error while closing resources", e);
+        throw new DataStoreException("Error while closing resources", e);
       }
     }
   }
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresTypeConversion.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresTypeConversion.java
index 9c14fd22..fb428e73 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresTypeConversion.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/postgres/PostgresTypeConversion.java
@@ -21,6 +21,7 @@ import java.util.EnumMap;
 import java.util.Map;
 import org.apache.baremaps.data.storage.DataColumn.Type;
 
+@SuppressWarnings("squid:S1192")
 public class PostgresTypeConversion {
 
   public static final EnumMap<Type, String> typeToName = new 
EnumMap<>(Type.class);
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/ShapefileDataTable.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/ShapefileDataTable.java
index dae52548..1ee7f693 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/ShapefileDataTable.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/ShapefileDataTable.java
@@ -77,7 +77,7 @@ public class ShapefileDataTable implements DataTable {
     try {
       return new ShapefileIterator(shapeFile.read());
     } catch (IOException e) {
-      throw new RuntimeException(e);
+      throw new DataStoreException(e);
     }
   }
 
@@ -86,7 +86,7 @@ public class ShapefileDataTable implements DataTable {
    */
   @Override
   public void clear() {
-
+    throw new UnsupportedOperationException();
   }
 
   /**
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/DBaseDataType.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/DBaseDataType.java
index bb5644e4..c86c878b 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/DBaseDataType.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/DBaseDataType.java
@@ -26,54 +26,54 @@ package org.apache.baremaps.storage.shapefile.internal;
  */
 public enum DBaseDataType {
   /** Character (less than 254 characters). */
-  Character('C'),
+  CHARACTER('C'),
 
   /** Number (less than 18 characters, can include sign and decimal). */
-  Number('N'),
+  NUMBER('N'),
 
   /** Logical (3 way, ? Y,y,T,t N,n,F,f). */
-  Logical('L'),
+  LOGICAL('L'),
 
   /** Date (YYYYMMDD format). */
-  Date('D'),
+  DATE('D'),
 
   /** Memo (Pointer to ASCII text field). */
-  Memo('M'),
+  MEMO('M'),
 
   /** Floating point (20 digits). */
-  FloatingPoint('F'),
+  FLOATING_POINT('F'),
 
   // CharacterNameVariable("?"), //1-254 Characters
 
   /** Picture (memo). */
-  Picture('P'),
+  PICTURE('P'),
 
   /** Currency (Foxpro). */
-  Currency('Y'),
+  CURRENCY('Y'),
 
   /**
    * Date time (32 bit little-endian Julian date, 32 byte little endian 
milliseconds since
    * midnight).
    */
-  DateTime('T'),
+  DATE_TIME('T'),
 
   /** Integer (4 byte little endian). */
-  Integer('I'),
+  INTEGER('I'),
 
   /** Varifield (???). */
-  VariField('V'),
+  VARI_FIELD('V'),
 
   /** Variant (???). */
-  Variant('X'),
+  VARIANT('X'),
 
   /** Time stamp (see url). */
-  TimeStamp('@'),
+  TIMESTAMP('@'),
 
   /** Double. */
-  Double('O'),
+  DOUBLE('O'),
 
   /** Auto increment. */
-  AutoIncrement('+');
+  AUTO_INCREMENT('+');
 
   /** Data type. */
   public final char datatype;
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/DbaseByteReader.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/DbaseByteReader.java
index 60975998..a29ffead 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/DbaseByteReader.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/DbaseByteReader.java
@@ -126,21 +126,21 @@ public class DbaseByteReader extends CommonByteReader 
implements AutoCloseable {
 
       // TODO: move somewhere else
       Object object = switch (fieldDescriptor.getType()) {
-        case Character -> value;
-        case Number -> getNumber(fieldDescriptor, value);
-        case Currency -> Double.parseDouble(value.trim());
-        case Integer -> Integer.parseInt(value.trim());
-        case Double -> Double.parseDouble(value.trim());
-        case AutoIncrement -> Integer.parseInt(value.trim());
-        case Logical -> value;
-        case Date -> value;
-        case Memo -> value;
-        case FloatingPoint -> value;
-        case Picture -> value;
-        case VariField -> value;
-        case Variant -> value;
-        case TimeStamp -> value;
-        case DateTime -> value;
+        case CHARACTER -> value;
+        case NUMBER -> getNumber(fieldDescriptor, value);
+        case CURRENCY -> Double.parseDouble(value.trim());
+        case INTEGER -> Integer.parseInt(value.trim());
+        case DOUBLE -> Double.parseDouble(value.trim());
+        case AUTO_INCREMENT -> Integer.parseInt(value.trim());
+        case LOGICAL -> value;
+        case DATE -> value;
+        case MEMO -> value;
+        case FLOATING_POINT -> value;
+        case PICTURE -> value;
+        case VARI_FIELD -> value;
+        case VARIANT -> value;
+        case TIMESTAMP -> value;
+        case DATE_TIME -> value;
       };
 
       row.set(fieldDescriptor.getName(), object);
@@ -376,6 +376,7 @@ public class DbaseByteReader extends CommonByteReader 
implements AutoCloseable {
    * @param pageCodeBinaryValue binary code page value.
    * @return Page code.
    */
+  @SuppressWarnings("squid:S1192")
   private String toCodePage(byte pageCodeBinaryValue) {
     // From http://trac.osgeo.org/gdal/ticket/2864
     HashMap<Integer, String> knownConversions = new HashMap<>();
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileByteReader.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileByteReader.java
index 841c2d3e..61b1e39f 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileByteReader.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileByteReader.java
@@ -131,23 +131,23 @@ public class ShapefileByteReader extends CommonByteReader 
{
       var fieldDescriptor = this.databaseFieldsDescriptors.get(i);
       var columnName = fieldDescriptor.getName();
       var columnType = switch (fieldDescriptor.getType()) {
-        case Character -> Type.STRING;
-        case Number -> fieldDescriptor.getDecimalCount() == 0 ? Type.LONG : 
Type.DOUBLE;
-        case Currency -> Type.DOUBLE;
-        case Double -> Type.DOUBLE;
-        case Integer -> Type.INTEGER;
-        case AutoIncrement -> Type.INTEGER;
+        case CHARACTER -> Type.STRING;
+        case NUMBER -> fieldDescriptor.getDecimalCount() == 0 ? Type.LONG : 
Type.DOUBLE;
+        case CURRENCY -> Type.DOUBLE;
+        case DOUBLE -> Type.DOUBLE;
+        case INTEGER -> Type.INTEGER;
+        case AUTO_INCREMENT -> Type.INTEGER;
 
         // TODO: Implement the following types
-        case Logical -> Type.STRING;
-        case Date -> Type.STRING;
-        case Memo -> Type.STRING;
-        case FloatingPoint -> Type.STRING;
-        case Picture -> Type.STRING;
-        case VariField -> Type.STRING;
-        case Variant -> Type.STRING;
-        case TimeStamp -> Type.STRING;
-        case DateTime -> Type.STRING;
+        case LOGICAL -> Type.STRING;
+        case DATE -> Type.STRING;
+        case MEMO -> Type.STRING;
+        case FLOATING_POINT -> Type.STRING;
+        case PICTURE -> Type.STRING;
+        case VARI_FIELD -> Type.STRING;
+        case VARIANT -> Type.STRING;
+        case TIMESTAMP -> Type.STRING;
+        case DATE_TIME -> Type.STRING;
       };
       columns.add(new DataColumnFixed(columnName, Cardinality.OPTIONAL, 
columnType));
     }
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java
index f7ee96cc..a370ef1c 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java
@@ -29,7 +29,7 @@ import org.apache.baremaps.workflow.WorkflowContext;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.store.MMapDirectory;
+import org.apache.lucene.store.FSDirectory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -66,7 +66,7 @@ public class CreateGeonamesIndex implements Task {
    */
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    var directory = MMapDirectory.open(indexDirectory);
+    var directory = FSDirectory.open(indexDirectory);
     var config = new IndexWriterConfig(GeocoderConstants.ANALYZER);
     try (var indexWriter = new IndexWriter(directory, config);
         var inputStream = Files.newInputStream(dataFile)) {
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java
index 2fc16a8b..7d1d1b6a 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java
@@ -31,7 +31,7 @@ import org.apache.baremaps.workflow.Task;
 import org.apache.baremaps.workflow.WorkflowContext;
 import org.apache.lucene.search.SearcherFactory;
 import org.apache.lucene.search.SearcherManager;
-import org.apache.lucene.store.MMapDirectory;
+import org.apache.lucene.store.FSDirectory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.sqlite.SQLiteConfig;
@@ -70,7 +70,7 @@ public class CreateIplocIndex implements Task {
    */
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    try (var directory = MMapDirectory.open(geonamesIndexPath);
+    try (var directory = FSDirectory.open(geonamesIndexPath);
         var searcherManager = new SearcherManager(directory, new 
SearcherFactory())) {
 
       logger.info("Creating the Iploc database");
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressFile.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressFile.java
index 056cf85a..ac364246 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressFile.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressFile.java
@@ -191,6 +191,7 @@ public class DecompressFile implements Task {
    * @param target the target directory
    * @throws IOException if an I/O error occurs
    */
+  @SuppressWarnings("squid:S5042")
   protected static void decompressZip(Path source, Path target) throws 
IOException {
     Files.createDirectories(target);
     try (var zipFile = new ZipFile(source.toFile())) {
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
index f167f085..1b2ae187 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
@@ -92,6 +92,7 @@ public class ExecuteSql implements Task {
    * @param sql The SQL string.
    * @return The SQL statements.
    */
+  @SuppressWarnings("squid:S5852")
   public static Stream<String> split(String sql) {
     return Arrays.stream(sql.split("\\s*;\\s*(?=(?:[^']*'[^']*')*[^']*$)"));
   }
diff --git 
a/baremaps-core/src/test/java/org/apache/baremaps/geocoder/GeonamesIndexTest.java
 
b/baremaps-core/src/test/java/org/apache/baremaps/geocoder/GeonamesIndexTest.java
index db3f9233..b9d392ff 100644
--- 
a/baremaps-core/src/test/java/org/apache/baremaps/geocoder/GeonamesIndexTest.java
+++ 
b/baremaps-core/src/test/java/org/apache/baremaps/geocoder/GeonamesIndexTest.java
@@ -31,7 +31,7 @@ import org.apache.baremaps.workflow.tasks.CreateGeonamesIndex;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.SearcherFactory;
 import org.apache.lucene.search.SearcherManager;
-import org.apache.lucene.store.MMapDirectory;
+import org.apache.lucene.store.FSDirectory;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -51,7 +51,7 @@ public class GeonamesIndexTest {
     var data = TestFiles.resolve("baremaps-testing/data/geonames/sample.txt");
     var task = new CreateGeonamesIndex(data, directory);
     task.execute(new WorkflowContext());
-    var dir = MMapDirectory.open(directory);
+    var dir = FSDirectory.open(directory);
     var searcherManager = new SearcherManager(dir, new SearcherFactory());
     searcher = searcherManager.acquire();
   }
diff --git 
a/baremaps-core/src/test/java/org/apache/baremaps/geocoderosm/OSMIndexTest.java 
b/baremaps-core/src/test/java/org/apache/baremaps/geocoderosm/OSMIndexTest.java
index ae2b5b90..7b4d8a7d 100644
--- 
a/baremaps-core/src/test/java/org/apache/baremaps/geocoderosm/OSMIndexTest.java
+++ 
b/baremaps-core/src/test/java/org/apache/baremaps/geocoderosm/OSMIndexTest.java
@@ -42,7 +42,7 @@ import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.SearcherFactory;
 import org.apache.lucene.search.SearcherManager;
-import org.apache.lucene.store.MMapDirectory;
+import org.apache.lucene.store.FSDirectory;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Disabled;
@@ -64,7 +64,7 @@ public class OSMIndexTest {
 
     var task = new CreateGeocoderOpenStreetMap(SAMPLE_OSM_PBF, directory);
     task.execute(new WorkflowContext());
-    var dir = MMapDirectory.open(directory);
+    var dir = FSDirectory.open(directory);
     var searcherManager = new SearcherManager(dir, new SearcherFactory());
     searcher = searcherManager.acquire();
   }
diff --git 
a/baremaps-core/src/test/java/org/apache/baremaps/iploc/IpLocObjectTest.java 
b/baremaps-core/src/test/java/org/apache/baremaps/iploc/IpLocObjectTest.java
index 665fb5e1..b1ba7ab4 100644
--- a/baremaps-core/src/test/java/org/apache/baremaps/iploc/IpLocObjectTest.java
+++ b/baremaps-core/src/test/java/org/apache/baremaps/iploc/IpLocObjectTest.java
@@ -34,7 +34,7 @@ import org.apache.baremaps.workflow.WorkflowContext;
 import org.apache.baremaps.workflow.tasks.CreateGeonamesIndex;
 import org.apache.lucene.search.SearcherFactory;
 import org.apache.lucene.search.SearcherManager;
-import org.apache.lucene.store.MMapDirectory;
+import org.apache.lucene.store.FSDirectory;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
@@ -70,7 +70,7 @@ class IpLocObjectTest {
     task.execute(new WorkflowContext());
 
     // Create the IPLoc mapper
-    var dir = MMapDirectory.open(directory);
+    var dir = FSDirectory.open(directory);
     var searcherManager = new SearcherManager(dir, new SearcherFactory());
     ipLocMapper = new IpLocMapper(searcherManager);
     ipLocObjects = nicObjects.stream()
diff --git a/baremaps-server/src/main/resources/static/server.html 
b/baremaps-server/src/main/resources/static/server.html
index f903e4c5..b1fc66e0 100644
--- a/baremaps-server/src/main/resources/static/server.html
+++ b/baremaps-server/src/main/resources/static/server.html
@@ -17,12 +17,12 @@ limitations under the License.
 -->
 <html>
 <head>
-  <script 
src='https://unpkg.com/[email protected]/dist/maplibre-gl.js'></script>
-  <script 
src='https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.js'></script>
-  <script 
src='https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.js'></script>
-  <link href='https://unpkg.com/[email protected]/dist/maplibre-gl.css' 
rel='stylesheet' />
-  <link 
href='https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.css' 
rel='stylesheet' />
-  <link 
href='https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.css'
 rel='stylesheet' />
+  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-qmQe97oAYERiVjChfXOO7hB6XvtPv+LURdheDkwjygk=" 
crossorigin="anonymous"></script>
+  <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.js"; 
integrity="sha256-NYdRoIbqeAWkTHjpa/BukMLXcsiqFoDuJCYzzaRei30=" 
crossorigin="anonymous"></script>
+  <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.js";
 integrity="sha256-Jo8NvxMzooqayU8+eIsjO49b4EoakoE0o0tSSrBWPCU=" 
crossorigin="anonymous"></script>
+  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-xOYnscyMgBG9kd6rZmIRZiBVqaN+CGquVtFHJS9018U=" 
crossorigin="anonymous">
+  <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.css"; 
integrity="sha256-ePhsoaklgbCBxK7kfSUcP+V+bVqnfFwpILz7hkSR0Lo=" 
crossorigin="anonymous">
+  <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.css";
 integrity="sha256-FxIRliWXnU67sT1i97MgNQ0qL8LjsgYiBH9v/uNxzdM=" 
crossorigin="anonymous">
   <link rel="icon" type="image/x-icon" 
href="https://baremaps.apache.org/assets/favicon/favicon.ico";>
   <style>
 
diff --git a/baremaps-server/src/main/resources/static/viewer.html 
b/baremaps-server/src/main/resources/static/viewer.html
index 8763d73b..c5a920de 100644
--- a/baremaps-server/src/main/resources/static/viewer.html
+++ b/baremaps-server/src/main/resources/static/viewer.html
@@ -17,15 +17,15 @@ limitations under the License.
 -->
 <html>
 <head>
-  <script 
src='https://unpkg.com/[email protected]/dist/maplibre-gl.js'></script>
-  <script 
src='https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.js'></script>
-  <script 
src='https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.js'></script>
-  <script 
src='https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.js'></script>
-  <script 
src='https://baremaps.apache.org/assets/maplibre/maplibre-gl-framerate.js'></script>
-  <link href='https://unpkg.com/[email protected]/dist/maplibre-gl.css' 
rel='stylesheet' />
-  <link 
href='https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.css' 
rel='stylesheet' />
-  <link 
href='https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.css'
 rel='stylesheet' />
-  <link 
href='https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.css' 
rel='stylesheet' />
+  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-qmQe97oAYERiVjChfXOO7hB6XvtPv+LURdheDkwjygk=" 
crossorigin="anonymous"></script>
+  <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.js"; 
integrity="sha256-NYdRoIbqeAWkTHjpa/BukMLXcsiqFoDuJCYzzaRei30=" 
crossorigin="anonymous"></script>
+  <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.js";
 integrity="sha256-Jo8NvxMzooqayU8+eIsjO49b4EoakoE0o0tSSrBWPCU=" 
crossorigin="anonymous"></script>
+  <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.js"; 
integrity="sha256-80a3VIbp5OJ8HSIWJ7+6NjTvdBmVirLCR6otKucXnlw=" 
crossorigin="anonymous"></script>
+  <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-framerate.js"; 
integrity="sha256-6IVzv2heNDAl7KkSqjRkmjr56asfkdCxO2q8ouTo8t8=" 
crossorigin="anonymous"></script>
+  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-xOYnscyMgBG9kd6rZmIRZiBVqaN+CGquVtFHJS9018U=" 
crossorigin="anonymous">
+  <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.css"; 
integrity="sha256-ePhsoaklgbCBxK7kfSUcP+V+bVqnfFwpILz7hkSR0Lo=" 
crossorigin="anonymous">
+  <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.css";
 integrity="sha256-FxIRliWXnU67sT1i97MgNQ0qL8LjsgYiBH9v/uNxzdM=" 
crossorigin="anonymous">
+  <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.css"; 
integrity="sha256-rFc19qrZTPgcrNeYjtsLCcDOqM5NrLiPy2U+0FxW9vA=" 
crossorigin="anonymous">
   <link rel="icon" type="image/x-icon" 
href="https://baremaps.apache.org/assets/favicon/favicon.ico";>
   <style>
 

Reply via email to