This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch revert-868-sonar
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git

commit 0e52ca5a584f6d6ee0a5705b0c1ad93a6488ebdf
Author: Bertil Chapuis <[email protected]>
AuthorDate: Tue Jun 11 16:55:19 2024 +0200

    Revert "Try-with-resource not applicable for external merge sort (#868)"
    
    This reverts commit 6a02765dd36aaaed1d9634f321a594ef6a86cc0d.
---
 .../java/org/apache/baremaps/cli/map/Export.java   |  2 +-
 .../java/org/apache/baremaps/cli/map/Serve.java    | 76 ++++++++++------------
 .../storage/shapefile/ShapefileDataTable.java      | 12 +---
 .../shapefile/internal/ShapefileByteReader.java    |  8 +--
 .../shapefile/internal/ShapefileGeometryType.java  | 30 +++++----
 .../shapefile/internal/ShapefileInputStream.java   |  9 +--
 .../tilestore/postgres/PostgresTileStore.java      |  5 +-
 .../org/apache/baremaps/utils/Compression.java     | 20 +++---
 .../apache/baremaps/utils/ObjectMapperUtils.java   |  2 +-
 .../apache/baremaps/workflow/WorkflowExecutor.java |  4 ++
 .../baremaps/workflow/tasks/CleanContextCache.java |  4 +-
 .../baremaps/workflow/tasks/CleanContextData.java  |  4 +-
 .../baremaps/workflow/tasks/DecompressFile.java    | 20 +++---
 .../baremaps/workflow/tasks/ExportVectorTiles.java | 18 ++---
 .../baremaps/workflow/tasks/ImportGeoPackage.java  |  1 -
 .../apache/baremaps/geocoderosm/OSMIndexTest.java  |  4 +-
 .../org/apache/baremaps/workflow/WorkflowTest.java |  7 +-
 .../workflow/tasks/ExecuteSqlIntegrationTest.java  |  1 -
 .../workflow/tasks/ExecuteSqlScriptTest.java       |  1 -
 .../baremaps/data/algorithm/ExternalMergeSort.java |  1 -
 .../baremaps/data/collection/DataConversions.java  |  2 +-
 .../org/apache/baremaps/data/storage/DataRow.java  |  2 +-
 .../org/apache/baremaps/data/type/WKBDataType.java | 14 +---
 .../geoparquet/data/GeoParquetGroupImpl.java       |  8 +--
 .../data/GeoParquetGroupRecordConverter.java       |  4 +-
 .../baremaps/maplibre/expression/Expressions.java  | 23 ++++---
 .../apache/baremaps/maplibre/tileset/Database.java |  4 +-
 .../maplibre/vectortile/VectorTileDecoder.java     |  5 +-
 .../maplibre/vectortile/VectorTileEncoder.java     |  2 +-
 .../maplibre/vectortile/VectorTileFunctions.java   |  5 +-
 .../function/RelationMultiPolygonBuilder.java      |  1 -
 .../openstreetmap/function/WayGeometryBuilder.java |  1 -
 .../baremaps/openstreetmap/state/StateReader.java  |  4 +-
 .../org/apache/baremaps/pmtiles/Compression.java   | 26 ++++----
 .../org/apache/baremaps/pmtiles/PMTilesWriter.java |  4 +-
 .../java/org/apache/baremaps/pmtiles/TileType.java | 12 ++--
 .../org/apache/baremaps/pmtiles/PMTilesTest.java   | 18 ++---
 .../org/apache/baremaps/server/ChangeResource.java |  1 -
 .../baremaps/testing/GeometryAssertions.java       | 10 +--
 39 files changed, 165 insertions(+), 210 deletions(-)

diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Export.java 
b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Export.java
index 741e3403..520a7aac 100644
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Export.java
+++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Export.java
@@ -55,7 +55,7 @@ public class Export implements Callable<Integer> {
 
   @Option(names = {"--format"}, paramLabel = "FORMAT",
       description = "The format of the repository.")
-  private ExportVectorTiles.Format format = ExportVectorTiles.Format.FILE;
+  private ExportVectorTiles.Format format = ExportVectorTiles.Format.file;
 
   @Override
   public Integer call() throws Exception {
diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java 
b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java
index cd99a8d2..34a054bf 100644
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java
+++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java
@@ -90,58 +90,54 @@ public class Serve implements Callable<Integer> {
     var tileset = objectMapper.readValue(configReader.read(tilesetPath), 
Tileset.class);
     var datasource = 
PostgresUtils.createDataSourceFromObject(tileset.getDatabase());
 
-    try (
-        var tileStore = new PostgresTileStore(datasource, tileset);
-        var tileCache = new TileCache(tileStore, caffeineSpec)) {
+    var tileStore = new PostgresTileStore(datasource, tileset);
+    var tileCache = new TileCache(tileStore, caffeineSpec);
+    var tileStoreSupplier = (Supplier<TileStore>) () -> tileCache;
 
-      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(tilesetPath), 
TileJSON.class);
+    var tileJSONSupplier = (Supplier<TileJSON>) () -> tileJSON;
 
-      var tileJSON = objectMapper.readValue(configReader.read(tilesetPath), 
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);
+    serverBuilder.annotatedService(new SearchResource(datasource), 
jsonResponseConverter);
 
-      var jsonResponseConverter = new 
JacksonResponseConverterFunction(objectMapper);
-      serverBuilder.annotatedService(new TileResource(tileStoreSupplier), 
jsonResponseConverter);
-      serverBuilder.annotatedService(new StyleResource(styleSupplier), 
jsonResponseConverter);
-      serverBuilder.annotatedService(new TileJSONResource(tileJSONSupplier), 
jsonResponseConverter);
-      serverBuilder.annotatedService(new SearchResource(datasource), 
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"));
-
-      if (assetsPath != null) {
-        serverBuilder.serviceUnder("/assets", FileService.of(assetsPath));
-      }
+    if (assetsPath != null) {
+      serverBuilder.serviceUnder("/assets", FileService.of(assetsPath));
+    }
 
-      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/storage/shapefile/ShapefileDataTable.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/ShapefileDataTable.java
index 3b170ddf..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
@@ -119,11 +119,7 @@ public class ShapefileDataTable implements DataTable {
         return next != null;
       } catch (IOException e) {
         logger.error("Malformed shapefile", e);
-        try {
-          shapefileInputStream.close();
-        } catch (IOException ex) {
-          // ignore
-        }
+        shapefileInputStream.close();
         return false;
       }
     }
@@ -141,11 +137,7 @@ public class ShapefileDataTable implements DataTable {
         next = null;
         return current;
       } catch (Exception e) {
-        try {
-          shapefileInputStream.close();
-        } catch (IOException ex) {
-          // ignore
-        }
+        shapefileInputStream.close();
         throw new NoSuchElementException();
       }
     }
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 0a88c19a..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
@@ -278,19 +278,19 @@ public class ShapefileByteReader extends CommonByteReader 
{
     }
 
     switch (shapefileGeometryType) {
-      case NULL_SHAPE:
+      case NullShape:
         loadNullRow(row);
         break;
 
-      case POINT:
+      case Point:
         loadPointRow(row);
         break;
 
-      case POLYGON:
+      case Polygon:
         loadPolygonRow(row);
         break;
 
-      case POLY_LINE:
+      case PolyLine:
         loadPolylineRow(row);
         break;
 
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileGeometryType.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileGeometryType.java
index 94f22267..18da5295 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileGeometryType.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileGeometryType.java
@@ -35,20 +35,22 @@ import java.util.Map;
  *      Specification</a>
  */
 public enum ShapefileGeometryType {
-  NULL_SHAPE(0),
-  POINT(1),
-  POLY_LINE(3),
-  POLYGON(5),
-  MULTI_POINT(8),
-  POINT_Z(11),
-  POLY_LINE_Z(13),
-  POLYGON_Z(15),
-  MULTI_POINT_Z(18),
-  POINT_M(21),
-  POLY_LINE_M(23),
-  POLYGON_M(25),
-  MULTI_POINT_M(28),
-  MULTI_PATCH(31);
+  NullShape(0),
+  Point(1),
+  PolyLine(3),
+  Polygon(5),
+  MultiPoint(8),
+  PointZ(11),
+  PolyLineZ(
+      13),
+  PolygonZ(15),
+  MultiPointZ(
+      18),
+  PointM(21),
+  PolyLineM(23),
+  PolygonM(25),
+  MultiPointM(28),
+  MultiPatch(31);
 
   // used for initializing the enumeration
   private int value;
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileInputStream.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileInputStream.java
index 3e9140ff..bd7a1e9a 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileInputStream.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileInputStream.java
@@ -109,14 +109,7 @@ public class ShapefileInputStream extends InputStream {
 
   /** @see java.io.InputStream#close() */
   @Override
-  public void close() throws IOException {
-    if (this.dbaseReader != null) {
-      this.dbaseReader.close();
-    }
-    if (this.shapefileReader != null) {
-      this.shapefileReader.close();
-    }
-  }
+  public void close() {}
 
   /**
    * Read next feature responding to the SQL query.
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java
index fe72fbd4..af132f0a 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java
@@ -125,7 +125,6 @@ public class PostgresTileStore implements TileStore {
    * @param zoom the zoom level
    * @return
    */
-  @SuppressWarnings("squid:S3776")
   protected static Query prepareQuery(Tileset tileset, int zoom) {
     // Initialize a builder for the tile sql
     var tileSql = new StringBuilder();
@@ -165,8 +164,8 @@ public class PostgresTileStore implements TileStore {
               .replace("$zoom", String.valueOf(zoom));
           var querySqlWithParams = String.format(
               "SELECT ST_AsMVTGeom(t.geom, ST_TileEnvelope(?, ?, ?)) AS geom, 
t.tags - 'id' AS tags, t.id AS id "
-                  + "FROM (%s) AS t WHERE t.geom IS NOT NULL "
-                  + "AND t.geom && ST_TileEnvelope(?, ?, ?, margin => 
(64.0/4096))",
+                  +
+                  "FROM (%s) AS t WHERE t.geom IS NOT NULL AND t.geom && 
ST_TileEnvelope(?, ?, ?, margin => (64.0/4096))",
               querySql);
           layerSql.append(querySqlWithParams);
 
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/utils/Compression.java 
b/baremaps-core/src/main/java/org/apache/baremaps/utils/Compression.java
index 852e9ef8..46a2569a 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/utils/Compression.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/utils/Compression.java
@@ -27,32 +27,32 @@ import 
org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
 import 
org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream;
 
 public enum Compression {
-  NONE,
-  GZIP,
-  BZIP2;
+  none,
+  gzip,
+  bzip2;
 
   public static Compression detect(Path file) {
     if (file.toString().endsWith(".gz")) {
-      return GZIP;
+      return gzip;
     } else if (file.toString().endsWith(".bz2")) {
-      return BZIP2;
+      return bzip2;
     } else {
-      return NONE;
+      return none;
     }
   }
 
   public InputStream decompress(InputStream inputStream) throws IOException {
     return switch (this) {
-      case GZIP -> new GZIPInputStream(inputStream);
-      case BZIP2 -> new BZip2CompressorInputStream(inputStream);
+      case gzip -> new GZIPInputStream(inputStream);
+      case bzip2 -> new BZip2CompressorInputStream(inputStream);
       default -> inputStream;
     };
   }
 
   public OutputStream compress(OutputStream outputStream) throws IOException {
     return switch (this) {
-      case GZIP -> new GZIPOutputStream(outputStream);
-      case BZIP2 -> new BZip2CompressorOutputStream(outputStream);
+      case gzip -> new GZIPOutputStream(outputStream);
+      case bzip2 -> new BZip2CompressorOutputStream(outputStream);
       default -> outputStream;
     };
   }
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/utils/ObjectMapperUtils.java 
b/baremaps-core/src/main/java/org/apache/baremaps/utils/ObjectMapperUtils.java
index 0b642399..2c9ea560 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/utils/ObjectMapperUtils.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/utils/ObjectMapperUtils.java
@@ -28,7 +28,7 @@ public class ObjectMapperUtils {
 
   public static ObjectMapper objectMapper() {
     return new ObjectMapper()
-        .registerModule(Expressions.createModule())
+        .registerModule(Expressions.jacksonModule())
         .configure(Feature.IGNORE_UNKNOWN, true)
         .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
         .configure(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, 
true)
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java
index 7295c448..36d3c38b 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java
@@ -98,6 +98,8 @@ public class WorkflowExecutor implements AutoCloseable {
     if (Graphs.hasCycle(this.graph)) {
       throw new WorkflowException("The workflow must be a directed acyclic 
graph");
     }
+
+    logger.info("Workflow graph: {}", this.graph);
   }
 
   /**
@@ -228,8 +230,10 @@ public class WorkflowExecutor implements AutoCloseable {
 
     if (workflowStart.isPresent() && workflowEnd.isPresent()) {
       var workflowDuration = Duration.ofMillis(workflowEnd.getAsLong() - 
workflowStart.getAsLong());
+      logger.info("Workflow graph: {}", this.graph);
       logger.info("  Duration: {}", formatDuration(workflowDuration));
     } else {
+      logger.info("Workflow graph: {}", this.graph);
       logger.info("  Duration: unknown");
     }
 
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextCache.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextCache.java
index a9f8a075..625506a7 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextCache.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextCache.java
@@ -29,9 +29,7 @@ public class CleanContextCache implements Task {
   /**
    * Constructs an {@code CleanContextCache}.
    */
-  public CleanContextCache() {
-    // Default constructor
-  }
+  public CleanContextCache() {}
 
   /**
    * {@inheritDoc}
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextData.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextData.java
index 56062bfb..c90696a1 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextData.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextData.java
@@ -29,9 +29,7 @@ public class CleanContextData implements Task {
   /**
    * Constructs an {@code CleanContextData}.
    */
-  public CleanContextData() {
-    // Default constructor
-  }
+  public CleanContextData() {}
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
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 d3d0d65b..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
@@ -45,11 +45,11 @@ public class DecompressFile implements Task {
    * The compression format.
    */
   public enum Compression {
-    ZIP,
-    TARGZ,
-    TARBZ2,
-    GZIP,
-    BZIP2;
+    zip,
+    targz,
+    tarbz2,
+    gzip,
+    bzip2;
   }
 
   private Path source;
@@ -84,11 +84,11 @@ public class DecompressFile implements Task {
     var sourcePath = source.toAbsolutePath();
     var targetPath = target.toAbsolutePath();
     switch (compression) {
-      case ZIP -> decompressZip(sourcePath, targetPath);
-      case TARGZ -> decompressTarGz(sourcePath, targetPath);
-      case TARBZ2 -> decompressTarBz2(sourcePath, targetPath);
-      case GZIP -> decompressGzip(sourcePath, targetPath);
-      case BZIP2 -> decompressBzip2(sourcePath, targetPath);
+      case zip -> decompressZip(sourcePath, targetPath);
+      case targz -> decompressTarGz(sourcePath, targetPath);
+      case tarbz2 -> decompressTarBz2(sourcePath, targetPath);
+      case gzip -> decompressGzip(sourcePath, targetPath);
+      case bzip2 -> decompressBzip2(sourcePath, targetPath);
     }
   }
 
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java
index 0a1b9f0c..0875a5d9 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java
@@ -54,9 +54,9 @@ public class ExportVectorTiles implements Task {
   private static final Logger logger = 
LoggerFactory.getLogger(ExportVectorTiles.class);
 
   public enum Format {
-    FILE,
-    MBTILES,
-    PMTILES
+    file,
+    mbtiles,
+    pmtiles
   }
 
   private Path tileset;
@@ -101,9 +101,9 @@ public class ExportVectorTiles implements Task {
 
     // Write the static files
     var directory = switch (format) {
-      case FILE -> repository;
-      case MBTILES -> repository.getParent();
-      case PMTILES -> repository.getParent();
+      case file -> repository;
+      case mbtiles -> repository.getParent();
+      case pmtiles -> repository.getParent();
     };
     Files.createDirectories(directory);
     try (var html = 
this.getClass().getResourceAsStream("/static/server.html")) {
@@ -171,16 +171,16 @@ public class ExportVectorTiles implements Task {
 
   private TileStore targetTileStore(Tileset source) throws TileStoreException, 
IOException {
     switch (format) {
-      case FILE:
+      case file:
         return new FileTileStore(repository.resolve("tiles"));
-      case MBTILES:
+      case mbtiles:
         Files.deleteIfExists(repository);
         var dataSource = SqliteUtils.createDataSource(repository, false);
         var tilesStore = new MBTilesStore(dataSource);
         tilesStore.initializeDatabase();
         tilesStore.writeMetadata(metadata(source));
         return tilesStore;
-      case PMTILES:
+      case pmtiles:
         Files.deleteIfExists(repository);
         return new PMTilesStore(repository, source);
       default:
diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java
index cf8078a8..88801a53 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java
@@ -33,7 +33,6 @@ import org.slf4j.LoggerFactory;
 /**
  * Import a GeoPackage into a database.
  */
-@SuppressWarnings("squid:S2699")
 public class ImportGeoPackage implements Task {
 
   private static final Logger logger = 
LoggerFactory.getLogger(ImportGeoPackage.class);
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 f267f600..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
@@ -18,7 +18,8 @@
 package org.apache.baremaps.geocoderosm;
 
 import static org.apache.baremaps.testing.TestFiles.SAMPLE_OSM_PBF;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
 import java.nio.file.Files;
@@ -161,7 +162,6 @@ public class OSMIndexTest {
     for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
       System.out.println(searcher.doc(scoreDoc.doc));
     }
-    assertNotNull(topDocs);
   }
 
 }
diff --git 
a/baremaps-core/src/test/java/org/apache/baremaps/workflow/WorkflowTest.java 
b/baremaps-core/src/test/java/org/apache/baremaps/workflow/WorkflowTest.java
index d55d913a..9aadd107 100644
--- a/baremaps-core/src/test/java/org/apache/baremaps/workflow/WorkflowTest.java
+++ b/baremaps-core/src/test/java/org/apache/baremaps/workflow/WorkflowTest.java
@@ -27,7 +27,6 @@ import 
org.apache.baremaps.workflow.tasks.DecompressFile.Compression;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
-@SuppressWarnings("squid:S2699")
 class WorkflowTest extends PostgresContainerTest {
 
   @Test
@@ -37,7 +36,7 @@ class WorkflowTest extends PostgresContainerTest {
         new 
DownloadUrl("https://naciscdn.org/naturalearth/packages/natural_earth_vector.gpkg.zip";,
             Paths.get("natural_earth_vector.gpkg.zip"), false),
         new DecompressFile(Paths.get("natural_earth_vector.gpkg.zip"),
-            Paths.get("natural_earth_vector"), Compression.ZIP),
+            Paths.get("natural_earth_vector"), Compression.zip),
         new 
ImportGeoPackage(Paths.get("natural_earth_vector/packages/natural_earth_vector.gpkg"),
             4326, jdbcUrl(),
             3857)))));
@@ -52,7 +51,7 @@ class WorkflowTest extends PostgresContainerTest {
             new 
DownloadUrl("https://osmdata.openstreetmap.de/download/coastlines-split-4326.zip";,
                 Paths.get("coastlines-split-4326.zip"), false),
             new DecompressFile(Paths.get("coastlines-split-4326.zip"),
-                Paths.get("coastlines-split-4326"), Compression.ZIP),
+                Paths.get("coastlines-split-4326"), Compression.zip),
             new 
ImportShapefile(Paths.get("coastlines-split-4326/coastlines-split-4326/lines.shp"),
                 4326, jdbcUrl(),
                 3857)))));
@@ -110,7 +109,7 @@ class WorkflowTest extends PostgresContainerTest {
         new Step("unzip-shapefile", List.of("fetch-shapefile"),
             List.of(
                 new 
DecompressFile(Paths.get("downloads/simplified-water-polygons-split-3857.zip"),
-                    Paths.get("archives"), Compression.ZIP))),
+                    Paths.get("archives"), Compression.zip))),
         new Step("fetch-projection", List.of("unzip-shapefile"),
             List.of(new 
DownloadUrl("https://spatialreference.org/ref/sr-org/epsg3857/prj/";,
                 Paths.get(
diff --git 
a/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlIntegrationTest.java
 
b/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlIntegrationTest.java
index 91e2c43f..9355db58 100644
--- 
a/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlIntegrationTest.java
+++ 
b/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlIntegrationTest.java
@@ -24,7 +24,6 @@ import org.apache.baremaps.workflow.WorkflowContext;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
-@SuppressWarnings("squid:S2699")
 class ExecuteSqlIntegrationTest extends PostgresContainerTest {
 
   @Test
diff --git 
a/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScriptTest.java
 
b/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScriptTest.java
index aeb04aac..fcd8e1c5 100644
--- 
a/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScriptTest.java
+++ 
b/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScriptTest.java
@@ -25,7 +25,6 @@ import org.apache.baremaps.workflow.WorkflowContext;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
-@SuppressWarnings("squid:S2699")
 class ExecuteSqlScriptTest extends PostgresContainerTest {
 
   @Test
diff --git 
a/baremaps-data/src/main/java/org/apache/baremaps/data/algorithm/ExternalMergeSort.java
 
b/baremaps-data/src/main/java/org/apache/baremaps/data/algorithm/ExternalMergeSort.java
index 040886ff..37232e10 100644
--- 
a/baremaps-data/src/main/java/org/apache/baremaps/data/algorithm/ExternalMergeSort.java
+++ 
b/baremaps-data/src/main/java/org/apache/baremaps/data/algorithm/ExternalMergeSort.java
@@ -30,7 +30,6 @@ import org.apache.baremaps.data.collection.DataList;
  * <a 
href="https://github.com/lemire/externalsortinginjava";>externalsortinginjava</a>
 (public
  * domain).
  */
-@SuppressWarnings({"squid:S2095", "squid:S3776"})
 public class ExternalMergeSort {
 
   /**
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 4a315fb2..f0e63dfb 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
@@ -219,7 +219,7 @@ public class DataConversions {
     @Override
     public long addIndexed(E value) {
       list.add(value);
-      return list.size() - 1L;
+      return list.size() - 1;
     }
 
     @Override
diff --git 
a/baremaps-data/src/main/java/org/apache/baremaps/data/storage/DataRow.java 
b/baremaps-data/src/main/java/org/apache/baremaps/data/storage/DataRow.java
index 5c8df9cc..25476c20 100644
--- a/baremaps-data/src/main/java/org/apache/baremaps/data/storage/DataRow.java
+++ b/baremaps-data/src/main/java/org/apache/baremaps/data/storage/DataRow.java
@@ -36,7 +36,7 @@ public interface DataRow {
    * 
    * @return the values of the columns in the row
    */
-  List<Object> values();
+  List<?> values();
 
   /**
    * Returns the value of the specified column.
diff --git 
a/baremaps-data/src/main/java/org/apache/baremaps/data/type/WKBDataType.java 
b/baremaps-data/src/main/java/org/apache/baremaps/data/type/WKBDataType.java
index 1c3b3bfe..49c2dea8 100644
--- a/baremaps-data/src/main/java/org/apache/baremaps/data/type/WKBDataType.java
+++ b/baremaps-data/src/main/java/org/apache/baremaps/data/type/WKBDataType.java
@@ -36,11 +36,7 @@ public class WKBDataType implements DataType<Geometry> {
   @Override
   public int size(final Geometry value) {
     byte[] bytes = serialize(value);
-    if (bytes == null) {
-      return Integer.BYTES;
-    } else {
-      return Integer.BYTES + bytes.length;
-    }
+    return Integer.BYTES + bytes.length;
   }
 
   /** {@inheritDoc} */
@@ -53,12 +49,8 @@ public class WKBDataType implements DataType<Geometry> {
   @Override
   public void write(final ByteBuffer buffer, final int position, final 
Geometry value) {
     byte[] bytes = serialize(value);
-    if (bytes == null) {
-      buffer.putInt(position, Integer.BYTES);
-    } else {
-      buffer.putInt(position, Integer.BYTES + bytes.length);
-      buffer.put(position + Integer.BYTES, bytes);
-    }
+    buffer.putInt(position, Integer.BYTES + bytes.length);
+    buffer.put(position + Integer.BYTES, bytes);
   }
 
   /** {@inheritDoc} */
diff --git 
a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupImpl.java
 
b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupImpl.java
index 7e85b013..9da6d93d 100644
--- 
a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupImpl.java
+++ 
b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupImpl.java
@@ -437,16 +437,16 @@ public class GeoParquetGroupImpl implements 
GeoParquetGroup {
   public List<Envelope> getEnvelopeValues(int fieldIndex) {
     return getGroupValues(fieldIndex).stream().map(group -> {
       double xMin = group.getSchema().fields().get(0).type().equals(Type.FLOAT)
-          ? (double) group.getFloatValue(0)
+          ? group.getFloatValue(0)
           : group.getDoubleValue(0);
       double yMin = group.getSchema().fields().get(1).type().equals(Type.FLOAT)
-          ? (double) group.getFloatValue(1)
+          ? group.getFloatValue(1)
           : group.getDoubleValue(1);
       double xMax = group.getSchema().fields().get(2).type().equals(Type.FLOAT)
-          ? (double) group.getFloatValue(2)
+          ? group.getFloatValue(2)
           : group.getDoubleValue(2);
       double yMax = group.getSchema().fields().get(0).type().equals(Type.FLOAT)
-          ? (double) group.getFloatValue(3)
+          ? group.getFloatValue(3)
           : group.getDoubleValue(3);
       return new Envelope(xMin, xMax, yMin, yMax);
     }).toList();
diff --git 
a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupRecordConverter.java
 
b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupRecordConverter.java
index ad1b1d2d..54cfb797 100644
--- 
a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupRecordConverter.java
+++ 
b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupRecordConverter.java
@@ -51,9 +51,7 @@ public class GeoParquetGroupRecordConverter extends 
RecordMaterializer<GeoParque
       }
 
       @Override
-      public void end() {
-        // Do nothing
-      }
+      public void end() {}
     };
   }
 
diff --git 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/expression/Expressions.java
 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/expression/Expressions.java
index 72eae357..c20eab16 100644
--- 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/expression/Expressions.java
+++ 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/expression/Expressions.java
@@ -503,14 +503,24 @@ public interface Expressions {
             "Unknown expression: " + arrayList.get(0).asText());
       };
     }
+
   }
 
+
   static Expression read(String json) throws IOException {
-    return createObjectMapper().readValue(new StringReader(json), 
Expression.class);
+    var mapper = new ObjectMapper();
+    var simpleModule = new SimpleModule("SimpleModule", new Version(1, 0, 0, 
null));
+    simpleModule.addDeserializer(Expression.class, new 
ExpressionDeserializer());
+    mapper.registerModule(simpleModule);
+    return mapper.readValue(new StringReader(json), Expression.class);
   }
 
   static String write(Expression expression) throws IOException {
-    return createObjectMapper().writeValueAsString(expression);
+    var mapper = new ObjectMapper();
+    var simpleModule = new SimpleModule("SimpleModule", new Version(1, 0, 0, 
null));
+    simpleModule.addSerializer(Expression.class, new ExpressionSerializer());
+    mapper.registerModule(simpleModule);
+    return mapper.writeValueAsString(expression);
   }
 
   static Predicate<Feature> asPredicate(Expression expression) {
@@ -524,15 +534,8 @@ public interface Expressions {
     };
   }
 
-  static ObjectMapper createObjectMapper() {
-    var mapper = new ObjectMapper();
-    mapper.registerModule(createModule());
-    return mapper;
-  }
-
-  static Module createModule() {
+  public static Module jacksonModule() {
     var simpleModule = new SimpleModule("SimpleModule", new Version(1, 0, 0, 
null));
-    simpleModule.addSerializer(Expression.class, new ExpressionSerializer());
     simpleModule.addDeserializer(Expression.class, new 
ExpressionDeserializer());
     return simpleModule;
   }
diff --git 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/tileset/Database.java
 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/tileset/Database.java
index b332357d..d4e4334e 100644
--- 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/tileset/Database.java
+++ 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/tileset/Database.java
@@ -61,9 +61,7 @@ public class Database {
   @JsonProperty("readOnly")
   private Boolean readOnly;
 
-  public Database() {
-    // Default constructor
-  }
+  public Database() {}
 
   public String getDataSourceClassName() {
     return dataSourceClassName;
diff --git 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileDecoder.java
 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileDecoder.java
index b37abc6c..b0537992 100644
--- 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileDecoder.java
+++ 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileDecoder.java
@@ -48,9 +48,7 @@ public class VectorTileDecoder {
   /**
    * Constructs a new vector tile decoder.
    */
-  public VectorTileDecoder() {
-    // Default constructor
-  }
+  public VectorTileDecoder() {}
 
   /**
    * Decodes a vector tile.
@@ -210,7 +208,6 @@ public class VectorTileDecoder {
    * @param encoding The encoding of the point geometry
    * @return The decoded point geometry
    */
-  @SuppressWarnings("squid:S3776")
   protected Geometry decodePoint(List<Integer> encoding) {
     List<Coordinate> coordinates = new ArrayList<>();
 
diff --git 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileEncoder.java
 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileEncoder.java
index 8af06bbe..e51ab027 100644
--- 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileEncoder.java
+++ 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileEncoder.java
@@ -47,7 +47,7 @@ public class VectorTileEncoder {
    * Constructs a vector tile encoder.
    */
   public VectorTileEncoder() {
-    // Default constructor
+
   }
 
   /**
diff --git 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileFunctions.java
 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileFunctions.java
index d0b06401..c65a8f34 100644
--- 
a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileFunctions.java
+++ 
b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileFunctions.java
@@ -123,9 +123,8 @@ public class VectorTileFunctions {
    * @return The clipped geometry
    */
   private static Geometry clipToTile(Geometry geometry, int extent, int 
buffer) {
-    Envelope envelope = new Envelope(
-        -buffer, (double) extent + buffer,
-        -buffer, (double) extent + buffer);
+    Envelope envelope =
+        new Envelope(-buffer, extent + buffer, -buffer, extent + buffer);
     GeometryFactory geometryFactory = new GeometryFactory();
     Geometry tile = geometryFactory.toGeometry(envelope);
     return geometry.intersection(tile);
diff --git 
a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java
 
b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java
index 73a674f5..5009f64b 100644
--- 
a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java
+++ 
b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java
@@ -81,7 +81,6 @@ public class RelationMultiPolygonBuilder implements 
Consumer<Entity> {
     }
   }
 
-  @SuppressWarnings("squid:S3776")
   private void buildMultiPolygon(Relation relation) {
     // Categorize the members of the relation by their role
     var outerMembers = new ArrayList<Member>();
diff --git 
a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/WayGeometryBuilder.java
 
b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/WayGeometryBuilder.java
index 1df439ac..a93e9903 100644
--- 
a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/WayGeometryBuilder.java
+++ 
b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/WayGeometryBuilder.java
@@ -51,7 +51,6 @@ public class WayGeometryBuilder implements Consumer<Entity> {
 
   /** {@inheritDoc} */
   @Override
-  @SuppressWarnings("squid:S3776")
   public void accept(Entity entity) {
     if (entity instanceof Way way) {
       try {
diff --git 
a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/state/StateReader.java
 
b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/state/StateReader.java
index d9e84dd5..ded415dd 100644
--- 
a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/state/StateReader.java
+++ 
b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/state/StateReader.java
@@ -109,7 +109,6 @@ public class StateReader implements Reader<State> {
    * @param timestamp the timestamp
    * @return the state
    */
-  @SuppressWarnings("squid:S3776")
   public Optional<State> getStateFromTimestamp(LocalDateTime timestamp) {
     var upper = getState(Optional.empty());
     if (upper.isEmpty()) {
@@ -148,8 +147,7 @@ public class StateReader implements Reader<State> {
             - lower.get().getTimestamp().toEpochSecond(ZoneOffset.UTC);
         var seqInt = upper.get().getSequenceNumber() - 
lower.get().getSequenceNumber();
         var goal = timestamp.getSecond() - 
lower.get().getTimestamp().getSecond();
-        baseSplitId =
-            lower.get().getSequenceNumber() + (long) Math.ceil((double) (goal 
* seqInt) / tsInt);
+        baseSplitId = lower.get().getSequenceNumber() + (long) Math.ceil(goal 
* seqInt / tsInt);
         if (baseSplitId >= upper.get().getSequenceNumber()) {
           baseSplitId = upper.get().getSequenceNumber() - 1;
         }
diff --git 
a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/Compression.java 
b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/Compression.java
index f2891b27..facc0138 100644
--- 
a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/Compression.java
+++ 
b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/Compression.java
@@ -22,18 +22,18 @@ import java.util.zip.GZIPInputStream;
 import java.util.zip.GZIPOutputStream;
 
 enum Compression {
-  UNKNOWN,
-  NONE,
-  GZIP,
-  BROTLI,
-  ZSTD;
+  Unknown,
+  None,
+  Gzip,
+  Brotli,
+  Zstd;
 
   InputStream decompress(InputStream inputStream) throws IOException {
     return switch (this) {
-      case NONE -> inputStream;
-      case GZIP -> decompressGzip(inputStream);
-      case BROTLI -> decompressBrotli(inputStream);
-      case ZSTD -> decompressZstd(inputStream);
+      case None -> inputStream;
+      case Gzip -> decompressGzip(inputStream);
+      case Brotli -> decompressBrotli(inputStream);
+      case Zstd -> decompressZstd(inputStream);
       default -> throw new RuntimeException("Unknown compression");
     };
   }
@@ -52,10 +52,10 @@ enum Compression {
 
   OutputStream compress(OutputStream outputStream) throws IOException {
     return switch (this) {
-      case NONE -> outputStream;
-      case GZIP -> compressGzip(outputStream);
-      case BROTLI -> compressBrotli(outputStream);
-      case ZSTD -> compressZstd(outputStream);
+      case None -> outputStream;
+      case Gzip -> compressGzip(outputStream);
+      case Brotli -> compressBrotli(outputStream);
+      case Zstd -> compressZstd(outputStream);
       default -> throw new RuntimeException("Unknown compression");
     };
   }
diff --git 
a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesWriter.java 
b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesWriter.java
index a6e1e940..5d767022 100644
--- 
a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesWriter.java
+++ 
b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesWriter.java
@@ -28,7 +28,7 @@ import java.util.*;
 
 public class PMTilesWriter {
 
-  private Compression compression = Compression.GZIP;
+  private Compression compression = Compression.Gzip;
 
   private Path path;
 
@@ -183,7 +183,7 @@ public class PMTilesWriter {
 
     header.setInternalCompression(compression);
     header.setTileCompression(compression);
-    header.setTileType(TileType.MVT);
+    header.setTileType(TileType.mvt);
     header.setRootOffset(rootOffset);
     header.setRootLength(rootLength);
     header.setMetadataOffset(metadataOffset);
diff --git 
a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/TileType.java 
b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/TileType.java
index 001db982..b97cd981 100644
--- a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/TileType.java
+++ b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/TileType.java
@@ -18,10 +18,10 @@
 package org.apache.baremaps.pmtiles;
 
 enum TileType {
-  UNKNOWN,
-  MVT,
-  PNG,
-  JPEG,
-  WEBP,
-  AVIF,
+  unknown,
+  mvt,
+  png,
+  jpeg,
+  webp,
+  avif,
 }
diff --git 
a/baremaps-pmtiles/src/test/java/org/apache/baremaps/pmtiles/PMTilesTest.java 
b/baremaps-pmtiles/src/test/java/org/apache/baremaps/pmtiles/PMTilesTest.java
index 5bb38642..affb0514 100644
--- 
a/baremaps-pmtiles/src/test/java/org/apache/baremaps/pmtiles/PMTilesTest.java
+++ 
b/baremaps-pmtiles/src/test/java/org/apache/baremaps/pmtiles/PMTilesTest.java
@@ -144,9 +144,9 @@ class PMTilesTest {
       assertEquals(header.getNumTileEntries(), 1);
       assertEquals(header.getNumTileContents(), 1);
       assertFalse(header.isClustered());
-      assertEquals(header.getInternalCompression(), Compression.GZIP);
-      assertEquals(header.getTileCompression(), Compression.GZIP);
-      assertEquals(header.getTileType(), TileType.MVT);
+      assertEquals(header.getInternalCompression(), Compression.Gzip);
+      assertEquals(header.getTileCompression(), Compression.Gzip);
+      assertEquals(header.getTileType(), TileType.mvt);
       assertEquals(header.getMinZoom(), 0);
       assertEquals(header.getMaxZoom(), 0);
       assertEquals(header.getMinLon(), 0);
@@ -173,9 +173,9 @@ class PMTilesTest {
         1,
         10,
         false,
-        Compression.GZIP,
-        Compression.GZIP,
-        TileType.MVT,
+        Compression.Gzip,
+        Compression.Gzip,
+        TileType.mvt,
         0,
         0,
         0,
@@ -254,7 +254,7 @@ class PMTilesTest {
   @Test
   void buildRootLeaves() throws IOException {
     var entries = List.of(new Entry(100, 1, 1, 0));
-    var directories = PMTiles.buildRootLeaves(entries, 1, Compression.NONE);
+    var directories = PMTiles.buildRootLeaves(entries, 1, Compression.None);
     assertEquals(directories.getNumLeaves(), 1);
 
   }
@@ -264,7 +264,7 @@ class PMTilesTest {
     var random = new Random(3857);
     var entries = new ArrayList<Entry>();
     entries.add(new Entry(0, 0, 100, 1));
-    var directories = PMTiles.optimizeDirectories(entries, 100, 
Compression.NONE);
+    var directories = PMTiles.optimizeDirectories(entries, 100, 
Compression.None);
     assertFalse(directories.getLeaves().length > 0);
     assertEquals(0, directories.getNumLeaves());
 
@@ -275,7 +275,7 @@ class PMTilesTest {
       entries.add(new Entry(i, offset, randTileSize, 1));
       offset += randTileSize;
     }
-    directories = PMTiles.optimizeDirectories(entries, 1024, Compression.NONE);
+    directories = PMTiles.optimizeDirectories(entries, 1024, Compression.None);
     assertFalse(directories.getRoot().length > 1024);
     assertFalse(directories.getNumLeaves() == 0);
     assertFalse(directories.getLeaves().length == 0);
diff --git 
a/baremaps-server/src/main/java/org/apache/baremaps/server/ChangeResource.java 
b/baremaps-server/src/main/java/org/apache/baremaps/server/ChangeResource.java
index f4e81371..32ccae71 100644
--- 
a/baremaps-server/src/main/java/org/apache/baremaps/server/ChangeResource.java
+++ 
b/baremaps-server/src/main/java/org/apache/baremaps/server/ChangeResource.java
@@ -87,7 +87,6 @@ public final class ChangeResource {
      * Detects changes in the tileset and style and broadcasts them.
      */
     @Override
-    @SuppressWarnings("squid:S3776")
     public void run() {
       try (WatchService watchService = 
FileSystems.getDefault().newWatchService()) {
         if (tileset != null && Files.exists(tileset)) {
diff --git 
a/baremaps-testing/src/main/java/org/apache/baremaps/testing/GeometryAssertions.java
 
b/baremaps-testing/src/main/java/org/apache/baremaps/testing/GeometryAssertions.java
index e42b3bda..4b9e2ed1 100644
--- 
a/baremaps-testing/src/main/java/org/apache/baremaps/testing/GeometryAssertions.java
+++ 
b/baremaps-testing/src/main/java/org/apache/baremaps/testing/GeometryAssertions.java
@@ -23,19 +23,15 @@ import 
org.locationtech.jts.precision.GeometryPrecisionReducer;
 
 public class GeometryAssertions {
 
-  private static void throwAssertionError(Object expected, Object actual) {
-    throw new AssertionError("Expected " + expected + " but was " + actual);
-  }
-
   public static void assertGeometryEquals(Geometry expected, Geometry actual) {
     if (expected == null && actual == null) {
       return;
     }
     if (expected == null || actual == null) {
-      throwAssertionError(expected, actual);
+      throw new AssertionError("Expected " + expected + " but was " + actual);
     }
     if (!expected.equalsExact(actual)) {
-      throwAssertionError(expected, actual);
+      throw new AssertionError("Expected " + expected + " but was " + actual);
     }
   }
 
@@ -44,7 +40,7 @@ public class GeometryAssertions {
       return;
     }
     if (expected == null || actual == null) {
-      throwAssertionError(expected, actual);
+      throw new AssertionError("Expected " + expected + " but was " + actual);
     }
     PrecisionModel precisionModel = new PrecisionModel(tolerance);
     GeometryPrecisionReducer reducer = new 
GeometryPrecisionReducer(precisionModel);

Reply via email to