You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@baremaps.apache.org by bc...@apache.org on 2023/05/13 12:22:56 UTC

[incubator-baremaps] 01/02: Enable support for ipv6

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

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

commit f4c372cca2095d6f6e9a2acbcaa025df0a54f42d
Author: Bertil Chapuis <bc...@gmail.com>
AuthorDate: Sat May 13 11:09:39 2023 +0200

    Enable support for ipv6
---
 .../org/apache/baremaps/iploc/IpLocMapper.java     | 43 +++++++++-------------
 .../org/apache/baremaps/iploc/IpLocReader.java     |  1 -
 .../org/apache/baremaps/iploc/IpLocRepository.java | 36 +++++++++---------
 .../java/org/apache/baremaps/iploc/NicObject.java  |  4 +-
 .../java/org/apache/baremaps/iploc/NicReader.java  |  5 +--
 .../org/apache/baremaps/iploc/NicSpliterator.java  |  6 +--
 .../java/org/apache/baremaps/iploc/NicUtils.java   |  8 ++--
 .../baremaps/server/BaseUriRequestFilter.java      |  5 +--
 .../org/apache/baremaps/server/CorsFilter.java     |  6 +--
 .../org/apache/baremaps/server/DevResources.java   | 18 ++++-----
 .../apache/baremaps/server/GeocoderResources.java  |  3 +-
 .../org/apache/baremaps/server/IpLocResources.java |  6 ++-
 12 files changed, 66 insertions(+), 75 deletions(-)

diff --git a/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocMapper.java b/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocMapper.java
index 0c1ef10a..43c24074 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocMapper.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocMapper.java
@@ -15,18 +15,14 @@ package org.apache.baremaps.iploc;
 
 import com.google.common.net.InetAddresses;
 import java.io.IOException;
-import java.util.Map;
-import java.util.Objects;
 import java.util.Optional;
 import java.util.function.Function;
-import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import net.ripe.ipresource.IpResourceRange;
 import org.apache.baremaps.geocoder.GeonamesQueryBuilder;
 import org.apache.baremaps.utils.IsoCountriesUtils;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.search.SearcherManager;
-import org.apache.lucene.search.TopDocs;
 import org.locationtech.jts.geom.Coordinate;
 
 /** Generating pairs of IP address ranges and their locations into an SQLite database */
@@ -61,24 +57,24 @@ public class IpLocMapper implements Function<NicObject, Optional<IpLocObject>> {
         return Optional.empty();
       }
 
