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>

Reply via email to