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 6a02765d Try-with-resource not applicable for external merge sort
(#868)
6a02765d is described below
commit 6a02765dd36aaaed1d9634f321a594ef6a86cc0d
Author: Bertil Chapuis <[email protected]>
AuthorDate: Tue Jun 11 16:55:10 2024 +0200
Try-with-resource not applicable for external merge sort (#868)
* Close the underlying ressources
* Handle null values
* Cast operands to double
* Capitalize enums
* Remove unnecessary log
* Suppress warnings when irrelevant
* Refactor some code
---
.../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, 210 insertions(+), 165 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 520a7aac..741e3403 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 34a054bf..cd99a8d2 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,54 +90,58 @@ public class Serve implements Callable<Integer> {
var tileset = objectMapper.readValue(configReader.read(tilesetPath),
Tileset.class);
var datasource =
PostgresUtils.createDataSourceFromObject(tileset.getDatabase());
- var tileStore = new PostgresTileStore(datasource, tileset);
- var tileCache = new TileCache(tileStore, caffeineSpec);
- var tileStoreSupplier = (Supplier<TileStore>) () -> tileCache;
+ try (
+ var tileStore = new PostgresTileStore(datasource, tileset);
+ var tileCache = new TileCache(tileStore, caffeineSpec)) {
- var style = objectMapper.readValue(configReader.read(stylePath),
Style.class);
- var styleSupplier = (Supplier<Style>) () -> style;
+ var tileStoreSupplier = (Supplier<TileStore>) () -> tileCache;
- var tileJSON = objectMapper.readValue(configReader.read(tilesetPath),
TileJSON.class);
- var tileJSONSupplier = (Supplier<TileJSON>) () -> tileJSON;
+ var style = objectMapper.readValue(configReader.read(stylePath),
Style.class);
+ var styleSupplier = (Supplier<Style>) () -> style;
- var serverBuilder = Server.builder();
- serverBuilder.http(port);
+ var tileJSON = objectMapper.readValue(configReader.read(tilesetPath),
TileJSON.class);
+ var tileJSONSupplier = (Supplier<TileJSON>) () -> tileJSON;
- 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 serverBuilder = Server.builder();
+ serverBuilder.http(port);
- var index = HttpFile.of(ClassLoader.getSystemClassLoader(),
"/static/server.html");
- serverBuilder.service("/", index.asService());
- serverBuilder.serviceUnder("/",
FileService.of(ClassLoader.getSystemClassLoader(), "/static"));
+ 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);
- if (assetsPath != null) {
- serverBuilder.serviceUnder("/assets", FileService.of(assetsPath));
- }
+ 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));
+ }
- 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 1ee7f693..3b170ddf 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,7 +119,11 @@ public class ShapefileDataTable implements DataTable {
return next != null;
} catch (IOException e) {
logger.error("Malformed shapefile", e);
- shapefileInputStream.close();
+ try {
+ shapefileInputStream.close();
+ } catch (IOException ex) {
+ // ignore
+ }
return false;
}
}
@@ -137,7 +141,11 @@ public class ShapefileDataTable implements DataTable {
next = null;
return current;
} catch (Exception e) {
- shapefileInputStream.close();
+ try {
+ shapefileInputStream.close();
+ } catch (IOException ex) {
+ // ignore
+ }
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 61b1e39f..0a88c19a 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 NullShape:
+ case NULL_SHAPE:
loadNullRow(row);
break;
- case Point:
+ case POINT:
loadPointRow(row);
break;
- case Polygon:
+ case POLYGON:
loadPolygonRow(row);
break;
- case PolyLine:
+ case POLY_LINE:
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 18da5295..94f22267 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,22 +35,20 @@ import java.util.Map;
* Specification</a>
*/
public enum ShapefileGeometryType {
- 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);
+ 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);
// 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 bd7a1e9a..3e9140ff 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,7 +109,14 @@ public class ShapefileInputStream extends InputStream {
/** @see java.io.InputStream#close() */
@Override
- public void close() {}
+ public void close() throws IOException {
+ if (this.dbaseReader != null) {
+ this.dbaseReader.close();
+ }
+ if (this.shapefileReader != null) {
+ this.shapefileReader.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 af132f0a..fe72fbd4 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,6 +125,7 @@ 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();
@@ -164,8 +165,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 46a2569a..852e9ef8 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 2c9ea560..0b642399 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.jacksonModule())
+ .registerModule(Expressions.createModule())
.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 36d3c38b..7295c448 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,8 +98,6 @@ 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);
}
/**
@@ -230,10 +228,8 @@ 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 625506a7..a9f8a075 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,7 +29,9 @@ public class CleanContextCache implements Task {
/**
* Constructs an {@code CleanContextCache}.
*/
- public CleanContextCache() {}
+ public CleanContextCache() {
+ // Default constructor
+ }
/**
* {@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 c90696a1..56062bfb 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,7 +29,9 @@ public class CleanContextData implements Task {
/**
* Constructs an {@code CleanContextData}.
*/
- public CleanContextData() {}
+ public CleanContextData() {
+ // Default constructor
+ }
@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 ac364246..d3d0d65b 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 0875a5d9..0a1b9f0c 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 88801a53..cf8078a8 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,6 +33,7 @@ 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 7b4d8a7d..f267f600 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,8 +18,7 @@
package org.apache.baremaps.geocoderosm;
import static org.apache.baremaps.testing.TestFiles.SAMPLE_OSM_PBF;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
import java.io.IOException;
import java.nio.file.Files;
@@ -162,6 +161,7 @@ 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 9aadd107..d55d913a 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,6 +27,7 @@ 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
@@ -36,7 +37,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)))));
@@ -51,7 +52,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)))));
@@ -109,7 +110,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 9355db58..91e2c43f 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,6 +24,7 @@ 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 fcd8e1c5..aeb04aac 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,6 +25,7 @@ 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 37232e10..040886ff 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,6 +30,7 @@ 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 f0e63dfb..4a315fb2 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() - 1;
+ return list.size() - 1L;
}
@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 25476c20..5c8df9cc 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<?> values();
+ List<Object> 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 49c2dea8..1c3b3bfe 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,7 +36,11 @@ public class WKBDataType implements DataType<Geometry> {
@Override
public int size(final Geometry value) {
byte[] bytes = serialize(value);
- return Integer.BYTES + bytes.length;
+ if (bytes == null) {
+ return Integer.BYTES;
+ } else {
+ return Integer.BYTES + bytes.length;
+ }
}
/** {@inheritDoc} */
@@ -49,8 +53,12 @@ public class WKBDataType implements DataType<Geometry> {
@Override
public void write(final ByteBuffer buffer, final int position, final
Geometry value) {
byte[] bytes = serialize(value);
- buffer.putInt(position, Integer.BYTES + bytes.length);
- buffer.put(position + Integer.BYTES, bytes);
+ if (bytes == null) {
+ buffer.putInt(position, Integer.BYTES);
+ } else {
+ 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 9da6d93d..7e85b013 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)
- ? group.getFloatValue(0)
+ ? (double) group.getFloatValue(0)
: group.getDoubleValue(0);
double yMin = group.getSchema().fields().get(1).type().equals(Type.FLOAT)
- ? group.getFloatValue(1)
+ ? (double) group.getFloatValue(1)
: group.getDoubleValue(1);
double xMax = group.getSchema().fields().get(2).type().equals(Type.FLOAT)
- ? group.getFloatValue(2)
+ ? (double) group.getFloatValue(2)
: group.getDoubleValue(2);
double yMax = group.getSchema().fields().get(0).type().equals(Type.FLOAT)
- ? group.getFloatValue(3)
+ ? (double) 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 54cfb797..ad1b1d2d 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,7 +51,9 @@ public class GeoParquetGroupRecordConverter extends
RecordMaterializer<GeoParque
}
@Override
- public void end() {}
+ public void end() {
+ // Do nothing
+ }
};
}
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 c20eab16..72eae357 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,24 +503,14 @@ public interface Expressions {
"Unknown expression: " + arrayList.get(0).asText());
};
}
-
}
-
static Expression read(String json) throws IOException {
- 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);
+ return createObjectMapper().readValue(new StringReader(json),
Expression.class);
}
static String write(Expression expression) throws IOException {
- 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);
+ return createObjectMapper().writeValueAsString(expression);
}
static Predicate<Feature> asPredicate(Expression expression) {
@@ -534,8 +524,15 @@ public interface Expressions {
};
}
- public static Module jacksonModule() {
+ static ObjectMapper createObjectMapper() {
+ var mapper = new ObjectMapper();
+ mapper.registerModule(createModule());
+ return mapper;
+ }
+
+ static Module createModule() {
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 d4e4334e..b332357d 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,7 +61,9 @@ public class Database {
@JsonProperty("readOnly")
private Boolean readOnly;
- public Database() {}
+ public Database() {
+ // Default constructor
+ }
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 b0537992..b37abc6c 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,7 +48,9 @@ public class VectorTileDecoder {
/**
* Constructs a new vector tile decoder.
*/
- public VectorTileDecoder() {}
+ public VectorTileDecoder() {
+ // Default constructor
+ }
/**
* Decodes a vector tile.
@@ -208,6 +210,7 @@ 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 e51ab027..8af06bbe 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 c65a8f34..d0b06401 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,8 +123,9 @@ public class VectorTileFunctions {
* @return The clipped geometry
*/
private static Geometry clipToTile(Geometry geometry, int extent, int
buffer) {
- Envelope envelope =
- new Envelope(-buffer, extent + buffer, -buffer, extent + buffer);
+ Envelope envelope = new Envelope(
+ -buffer, (double) extent + buffer,
+ -buffer, (double) 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 5009f64b..73a674f5 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,6 +81,7 @@ 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 a93e9903..1df439ac 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,6 +51,7 @@ 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 ded415dd..d9e84dd5 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,6 +109,7 @@ 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()) {
@@ -147,7 +148,8 @@ 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(goal
* seqInt / tsInt);
+ baseSplitId =
+ lower.get().getSequenceNumber() + (long) Math.ceil((double) (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 facc0138..f2891b27 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 5d767022..a6e1e940 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 b97cd981..001db982 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 affb0514..5bb38642 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 32ccae71..f4e81371 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,6 +87,7 @@ 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 4b9e2ed1..e42b3bda 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,15 +23,19 @@ 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) {
- throw new AssertionError("Expected " + expected + " but was " + actual);
+ throwAssertionError(expected, actual);
}
if (!expected.equalsExact(actual)) {
- throw new AssertionError("Expected " + expected + " but was " + actual);
+ throwAssertionError(expected, actual);
}
}
@@ -40,7 +44,7 @@ public class GeometryAssertions {
return;
}
if (expected == null || actual == null) {
- throw new AssertionError("Expected " + expected + " but was " + actual);
+ throwAssertionError(expected, actual);
}
PrecisionModel precisionModel = new PrecisionModel(tolerance);
GeometryPrecisionReducer reducer = new
GeometryPrecisionReducer(precisionModel);