-      NicAttribute firstAttribute = nicObject.attributes().get(0);
-      if (!Objects.equals(firstAttribute.name(), "inetnum")) {
+      if (!NicUtils.isInetnum(nicObject)) {
         return Optional.empty();
       }
 
-      IpResourceRange ipRange = IpResourceRange.parse(firstAttribute.value());
+      var inetnum = nicObject.attributes().get(0);
+      var ipRange = IpResourceRange.parse(inetnum.value());
       var start = InetAddresses.forString(ipRange.getStart().toString());
       var end = InetAddresses.forString(ipRange.getEnd().toString());
       var inetRange = new InetRange(start, end);
 
-      Map<String, String> attributes = nicObject.toMap();
+      var attributes = nicObject.toMap();
 
       // Use a default name if there is no netname
-      String network = attributes.getOrDefault("netname", "unknown");
+      var network = attributes.getOrDefault("netname", "unknown");
 
       // If there is a geoloc field, we use the latitude and longitude provided
       if (attributes.containsKey("geoloc")) {
-        Optional<Coordinate> location = stringToCoordinate(attributes.get("geoloc"));
+        var location = stringToCoordinate(attributes.get("geoloc"));
         if (location.isPresent()) {
           return Optional.of(new IpLocObject(
               attributes.get("geoloc"),
@@ -91,8 +87,7 @@ public class IpLocMapper implements Function<NicObject, Optional<IpLocObject>> {
 
       // If there is an address we use that address to query the geocoder
       if (attributes.containsKey("address")) {
-        Optional<Coordinate> location =
-            findLocation(attributes.get("address"), attributes.get("country"));
+        var location = findLocation(attributes.get("address"), attributes.get("country"));
         if (location.isPresent()) {
           return Optional.of(new IpLocObject(
               attributes.get("address"),
@@ -105,8 +100,7 @@ public class IpLocMapper implements Function<NicObject, Optional<IpLocObject>> {
 
       // If there is a description we use that description to query the geocoder
       if (attributes.containsKey("descr")) {
-        Optional<Coordinate> location =
-            findLocation(attributes.get("descr"), attributes.get("country"));
+        var location = findLocation(attributes.get("descr"), attributes.get("country"));
         if (location.isPresent()) {
           return Optional.of(new IpLocObject(
               attributes.get("descr"),
@@ -119,8 +113,7 @@ public class IpLocMapper implements Function<NicObject, Optional<IpLocObject>> {
 
       // If there is a name we use that name to query the geocoder
       if (attributes.containsKey("name")) {
-        Optional<Coordinate> location =
-            findLocation(attributes.get("name"), attributes.get("country"));
+        var location = findLocation(attributes.get("name"), attributes.get("country"));
         if (location.isPresent()) {
           return Optional.of(new IpLocObject(attributes.get("name"),
               inetRange,
@@ -133,8 +126,8 @@ public class IpLocMapper implements Function<NicObject, Optional<IpLocObject>> {
       // the iso country map to query the geocoder
       if (attributes.containsKey("country")
           && IsoCountriesUtils.containsCountry(attributes.get("country").toUpperCase())) {
-        String countryUppercase = attributes.get("country").toUpperCase();
-        Optional<Coordinate> location =
+        var countryUppercase = attributes.get("country").toUpperCase();
+        var location =
             findLocation(IsoCountriesUtils.getCountry(countryUppercase), countryUppercase);
         if (location.isPresent()) {
           return Optional.of(new IpLocObject(
@@ -149,7 +142,7 @@ public class IpLocMapper implements Function<NicObject, Optional<IpLocObject>> {
       // If there is a country that did not follow the ISO format we will query using the country
       // has plain text
       if (attributes.containsKey("country")) {
-        Optional<Coordinate> location = findLocation(attributes.get("country"), "");
+        var location = findLocation(attributes.get("country"), "");
         if (location.isPresent()) {
           return Optional.of(new IpLocObject(
               attributes.get("country"),
@@ -182,7 +175,7 @@ public class IpLocMapper implements Function<NicObject, Optional<IpLocObject>> {
     var geonamesQuery =
         new GeonamesQueryBuilder().queryText(searchTerms).countryCode(countryCode).build();
 
-    TopDocs topDocs = indexSearcher.search(geonamesQuery, 1);
+    var topDocs = indexSearcher.search(geonamesQuery, 1);
     if (topDocs.scoreDocs.length == 0) {
       return Optional.empty();
     }
@@ -193,8 +186,8 @@ public class IpLocMapper implements Function<NicObject, Optional<IpLocObject>> {
     }
 
     var document = indexSearcher.doc(scoreDoc.doc);
-    double longitude = document.getField("longitude").numericValue().doubleValue();
-    double latitude = document.getField("latitude").numericValue().doubleValue();
+    var longitude = document.getField("longitude").numericValue().doubleValue();
+    var latitude = document.getField("latitude").numericValue().doubleValue();
 
     return Optional.of(new Coordinate(longitude, latitude));
   }
@@ -207,9 +200,9 @@ public class IpLocMapper implements Function<NicObject, Optional<IpLocObject>> {
    * @return an optional containing the location
    */
   private Optional<Coordinate> stringToCoordinate(String geoloc) {
-    String doubleRegex = "(\\d+\\.\\d+)";
-    Pattern pattern = Pattern.compile("^" + doubleRegex + " " + doubleRegex + "$");
-    Matcher matcher = pattern.matcher(geoloc);
+    var doubleRegex = "(\\d+\\.\\d+)";
+    var pattern = Pattern.compile("^" + doubleRegex + " " + doubleRegex + "$");
+    var matcher = pattern.matcher(geoloc);
     if (matcher.find()) {
       double latitude = Double.parseDouble(matcher.group(1));
       double longitude = Double.parseDouble(matcher.group(2));
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocReader.java b/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocReader.java
index 27075764..e743fc99 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocReader.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocReader.java
@@ -41,7 +41,6 @@ public class IpLocReader {
   public Stream<IpLocObject> read(InputStream inputStream) {
     var nicReader = new NicReader();
     return nicReader.read(inputStream)
-        .filter(NicUtils::isInetnum)
         .map(new IpLocMapper(searcherManager))
         .filter(Optional::isPresent)
         .map(Optional::get);
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocRepository.java b/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocRepository.java
index cff9750d..9f554c90 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocRepository.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/iploc/IpLocRepository.java
@@ -17,8 +17,6 @@ package org.apache.baremaps.iploc;
 import static org.apache.baremaps.iploc.InetAddressUtils.fromByteArray;
 
 import java.net.InetAddress;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
@@ -85,8 +83,8 @@ public final class IpLocRepository {
    * Drops the table.
    */
   public void dropTable() {
-    try (Connection connection = dataSource.getConnection();
-        PreparedStatement statement = connection.prepareStatement(DROP_TABLE)) {
+    try (var connection = dataSource.getConnection();
+        var statement = connection.prepareStatement(DROP_TABLE)) {
       statement.execute();
     } catch (SQLException e) {
       logger.error("Unable to drop inetnum locations table", e);
@@ -97,8 +95,8 @@ public final class IpLocRepository {
    * Creates the table.
    */
   public void createTable() {
-    try (Connection connection = dataSource.getConnection();
-        PreparedStatement statement = connection.prepareStatement(CREATE_TABLE)) {
+    try (var connection = dataSource.getConnection();
+        var statement = connection.prepareStatement(CREATE_TABLE)) {
       statement.execute();
     } catch (SQLException e) {
       logger.error("Unable to create inetnum locations table", e);
@@ -109,8 +107,8 @@ public final class IpLocRepository {
    * Creates the index.
    */
   public void createIndex() {
-    try (Connection connection = dataSource.getConnection();
-        PreparedStatement statement = connection.prepareStatement(CREATE_INDEX)) {
+    try (var connection = dataSource.getConnection();
+        var statement = connection.prepareStatement(CREATE_INDEX)) {
       statement.execute();
     } catch (SQLException e) {
       logger.error("Unable to create inetnum locations index", e);
@@ -123,9 +121,9 @@ public final class IpLocRepository {
    * @return the list of {@code IpLocObject} objects
    */
   public List<IpLocObject> findAll() {
-    List<IpLocObject> results = new ArrayList<>();
-    try (Connection connection = dataSource.getConnection();
-        PreparedStatement statement = connection.prepareStatement(SELECT_ALL_SQL);
+    var results = new ArrayList<IpLocObject>();
+    try (var connection = dataSource.getConnection();
+        var statement = connection.prepareStatement(SELECT_ALL_SQL);
         ResultSet resultSet = statement.executeQuery()) {
       // loop through the result set
       while (resultSet.next()) {
@@ -153,12 +151,12 @@ public final class IpLocRepository {
    * @return the list of {@code IpLocObject} objects
    */
   public List<IpLocObject> findByInetAddress(InetAddress inetAddress) {
-    List<IpLocObject> ipLocObjects = new ArrayList<>();
-    try (Connection connection = dataSource.getConnection();
-        PreparedStatement statement = connection.prepareStatement(SELECT_ALL_BY_IP_SQL)) {
+    var ipLocObjects = new ArrayList<IpLocObject>();
+    try (var connection = dataSource.getConnection();
+        var statement = connection.prepareStatement(SELECT_ALL_BY_IP_SQL)) {
       statement.setBytes(1, inetAddress.getAddress());
       statement.setBytes(2, inetAddress.getAddress());
-      try (ResultSet resultSet = statement.executeQuery();) {
+      try (var resultSet = statement.executeQuery();) {
         while (resultSet.next()) {
           ipLocObjects.add(new IpLocObject(
               resultSet.getString("address"),
@@ -184,8 +182,8 @@ public final class IpLocRepository {
    * @param ipLocObject the {@code IpLocObject} object
    */
   public void save(IpLocObject ipLocObject) {
-    try (Connection connection = dataSource.getConnection();
-        PreparedStatement statement = connection.prepareStatement(INSERT_SQL)) {
+    try (var connection = dataSource.getConnection();
+        var statement = connection.prepareStatement(INSERT_SQL)) {
       statement.setString(1, ipLocObject.address());
       statement.setBytes(2, ipLocObject.inetRange().start().getAddress());
       statement.setBytes(3, ipLocObject.inetRange().end().getAddress());
@@ -205,8 +203,8 @@ public final class IpLocRepository {
    * @param ipLocObjects the list of {@code IpLocObject} objects
    */
   public void save(List<IpLocObject> ipLocObjects) {
-    try (Connection connection = dataSource.getConnection();
-        PreparedStatement statement = connection.prepareStatement(INSERT_SQL);) {
+    try (var connection = dataSource.getConnection();
+        var statement = connection.prepareStatement(INSERT_SQL);) {
       connection.setAutoCommit(false);
       for (IpLocObject ipLocObject : ipLocObjects) {
         statement.setString(1, ipLocObject.address());
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicObject.java b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicObject.java
index 5c75f265..7e430095 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicObject.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicObject.java
@@ -96,7 +96,7 @@ public class NicObject {
    * @return
    */
   public Map<String, String> toMap() {
-    Map<String, String> map = new HashMap<>();
+    var map = new HashMap<String, String>();
     for (NicAttribute attribute : attributes()) {
       map.put(attribute.name(),
           (map.containsKey(attribute.name()) ? map.get(attribute.name()) + ", " : "")
@@ -108,7 +108,7 @@ public class NicObject {
   /** {@inheritDoc} */
   @Override
   public String toString() {
-    StringBuilder stringBuilder = new StringBuilder();
+    var stringBuilder = new StringBuilder();
     for (NicAttribute attribute : attributes()) {
       stringBuilder.append(attribute.name()).append(": ").append(attribute.value()).append("\n");
     }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicReader.java b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicReader.java
index b6cdde1f..08c1d33f 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicReader.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicReader.java
@@ -16,7 +16,6 @@ package org.apache.baremaps.iploc;
 
 import com.google.common.base.Charsets;
 import java.io.*;
-import java.util.Spliterator;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 
@@ -32,8 +31,8 @@ public class NicReader {
    * @return a {@link Stream} of NIC Object
    */
   public Stream<NicObject> read(InputStream inputStream) {
-    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, Charsets.UTF_8));
-    Spliterator<String> spliterator = reader.lines().spliterator();
+    var reader = new BufferedReader(new InputStreamReader(inputStream, Charsets.UTF_8));
+    var spliterator = reader.lines().spliterator();
     return StreamSupport.stream(new NicSpliterator(spliterator), false);
   }
 }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicSpliterator.java b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicSpliterator.java
index 696dffdb..73d93e96 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicSpliterator.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicSpliterator.java
@@ -52,9 +52,9 @@ class NicSpliterator implements Spliterator<NicObject> {
 
   /** {@inheritDoc} */
   public boolean tryAdvance(Consumer<? super NicObject> consumer) {
-    StringBuilder keyBuilder = new StringBuilder();
-    StringBuilder valBuilder = new StringBuilder();
-    List<NicAttribute> attributes = new ArrayList<>();
+    var keyBuilder = new StringBuilder();
+    var valBuilder = new StringBuilder();
+    var attributes = new ArrayList<NicAttribute>();
 
     boolean tryAdvance;
     while ((tryAdvance = lineSpliterator.tryAdvance(this::acceptLine)) && !"".equals(line)) {
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicUtils.java b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicUtils.java
index 55251a55..c2990a81 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicUtils.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/iploc/NicUtils.java
@@ -30,7 +30,7 @@ public class NicUtils {
    * @return
    */
   public static boolean isInetnum(NicObject nicObject) {
-    return "inetnum".equals(nicObject.type());
+    return "inetnum".equals(nicObject.type()) || "inet6num".equals(nicObject.type());
   }
 
   /**
@@ -42,9 +42,9 @@ public class NicUtils {
     if (Files.notExists(path)) {
       Files.createDirectories(path);
     }
-    String fileName = nicObject.type() + "-" + nicObject.id() + ".txt";
-    FileOutputStream fos = new FileOutputStream(path + "/" + fileName);
-    try (DataOutputStream outStream = new DataOutputStream(new BufferedOutputStream(fos))) {
+    var fileName = nicObject.type() + "-" + nicObject.id() + ".txt";
+    var fileOutputStream = new FileOutputStream(path + "/" + fileName);
+    try (var outStream = new DataOutputStream(new BufferedOutputStream(fileOutputStream))) {
       outStream.writeUTF(nicObject.toString());
     }
   }
diff --git a/baremaps-server/src/main/java/org/apache/baremaps/server/BaseUriRequestFilter.java b/baremaps-server/src/main/java/org/apache/baremaps/server/BaseUriRequestFilter.java
index 065c051f..0b32fca5 100644
--- a/baremaps-server/src/main/java/org/apache/baremaps/server/BaseUriRequestFilter.java
+++ b/baremaps-server/src/main/java/org/apache/baremaps/server/BaseUriRequestFilter.java
@@ -18,7 +18,6 @@ import javax.inject.Singleton;
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.container.ContainerRequestFilter;
 import javax.ws.rs.container.PreMatching;
-import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.UriBuilder;
 import javax.ws.rs.ext.Provider;
 
@@ -29,8 +28,8 @@ public class BaseUriRequestFilter implements ContainerRequestFilter {
 
   @Override
   public void filter(ContainerRequestContext requestContext) {
-    UriBuilder baseUri = UriBuilder.fromUri(requestContext.getUriInfo().getBaseUri());
-    MultivaluedMap<String, String> headers = requestContext.getHeaders();
+    var baseUri = UriBuilder.fromUri(requestContext.getUriInfo().getBaseUri());
+    var headers = requestContext.getHeaders();
     if (headers.get("X-Forwarded-Proto") != null) {
       baseUri.scheme(headers.getFirst("X-Forwarded-Proto"));
     }
diff --git a/baremaps-server/src/main/java/org/apache/baremaps/server/CorsFilter.java b/baremaps-server/src/main/java/org/apache/baremaps/server/CorsFilter.java
index 90cdf3ca..7ed43d48 100644
--- a/baremaps-server/src/main/java/org/apache/baremaps/server/CorsFilter.java
+++ b/baremaps-server/src/main/java/org/apache/baremaps/server/CorsFilter.java
@@ -34,7 +34,7 @@ public class CorsFilter implements ContainerRequestFilter, ContainerResponseFilt
 
   @Override
   public void filter(ContainerRequestContext requestContext) {
-    String origin = requestContext.getHeaderString(ORIGIN);
+    var origin = requestContext.getHeaderString(ORIGIN);
     if (origin == null) {
       return;
     }
@@ -46,7 +46,7 @@ public class CorsFilter implements ContainerRequestFilter, ContainerResponseFilt
   @Override
   public void filter(ContainerRequestContext requestContext,
       ContainerResponseContext responseContext) {
-    String origin = requestContext.getHeaderString(ORIGIN);
+    var origin = requestContext.getHeaderString(ORIGIN);
     if (origin == null || requestContext.getMethod().equalsIgnoreCase("OPTIONS")
         || requestContext.getProperty("cors.failure") != null) {
       return;
@@ -64,7 +64,7 @@ public class CorsFilter implements ContainerRequestFilter, ContainerResponseFilt
   protected void preflight(String origin, ContainerRequestContext requestContext) {
     // Respond with a 204 no content since we are returning an empty response with just the header
     // for preflight
-    Response.ResponseBuilder builder = Response.noContent();
+    var builder = Response.noContent();
     builder.header(ACCESS_CONTROL_ALLOW_ORIGIN, origin);
     builder.header(VARY, ORIGIN);
     builder.header(ACCESS_CONTROL_ALLOW_METHODS, "GET, POST, PUT, DELETE, OPTIONS, HEAD");
diff --git a/baremaps-server/src/main/java/org/apache/baremaps/server/DevResources.java b/baremaps-server/src/main/java/org/apache/baremaps/server/DevResources.java
index 204660bf..b103944e 100644
--- a/baremaps-server/src/main/java/org/apache/baremaps/server/DevResources.java
+++ b/baremaps-server/src/main/java/org/apache/baremaps/server/DevResources.java
@@ -19,11 +19,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.ByteBuffer;
 import java.nio.file.Path;
 import java.util.Arrays;
 import java.util.HashSet;
-import java.util.Set;
 import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
@@ -40,7 +38,6 @@ import javax.ws.rs.sse.SseBroadcaster;
 import javax.ws.rs.sse.SseEventSink;
 import org.apache.baremaps.config.ConfigReader;
 import org.apache.baremaps.tilestore.TileCoord;
-import org.apache.baremaps.tilestore.TileStore;
 import org.apache.baremaps.tilestore.postgres.PostgresTileStore;
 import org.apache.baremaps.vectortile.style.Style;
 import org.apache.baremaps.vectortile.tileset.Tileset;
@@ -85,7 +82,7 @@ public class DevResources {
     this.sseEventBuilder = sse.newEventBuilder();
 
     // Observe the file system for changes
-    Set<Path> directories = new HashSet<>(Arrays.asList(tileset.getParent(), style.getParent()));
+    var directories = new HashSet<Path>(Arrays.asList(tileset.getParent(), style.getParent()));
     new Thread(new DirectoryWatcher(directories, this::broadcastChanges)).start();
   }
 
@@ -133,12 +130,15 @@ public class DevResources {
   @javax.ws.rs.Path("/tiles/{z}/{x}/{y}.mvt")
   public Response getTile(@PathParam("z") int z, @PathParam("x") int x, @PathParam("y") int y) {
     try {
-      TileStore tileStore = new PostgresTileStore(dataSource, getTileset());
-      TileCoord tileCoord = new TileCoord(x, y, z);
-      ByteBuffer blob = tileStore.read(tileCoord);
+      var tileStore = new PostgresTileStore(dataSource, getTileset());
+      var tileCoord = new TileCoord(x, y, z);
+      var blob = tileStore.read(tileCoord);
       if (blob != null) {
-        return Response.status(200).header(CONTENT_TYPE, TILE_TYPE)
-            .header(CONTENT_ENCODING, TILE_ENCODING).entity(blob.array()).build();
+        return Response.status(200)
+            .header(CONTENT_TYPE, TILE_TYPE)
+            .header(CONTENT_ENCODING, TILE_ENCODING)
+            .entity(blob.array())
+            .build();
       } else {
         return Response.status(204).build();
       }
diff --git a/baremaps-server/src/main/java/org/apache/baremaps/server/GeocoderResources.java b/baremaps-server/src/main/java/org/apache/baremaps/server/GeocoderResources.java
index bfb5a995..390b115a 100644
--- a/baremaps-server/src/main/java/org/apache/baremaps/server/GeocoderResources.java
+++ b/baremaps-server/src/main/java/org/apache/baremaps/server/GeocoderResources.java
@@ -53,7 +53,8 @@ public class GeocoderResources {
 
   @GET
   @javax.ws.rs.Path("/api/geocoder")
-  public Response getIpToLocation(@QueryParam("queryText") String queryText,
+  public Response getIpToLocation(
+      @QueryParam("queryText") String queryText,
       @QueryParam("countryCode") @DefaultValue("") String countryCode,
       @QueryParam("limit") @DefaultValue("10") int limit) throws IOException {
     if (queryText == null) {
diff --git a/baremaps-server/src/main/java/org/apache/baremaps/server/IpLocResources.java b/baremaps-server/src/main/java/org/apache/baremaps/server/IpLocResources.java
index bebb2c19..6da3e697 100644
--- a/baremaps-server/src/main/java/org/apache/baremaps/server/IpLocResources.java
+++ b/baremaps-server/src/main/java/org/apache/baremaps/server/IpLocResources.java
@@ -64,7 +64,8 @@ public class IpLocResources {
               .orElse(((InetSocketAddress) context.remoteAddress()).getAddress().getHostAddress())
               .toString().split(",")[0].trim());
       return Response.status(200) // lgtm [java/xss]
-          .header(ACCESS_CONTROL_ALLOW_ORIGIN, "*").header(CONTENT_TYPE, APPLICATION_JSON)
+          .header(ACCESS_CONTROL_ALLOW_ORIGIN, "*")
+          .header(CONTENT_TYPE, APPLICATION_JSON)
           .entity(new IP(address.toString())).build();
     } catch (IllegalArgumentException e) {
       logger.error("Error while processing request", e);
@@ -89,7 +90,8 @@ public class IpLocResources {
       List<InetnumLocationDto> inetnumLocationDtos =
           inetnumLocations.stream().map(InetnumLocationDto::new).toList();
       return Response.status(200) // lgtm [java/xss]
-          .header(ACCESS_CONTROL_ALLOW_ORIGIN, "*").header(CONTENT_TYPE, APPLICATION_JSON)
+          .header(ACCESS_CONTROL_ALLOW_ORIGIN, "*")
+          .header(CONTENT_TYPE, APPLICATION_JSON)
           .entity(inetnumLocationDtos).build();
     } catch (IllegalArgumentException e) {
       logger.error("Error while processing request", e);