This is an automated email from the ASF dual-hosted git repository. bchapuis pushed a commit to branch 600-export in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
commit 716004991d4239cd7333d0092fbeae47dc9448df Author: Bertil Chapuis <[email protected]> AuthorDate: Mon Apr 24 15:08:55 2023 +0200 Support js files in export command --- .../main/java/org/apache/baremaps/cli/map/Dev.java | 2 +- .../java/org/apache/baremaps/cli/map/Init.java | 2 +- .../java/org/apache/baremaps/cli/map/Serve.java | 4 +-- .../org/apache/baremaps/cli/ogcapi/OgcApi.java | 2 +- .../org/apache/baremaps/cli/workflow/Execute.java | 4 +-- .../org/apache/baremaps/cli/workflow/Init.java | 2 +- baremaps-core/pom.xml | 4 +++ .../org/apache/baremaps/config/ConfigReader.java | 2 +- .../baremaps/config/DefaultObjectMapper.java | 2 +- .../baremaps/workflow/tasks/DownloadUrl.java | 9 ++++--- .../baremaps/workflow/tasks/ExportVectorTiles.java | 31 +++++++++------------- .../apache/baremaps/workflow/tasks/UngzipFile.java | 8 ++++-- baremaps-server/pom.xml | 5 ---- .../org/apache/baremaps/server/DevResources.java | 1 + .../apache/baremaps/server/ServerResources.java | 1 + pom.xml | 5 ++++ 16 files changed, 45 insertions(+), 39 deletions(-) diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Dev.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Dev.java index d26ca110..573337ce 100644 --- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Dev.java +++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Dev.java @@ -13,7 +13,7 @@ package org.apache.baremaps.cli.map; import static io.servicetalk.data.jackson.jersey.ServiceTalkJacksonSerializerFeature.contextResolverFor; -import static org.apache.baremaps.server.DefaultObjectMapper.defaultObjectMapper; +import static org.apache.baremaps.config.DefaultObjectMapper.defaultObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper; import io.servicetalk.http.netty.HttpServers; diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Init.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Init.java index e4f3efe5..5da6bd23 100644 --- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Init.java +++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Init.java @@ -12,7 +12,7 @@ package org.apache.baremaps.cli.map; -import static org.apache.baremaps.server.DefaultObjectMapper.defaultObjectMapper; +import static org.apache.baremaps.config.DefaultObjectMapper.defaultObjectMapper; import java.nio.file.Files; import java.nio.file.Path; 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 05258f1e..47e40388 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 @@ -13,7 +13,7 @@ package org.apache.baremaps.cli.map; import static io.servicetalk.data.jackson.jersey.ServiceTalkJacksonSerializerFeature.contextResolverFor; -import static org.apache.baremaps.server.DefaultObjectMapper.defaultObjectMapper; +import static org.apache.baremaps.config.DefaultObjectMapper.defaultObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.benmanes.caffeine.cache.CaffeineSpec; @@ -22,12 +22,12 @@ import io.servicetalk.http.router.jersey.HttpJerseyRouterBuilder; import java.nio.file.Path; import java.util.concurrent.Callable; import org.apache.baremaps.cli.Options; +import org.apache.baremaps.config.ConfigReader; import org.apache.baremaps.database.PostgresUtils; import org.apache.baremaps.database.tile.PostgresTileStore; import org.apache.baremaps.database.tile.TileCache; import org.apache.baremaps.database.tile.TileStore; import org.apache.baremaps.mvt.tileset.Tileset; -import org.apache.baremaps.server.ConfigReader; import org.apache.baremaps.server.CorsFilter; import org.apache.baremaps.server.ServerResources; import org.glassfish.hk2.utilities.binding.AbstractBinder; diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/ogcapi/OgcApi.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/ogcapi/OgcApi.java index 94503114..b1a977fa 100644 --- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/ogcapi/OgcApi.java +++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/ogcapi/OgcApi.java @@ -13,7 +13,7 @@ package org.apache.baremaps.cli.ogcapi; import static io.servicetalk.data.jackson.jersey.ServiceTalkJacksonSerializerFeature.contextResolverFor; -import static org.apache.baremaps.server.DefaultObjectMapper.defaultObjectMapper; +import static org.apache.baremaps.config.DefaultObjectMapper.defaultObjectMapper; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/workflow/Execute.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/workflow/Execute.java index d92f7d36..2438ac18 100644 --- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/workflow/Execute.java +++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/workflow/Execute.java @@ -12,12 +12,12 @@ package org.apache.baremaps.cli.workflow; -import static org.apache.baremaps.server.DefaultObjectMapper.defaultObjectMapper; +import static org.apache.baremaps.config.DefaultObjectMapper.defaultObjectMapper; import java.nio.file.Path; import java.util.concurrent.Callable; import org.apache.baremaps.cli.Options; -import org.apache.baremaps.server.ConfigReader; +import org.apache.baremaps.config.ConfigReader; import org.apache.baremaps.workflow.Workflow; import org.apache.baremaps.workflow.WorkflowExecutor; import org.slf4j.Logger; diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/workflow/Init.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/workflow/Init.java index 91e342c0..5bc1a8fa 100644 --- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/workflow/Init.java +++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/workflow/Init.java @@ -12,7 +12,7 @@ package org.apache.baremaps.cli.workflow; -import static org.apache.baremaps.server.DefaultObjectMapper.defaultObjectMapper; +import static org.apache.baremaps.config.DefaultObjectMapper.defaultObjectMapper; import java.nio.file.Files; import java.nio.file.Path; diff --git a/baremaps-core/pom.xml b/baremaps-core/pom.xml index f943524c..2359597c 100644 --- a/baremaps-core/pom.xml +++ b/baremaps-core/pom.xml @@ -101,6 +101,10 @@ <groupId>org.apache.lucene</groupId> <artifactId>lucene-spatial-extras</artifactId> </dependency> + <dependency> + <groupId>org.graalvm.sdk</groupId> + <artifactId>graal-sdk</artifactId> + </dependency> <dependency> <groupId>org.locationtech.jts</groupId> <artifactId>jts-core</artifactId> diff --git a/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java b/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java index 136eff56..8c08a256 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/config/ConfigReader.java @@ -10,7 +10,7 @@ * the License. */ -package org.apache.baremaps.server; +package org.apache.baremaps.config; diff --git a/baremaps-core/src/main/java/org/apache/baremaps/config/DefaultObjectMapper.java b/baremaps-core/src/main/java/org/apache/baremaps/config/DefaultObjectMapper.java index 0ca7d661..9536492e 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/config/DefaultObjectMapper.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/config/DefaultObjectMapper.java @@ -10,7 +10,7 @@ * the License. */ -package org.apache.baremaps.server; +package org.apache.baremaps.config; import com.fasterxml.jackson.annotation.JsonInclude.Include; diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DownloadUrl.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DownloadUrl.java index a495de1f..274d0b08 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DownloadUrl.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DownloadUrl.java @@ -47,13 +47,14 @@ public record DownloadUrl(String url, Path path, boolean replaceExisting) implem } } - var connection = (HttpURLConnection) targetUrl.openConnection(); - connection.setFollowRedirects(true); - connection.setRequestMethod("GET"); - try (var inputStream = connection.getInputStream()) { + var get = (HttpURLConnection) targetUrl.openConnection(); + get.setFollowRedirects(true); + get.setRequestMethod("GET"); + try (var inputStream = get.getInputStream()) { var downloadFile = targetPath.toAbsolutePath(); Files.createDirectories(downloadFile.getParent()); Files.copy(inputStream, targetPath, StandardCopyOption.REPLACE_EXISTING); } + get.disconnect(); } } 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 012fb600..bb9e7ad1 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 @@ -12,18 +12,17 @@ package org.apache.baremaps.workflow.tasks; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.core.JsonGenerator.Feature; +import static org.apache.baremaps.config.DefaultObjectMapper.defaultObjectMapper; + import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; -import java.nio.file.Files; import java.nio.file.Path; import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; import javax.sql.DataSource; +import org.apache.baremaps.config.ConfigReader; import org.apache.baremaps.database.tile.FileTileStore; import org.apache.baremaps.database.tile.MBTiles; import org.apache.baremaps.database.tile.PostgresTileStore; @@ -55,29 +54,25 @@ public record ExportVectorTiles( @Override public void execute(WorkflowContext context) throws Exception { var datasource = context.getDataSource(database); - var mapper = - new ObjectMapper() - .configure(Feature.IGNORE_UNKNOWN, true) - .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) - .setSerializationInclusion(Include.NON_NULL) - .setSerializationInclusion(Include.NON_EMPTY); - var source = mapper.readValue(Files.readAllBytes(tileset), Tileset.class); - var tileSource = sourceTileStore(source, datasource); - var tileTarget = targetTileStore(source); + var configReader = new ConfigReader(); + var objectMapper = defaultObjectMapper(); + var tileset = objectMapper.readValue(configReader.read(this.tileset), Tileset.class); + var sourceTileStore = sourceTileStore(tileset, datasource); + var targetTileStore = targetTileStore(tileset); var envelope = new Envelope( - source.getBounds().get(0), source.getBounds().get(2), - source.getBounds().get(1), source.getBounds().get(3)); + tileset.getBounds().get(0), tileset.getBounds().get(2), + tileset.getBounds().get(1), tileset.getBounds().get(3)); - var count = Tile.count(envelope, source.getMinzoom(), source.getMaxzoom()); + var count = Tile.count(envelope, tileset.getMinzoom(), tileset.getMaxzoom()); var stream = - StreamUtils.stream(Tile.iterator(envelope, source.getMinzoom(), source.getMaxzoom())) + StreamUtils.stream(Tile.iterator(envelope, tileset.getMinzoom(), tileset.getMaxzoom())) .peek(new StreamProgress<>(count, 5000)); - StreamUtils.batch(stream, 10).forEach(new TileChannel(tileSource, tileTarget)); + StreamUtils.batch(stream, 10).forEach(new TileChannel(sourceTileStore, targetTileStore)); } private TileStore sourceTileStore(Tileset tileset, DataSource datasource) { diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UngzipFile.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UngzipFile.java index 38e46f18..086dfb52 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UngzipFile.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UngzipFile.java @@ -32,9 +32,13 @@ public record UngzipFile(Path file, Path directory) implements Task { var filePath = file.toAbsolutePath(); var directoryPath = directory.toAbsolutePath(); try (var zis = new GZIPInputStream(new BufferedInputStream(Files.newInputStream(filePath)))) { - var file = directoryPath.resolve(filePath.getFileName().toString().substring(0, + var decompressed = directoryPath.resolve(filePath.getFileName().toString().substring(0, filePath.getFileName().toString().length() - 3)); - Files.copy(zis, file, StandardCopyOption.REPLACE_EXISTING); + if (!Files.exists(decompressed)) { + Files.createDirectories(decompressed.getParent()); + Files.createFile(decompressed); + } + Files.copy(zis, decompressed, StandardCopyOption.REPLACE_EXISTING); } catch (Exception e) { throw new WorkflowException(e); } diff --git a/baremaps-server/pom.xml b/baremaps-server/pom.xml index 9b946e23..35e609be 100644 --- a/baremaps-server/pom.xml +++ b/baremaps-server/pom.xml @@ -65,11 +65,6 @@ <artifactId>jersey-test-framework-provider-inmemory</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>org.graalvm.sdk</groupId> - <artifactId>graal-sdk</artifactId> - <version>${version.lib.graalvm}</version> - </dependency> </dependencies> </project> 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 b08c6f7e..2a5d4ba2 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 @@ -38,6 +38,7 @@ import javax.ws.rs.sse.OutboundSseEvent; import javax.ws.rs.sse.Sse; import javax.ws.rs.sse.SseBroadcaster; import javax.ws.rs.sse.SseEventSink; +import org.apache.baremaps.config.ConfigReader; import org.apache.baremaps.database.tile.PostgresTileStore; import org.apache.baremaps.database.tile.Tile; import org.apache.baremaps.database.tile.TileStore; diff --git a/baremaps-server/src/main/java/org/apache/baremaps/server/ServerResources.java b/baremaps-server/src/main/java/org/apache/baremaps/server/ServerResources.java index 0300046d..cb7af790 100644 --- a/baremaps-server/src/main/java/org/apache/baremaps/server/ServerResources.java +++ b/baremaps-server/src/main/java/org/apache/baremaps/server/ServerResources.java @@ -29,6 +29,7 @@ import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import org.apache.baremaps.config.ConfigReader; import org.apache.baremaps.database.tile.Tile; import org.apache.baremaps.database.tile.TileStore; import org.apache.baremaps.database.tile.TileStoreException; diff --git a/pom.xml b/pom.xml index b5517bd2..996ea827 100644 --- a/pom.xml +++ b/pom.xml @@ -398,6 +398,11 @@ <artifactId>js-scriptengine</artifactId> <version>${version.lib.graalvm}</version> </dependency> + <dependency> + <groupId>org.graalvm.sdk</groupId> + <artifactId>graal-sdk</artifactId> + <version>${version.lib.graalvm}</version> + </dependency> <dependency> <groupId>org.jdbi</groupId> <artifactId>jdbi3-bom</artifactId>
