This is an automated email from the ASF dual-hosted git repository. bchapuis pushed a commit to branch workflow in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git
commit cb332fc1ca98b5193b36ea4d65c6e866f3ab7700 Author: Bertil Chapuis <[email protected]> AuthorDate: Mon Nov 13 14:46:21 2023 +0100 Improve workflow and replace records by classes --- .../org/apache/baremaps/cli/workflow/Execute.java | 2 +- .../apache/baremaps/workflow/WorkflowExecutor.java | 40 ++++++----- .../tasks/CreateGeocoderOpenStreetMap.java | 33 ++++++++-- .../workflow/tasks/CreateGeonamesIndex.java | 31 ++++++++- .../baremaps/workflow/tasks/CreateIplocIndex.java | 41 ++++++++++-- .../baremaps/workflow/tasks/DecompressBZip2.java | 32 ++++++++- .../baremaps/workflow/tasks/DecompressFile.java | 42 +++++++++++- .../baremaps/workflow/tasks/DownloadUrl.java | 44 ++++++++++++- .../baremaps/workflow/tasks/ExecuteCommand.java | 18 ++++- .../apache/baremaps/workflow/tasks/ExecuteSql.java | 42 +++++++++++- .../baremaps/workflow/tasks/ExecuteSqlScript.java | 35 +++++++++- .../baremaps/workflow/tasks/ExportVectorTiles.java | 68 +++++++++++++++++-- .../workflow/tasks/ImportDaylightFeatures.java | 35 +++++++++- .../workflow/tasks/ImportDaylightTranslations.java | 36 +++++++++- .../baremaps/workflow/tasks/ImportGeoPackage.java | 52 ++++++++++++++- .../baremaps/workflow/tasks/ImportOsmOsc.java | 66 +++++++++++++++++-- .../baremaps/workflow/tasks/ImportOsmPbf.java | 77 ++++++++++++++++++++-- .../baremaps/workflow/tasks/ImportShapefile.java | 52 ++++++++++++++- .../apache/baremaps/workflow/tasks/LogMessage.java | 20 +++++- .../apache/baremaps/workflow/tasks/UngzipFile.java | 30 ++++++++- .../apache/baremaps/workflow/tasks/UnzipFile.java | 34 +++++++++- .../baremaps/workflow/tasks/UpdateOsmDatabase.java | 31 ++++++++- .../org/apache/baremaps/workflow/WorkflowTest.java | 10 +-- 23 files changed, 798 insertions(+), 73 deletions(-) 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 b19c70aa..6e67645e 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 @@ -50,7 +50,7 @@ public class Execute implements Callable<Integer> { var configReader = new ConfigReader(); var workflow = mapper.readValue(configReader.read(file.toAbsolutePath()), Workflow.class); try (var executor = new WorkflowExecutor(workflow)) { - executor.execute().get(); + executor.execute(); } logger.info("Finished executing the workflow {}", file); return 0; 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 43de015c..6d37e270 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 @@ -105,17 +105,21 @@ public class WorkflowExecutor implements AutoCloseable { /** * Executes the workflow. */ - public CompletableFuture<Void> execute() { - // Create futures for each end step - var endSteps = graph.nodes().stream() - .filter(this::isEndStep) - .map(this::getFutureStep) - .toArray(CompletableFuture[]::new); - - // Create a future that logs the stepMeasures when all the futures are completed - var future = CompletableFuture.allOf(endSteps).thenRun(this::logStepMeasures); - - return future; + public void execute() { + try { + // Create futures for each end step + var endSteps = graph.nodes().stream() + .filter(this::isEndStep) + .map(this::getStep) + .toArray(CompletableFuture[]::new); + + // Wait for all the end steps to complete + CompletableFuture.allOf(endSteps).join(); + logStepMeasures(); + + } catch (Exception e) { + logger.error("Error while executing the workflow", e); + } } /** @@ -125,8 +129,8 @@ public class WorkflowExecutor implements AutoCloseable { * @param step the step id * @return the future step */ - private CompletableFuture<Void> getFutureStep(String step) { - return futures.computeIfAbsent(step, this::createFutureStep); + private CompletableFuture<Void> getStep(String step) { + return futures.computeIfAbsent(step, this::createStep); } /** @@ -135,10 +139,10 @@ public class WorkflowExecutor implements AutoCloseable { * @param stepId the step id * @return the future step */ - private CompletableFuture<Void> createFutureStep(String stepId) { + private CompletableFuture<Void> createStep(String stepId) { // Initialize the future step with the previous future step // as it depends on its completion. - var future = getPreviousFutureStep(stepId); + var future = getPreviousStep(stepId); // Time the execution of the tasks var measures = new ArrayList<TaskMeasure>(); @@ -182,7 +186,7 @@ public class WorkflowExecutor implements AutoCloseable { * @param stepId the step id * @return the future step */ - private CompletableFuture<Void> getPreviousFutureStep(String stepId) { + private CompletableFuture<Void> getPreviousStep(String stepId) { var predecessors = graph.predecessors(stepId).stream().toList(); // If the step has no predecessor, @@ -194,13 +198,13 @@ public class WorkflowExecutor implements AutoCloseable { // If the step has one predecessor, // return the future step associated to it. if (predecessors.size() == 1) { - return getFutureStep(predecessors.get(0)); + return getStep(predecessors.get(0)); } // If the step has multiple predecessors, // return a future step that completes when all the predecessors complete. var futurePredecessors = predecessors.stream() - .map(this::getFutureStep) + .map(this::getStep) .toArray(CompletableFuture[]::new); return CompletableFuture.allOf(futurePredecessors); } diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeocoderOpenStreetMap.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeocoderOpenStreetMap.java index 055ed5cb..41f72d65 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeocoderOpenStreetMap.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeocoderOpenStreetMap.java @@ -48,15 +48,40 @@ import org.slf4j.LoggerFactory; /** * Experimental feature. - * + * * @see org.apache.baremaps.geocoderosm */ -public record CreateGeocoderOpenStreetMap(Path file, Path indexDirectory) - implements - Task { +public class CreateGeocoderOpenStreetMap implements Task { private static final Logger logger = LoggerFactory.getLogger(CreateGeocoderOpenStreetMap.class); + private Path file; + + private Path indexDirectory; + + public CreateGeocoderOpenStreetMap() {} + + public CreateGeocoderOpenStreetMap(Path file, Path indexDirectory) { + this.file = file; + this.indexDirectory = indexDirectory; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public Path getIndexDirectory() { + return indexDirectory; + } + + public void setIndexDirectory(Path indexDirectory) { + this.indexDirectory = indexDirectory; + } + @Override public void execute(WorkflowContext context) throws Exception { diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java index 79ed1158..3c4d974d 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java @@ -35,10 +35,39 @@ import org.slf4j.LoggerFactory; /** * A task that creates a geonames index. */ -public record CreateGeonamesIndex(Path dataFile, Path indexDirectory) implements Task { +public class CreateGeonamesIndex implements Task { private static final Logger logger = LoggerFactory.getLogger(CreateGeonamesIndex.class); + private Path dataFile; + + private Path indexDirectory; + + public CreateGeonamesIndex() { + + } + + public CreateGeonamesIndex(Path dataFile, Path indexDirectory) { + this.dataFile = dataFile; + this.indexDirectory = indexDirectory; + } + + public Path getDataFile() { + return dataFile; + } + + public void setDataFile(Path dataFile) { + this.dataFile = dataFile; + } + + public Path getIndexDirectory() { + return indexDirectory; + } + + public void setIndexDirectory(Path indexDirectory) { + this.indexDirectory = indexDirectory; + } + @Override public void execute(WorkflowContext context) throws Exception { var directory = MMapDirectory.open(indexDirectory); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java index bfbd5d9b..9ae4fe6f 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java @@ -36,13 +36,46 @@ import org.slf4j.LoggerFactory; import org.sqlite.SQLiteConfig; import org.sqlite.SQLiteDataSource; -public record CreateIplocIndex( - Path geonamesIndexPath, - List<Path> nicPaths, - Path targetIplocIndexPath) implements Task { +public class CreateIplocIndex implements Task { private static final Logger logger = LoggerFactory.getLogger(CreateIplocIndex.class); + private Path geonamesIndexPath; + private List<Path> nicPaths; + private Path targetIplocIndexPath; + + public CreateIplocIndex() {} + + public CreateIplocIndex(Path geonamesIndexPath, List<Path> nicPaths, Path targetIplocIndexPath) { + this.geonamesIndexPath = geonamesIndexPath; + this.nicPaths = nicPaths; + this.targetIplocIndexPath = targetIplocIndexPath; + } + + public Path getGeonamesIndexPath() { + return geonamesIndexPath; + } + + public void setGeonamesIndexPath(Path geonamesIndexPath) { + this.geonamesIndexPath = geonamesIndexPath; + } + + public List<Path> getNicPaths() { + return nicPaths; + } + + public void setNicPaths(List<Path> nicPaths) { + this.nicPaths = nicPaths; + } + + public Path getTargetIplocIndexPath() { + return targetIplocIndexPath; + } + + public void setTargetIplocIndexPath(Path targetIplocIndexPath) { + this.targetIplocIndexPath = targetIplocIndexPath; + } + @Override public void execute(WorkflowContext context) throws Exception { try (var directory = MMapDirectory.open(geonamesIndexPath); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressBZip2.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressBZip2.java index 9ed96630..9217f077 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressBZip2.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressBZip2.java @@ -25,8 +25,38 @@ import org.apache.baremaps.workflow.Task; import org.apache.baremaps.workflow.WorkflowContext; import org.apache.baremaps.workflow.WorkflowException; import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -public record DecompressBZip2(Path source, Path target) implements Task { +public class DecompressBZip2 implements Task { + + private static final Logger logger = LoggerFactory.getLogger(DecompressBZip2.class); + + private Path source; + private Path target; + + public DecompressBZip2() {} + + public DecompressBZip2(Path source, Path target) { + this.source = source; + this.target = target; + } + + public Path getSource() { + return source; + } + + public void setSource(Path source) { + this.source = source; + } + + public Path getTarget() { + return target; + } + + public void setTarget(Path target) { + this.target = target; + } @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 4aa1bb38..2551389a 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 @@ -32,7 +32,9 @@ import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record DecompressFile(Path source, Path target, Compression compression) implements Task { +public class DecompressFile implements Task { + + private static final Logger logger = LoggerFactory.getLogger(DecompressFile.class); public enum Compression { zip, @@ -42,7 +44,43 @@ public record DecompressFile(Path source, Path target, Compression compression) bzip2; } - private static final Logger logger = LoggerFactory.getLogger(UngzipFile.class); + private Path source; + + private Path target; + + private Compression compression; + + public DecompressFile() {} + + public DecompressFile(Path source, Path target, Compression compression) { + this.source = source; + this.target = target; + this.compression = compression; + } + + public Path getSource() { + return source; + } + + public void setSource(Path source) { + this.source = source; + } + + public Path getTarget() { + return target; + } + + public void setTarget(Path target) { + this.target = target; + } + + public Compression getCompression() { + return compression; + } + + public void setCompression(Compression compression) { + this.compression = compression; + } @Override public void execute(WorkflowContext context) throws Exception { 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 c6362ea5..1955fbfb 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 @@ -29,17 +29,57 @@ import org.apache.baremaps.workflow.WorkflowContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record DownloadUrl(String url, Path path, boolean replaceExisting) implements Task { +public class DownloadUrl implements Task { + + private static final Logger logger = LoggerFactory.getLogger(DownloadUrl.class); private static final String PROTOCOL_FTP = "ftp"; + private static final String PROTOCOL_HTTP = "http"; + private static final String PROTOCOL_HTTPS = "https"; + private String url; + + private Path path; + + private Boolean replaceExisting; + + public DownloadUrl() {} + public DownloadUrl(String url, Path path) { this(url, path, false); } - private static final Logger logger = LoggerFactory.getLogger(DownloadUrl.class); + public DownloadUrl(String url, Path path, boolean replaceExisting) { + this.url = url; + this.path = path; + this.replaceExisting = replaceExisting; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public Path getPath() { + return path; + } + + public void setPath(Path path) { + this.path = path; + } + + public Boolean getReplaceExisting() { + return replaceExisting; + } + + public void setReplaceExisting(Boolean replaceExisting) { + this.replaceExisting = replaceExisting; + } @Override public void execute(WorkflowContext context) throws Exception { diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteCommand.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteCommand.java index 4cb4218b..4c21502c 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteCommand.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteCommand.java @@ -22,10 +22,26 @@ import org.apache.baremaps.workflow.WorkflowContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record ExecuteCommand(String command) implements Task { +public class ExecuteCommand implements Task { private static final Logger logger = LoggerFactory.getLogger(ExecuteCommand.class); + private String command; + + public ExecuteCommand() {} + + public ExecuteCommand(String command) { + this.command = command; + } + + public String getCommand() { + return command; + } + + public void setCommand(String command) { + this.command = command; + } + @Override public void execute(WorkflowContext context) throws Exception { new ProcessBuilder().command("/bin/sh", "-c", command).start().waitFor(); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java index 25058c8d..12c35844 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java @@ -29,10 +29,50 @@ import org.apache.baremaps.workflow.WorkflowException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record ExecuteSql(Object database, Path file, boolean parallel) implements Task { +public class ExecuteSql implements Task { private static final Logger logger = LoggerFactory.getLogger(ExecuteSql.class); + private Object database; + + private Path file; + + private boolean parallel; + + public ExecuteSql() { + + } + + public ExecuteSql(Object database, Path file, boolean parallel) { + this.database = database; + this.file = file; + this.parallel = parallel; + } + + public Object getDatabase() { + return database; + } + + public void setDatabase(Object database) { + this.database = database; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public boolean isParallel() { + return parallel; + } + + public void setParallel(boolean parallel) { + this.parallel = parallel; + } + @Override public void execute(WorkflowContext context) throws Exception { var script = clean(Files.readString(file)); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScript.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScript.java index 50341a47..432d9ef9 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScript.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScript.java @@ -23,8 +23,41 @@ import java.sql.SQLException; import org.apache.baremaps.workflow.Task; import org.apache.baremaps.workflow.WorkflowContext; import org.apache.baremaps.workflow.WorkflowException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -public record ExecuteSqlScript(Object database, Path file) implements Task { +public class ExecuteSqlScript implements Task { + + private static final Logger logger = LoggerFactory.getLogger(ExecuteSqlScript.class); + + private Object database; + + private Path file; + + public ExecuteSqlScript() { + + } + + public ExecuteSqlScript(Object database, Path file) { + this.database = database; + this.file = file; + } + + public Object getDatabase() { + return database; + } + + public void setDatabase(Object database) { + this.database = database; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } @Override public void execute(WorkflowContext context) throws Exception { 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 3f5e1854..8437acbf 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 @@ -43,19 +43,73 @@ import org.locationtech.jts.geom.Envelope; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record ExportVectorTiles( - Path tileset, - Path repository, - int batchArraySize, - int batchArrayIndex, - Format format) implements Task { +public class ExportVectorTiles implements Task { + + private static final Logger logger = LoggerFactory.getLogger(ExportVectorTiles.class); public enum Format { file, mbtiles } - private static final Logger logger = LoggerFactory.getLogger(ExportVectorTiles.class); + private Path tileset; + private Path repository; + private Integer batchArraySize; + private Integer batchArrayIndex; + private Format format; + + public ExportVectorTiles() { + + } + + public ExportVectorTiles(Path tileset, Path repository, Integer batchArraySize, + Integer batchArrayIndex, Format format) { + this.tileset = tileset; + this.repository = repository; + this.batchArraySize = batchArraySize; + this.batchArrayIndex = batchArrayIndex; + this.format = format; + } + + public Path getTileset() { + return tileset; + } + + public void setTileset(Path tileset) { + this.tileset = tileset; + } + + public Path getRepository() { + return repository; + } + + public void setRepository(Path repository) { + this.repository = repository; + } + + public Integer getBatchArraySize() { + return batchArraySize; + } + + public void setBatchArraySize(Integer batchArraySize) { + this.batchArraySize = batchArraySize; + } + + public Integer getBatchArrayIndex() { + return batchArrayIndex; + } + + public void setBatchArrayIndex(Integer batchArrayIndex) { + this.batchArrayIndex = batchArrayIndex; + } + + public Format getFormat() { + return format; + } + + public void setFormat(Format format) { + this.format = format; + } @Override public void execute(WorkflowContext context) throws Exception { diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportDaylightFeatures.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportDaylightFeatures.java index 8422d8fc..495d15c3 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportDaylightFeatures.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportDaylightFeatures.java @@ -28,8 +28,12 @@ import org.apache.baremaps.openstreetmap.postgres.PostgresRelationRepository; import org.apache.baremaps.openstreetmap.postgres.PostgresWayRepository; import org.apache.baremaps.workflow.Task; import org.apache.baremaps.workflow.WorkflowContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -public record ImportDaylightFeatures(Path file, Object database) implements Task { +public class ImportDaylightFeatures implements Task { + + private static final Logger logger = LoggerFactory.getLogger(ImportDaylightFeatures.class); record Feature( @JsonProperty("osm_type") String type, @@ -39,6 +43,35 @@ public record ImportDaylightFeatures(Path file, Object database) implements Task @JsonProperty("category") String category) { } + private Path file; + + private Object database; + + public ImportDaylightFeatures() { + + } + + public ImportDaylightFeatures(Path file, Object database) { + this.file = file; + this.database = database; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public Object getDatabase() { + return database; + } + + public void setDatabase(Object database) { + this.database = database; + } + @Override public void execute(WorkflowContext context) throws Exception { var datasource = context.getDataSource(database); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportDaylightTranslations.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportDaylightTranslations.java index c5e9d86a..63b4a013 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportDaylightTranslations.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportDaylightTranslations.java @@ -26,8 +26,12 @@ import org.apache.baremaps.openstreetmap.postgres.PostgresRelationRepository; import org.apache.baremaps.openstreetmap.postgres.PostgresWayRepository; import org.apache.baremaps.workflow.Task; import org.apache.baremaps.workflow.WorkflowContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -public record ImportDaylightTranslations(Path file, Object database) implements Task { +public class ImportDaylightTranslations implements Task { + + private static final Logger logger = LoggerFactory.getLogger(ImportDaylightTranslations.class); record Group(String type, Long id, String name) { @@ -50,6 +54,36 @@ public record ImportDaylightTranslations(Path file, Object database) implements } } + + private Path file; + + private Object database; + + public ImportDaylightTranslations() { + + } + + public ImportDaylightTranslations(Path file, Object database) { + this.file = file; + this.database = database; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public Object getDatabase() { + return database; + } + + public void setDatabase(Object database) { + this.database = database; + } + @Override public void execute(WorkflowContext context) throws Exception { var datasource = context.getDataSource(database); 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 a8a6b52c..47713383 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 @@ -29,12 +29,58 @@ import org.apache.baremaps.workflow.WorkflowException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record ImportGeoPackage(Path file, Object database, Integer sourceSRID, Integer targetSRID) - implements - Task { +public class ImportGeoPackage implements Task { private static final Logger logger = LoggerFactory.getLogger(ImportGeoPackage.class); + private Path file; + private Object database; + private Integer sourceSRID; + private Integer targetSRID; + + public ImportGeoPackage() { + + } + + public ImportGeoPackage(Path file, Object database, Integer sourceSRID, Integer targetSRID) { + this.file = file; + this.database = database; + this.sourceSRID = sourceSRID; + this.targetSRID = targetSRID; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public Object getDatabase() { + return database; + } + + public void setDatabase(Object database) { + this.database = database; + } + + public Integer getSourceSRID() { + return sourceSRID; + } + + public void setSourceSRID(Integer sourceSRID) { + this.sourceSRID = sourceSRID; + } + + public Integer getTargetSRID() { + return targetSRID; + } + + public void setTargetSRID(Integer targetSRID) { + this.targetSRID = targetSRID; + } + @Override public void execute(WorkflowContext context) throws Exception { var path = file.toAbsolutePath(); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOsmOsc.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOsmOsc.java index 84eef9ee..a13f7c38 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOsmOsc.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOsmOsc.java @@ -41,15 +41,69 @@ import org.locationtech.jts.geom.Coordinate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record ImportOsmOsc( - Path file, - Path cache, - Object database, - Integer srid, - Compression compression) implements Task { +public class ImportOsmOsc implements Task { private static final Logger logger = LoggerFactory.getLogger(ImportOsmOsc.class); + private Path file; + private Path cache; + private Object database; + private Integer srid; + private Compression compression; + + public ImportOsmOsc() { + + } + + public ImportOsmOsc(Path file, Path cache, Object database, Integer srid, + Compression compression) { + this.file = file; + this.cache = cache; + this.database = database; + this.srid = srid; + this.compression = compression; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public Path getCache() { + return cache; + } + + public void setCache(Path cache) { + this.cache = cache; + } + + public Object getDatabase() { + return database; + } + + public void setDatabase(Object database) { + this.database = database; + } + + public Integer getSrid() { + return srid; + } + + public void setSrid(Integer srid) { + this.srid = srid; + } + + public Compression getCompression() { + return compression; + } + + public void setCompression(Compression compression) { + this.compression = compression; + } + @Override public void execute(WorkflowContext context) throws Exception { var datasource = context.getDataSource(database); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOsmPbf.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOsmPbf.java index 499d244f..4cf69326 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOsmPbf.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOsmPbf.java @@ -46,16 +46,79 @@ import org.locationtech.jts.geom.Coordinate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record ImportOsmPbf( - Path file, - Path cache, - Boolean cleanCache, - Object database, - Integer databaseSrid, - Boolean replaceExisting) implements Task { +public class ImportOsmPbf implements Task { private static final Logger logger = LoggerFactory.getLogger(ImportOsmPbf.class); + private Path file; + private Path cache; + private Boolean cleanCache; + private Object database; + private Integer databaseSrid; + private Boolean replaceExisting; + + public ImportOsmPbf() { + + } + + public ImportOsmPbf(Path file, Path cache, Boolean cleanCache, Object database, + Integer databaseSrid, Boolean replaceExisting) { + this.file = file; + this.cache = cache; + this.cleanCache = cleanCache; + this.database = database; + this.databaseSrid = databaseSrid; + this.replaceExisting = replaceExisting; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public Path getCache() { + return cache; + } + + public void setCache(Path cache) { + this.cache = cache; + } + + public Boolean getCleanCache() { + return cleanCache; + } + + public void setCleanCache(Boolean cleanCache) { + this.cleanCache = cleanCache; + } + + public Object getDatabase() { + return database; + } + + public void setDatabase(Object database) { + this.database = database; + } + + public Integer getDatabaseSrid() { + return databaseSrid; + } + + public void setDatabaseSrid(Integer databaseSrid) { + this.databaseSrid = databaseSrid; + } + + public Boolean getReplaceExisting() { + return replaceExisting; + } + + public void setReplaceExisting(Boolean replaceExisting) { + this.replaceExisting = replaceExisting; + } + @Override public void execute(WorkflowContext context) throws Exception { var dataSource = context.getDataSource(database); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportShapefile.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportShapefile.java index b37f56b7..693f9c4c 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportShapefile.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportShapefile.java @@ -29,12 +29,58 @@ import org.apache.baremaps.workflow.WorkflowException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record ImportShapefile(Path file, Object database, Integer sourceSRID, Integer targetSRID) - implements - Task { +public class ImportShapefile implements Task { private static final Logger logger = LoggerFactory.getLogger(ImportShapefile.class); + private Path file; + private Object database; + private Integer sourceSRID; + private Integer targetSRID; + + public ImportShapefile() { + + } + + public ImportShapefile(Path file, Object database, Integer sourceSRID, Integer targetSRID) { + this.file = file; + this.database = database; + this.sourceSRID = sourceSRID; + this.targetSRID = targetSRID; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public Object getDatabase() { + return database; + } + + public void setDatabase(Object database) { + this.database = database; + } + + public Integer getSourceSRID() { + return sourceSRID; + } + + public void setSourceSRID(Integer sourceSRID) { + this.sourceSRID = sourceSRID; + } + + public Integer getTargetSRID() { + return targetSRID; + } + + public void setTargetSRID(Integer targetSRID) { + this.targetSRID = targetSRID; + } + @Override public void execute(WorkflowContext context) throws Exception { var path = file.toAbsolutePath(); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/LogMessage.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/LogMessage.java index a3f6b852..d548dbcd 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/LogMessage.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/LogMessage.java @@ -22,10 +22,28 @@ import org.apache.baremaps.workflow.WorkflowContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record LogMessage(String message) implements Task { +public class LogMessage implements Task { private static final Logger logger = LoggerFactory.getLogger(LogMessage.class); + private String message; + + public LogMessage() { + + } + + public LogMessage(String message) { + this.message = message; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + @Override public void execute(WorkflowContext context) throws Exception { logger.info(message); 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 d55d7662..40935dcf 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 @@ -28,10 +28,38 @@ import org.apache.baremaps.workflow.WorkflowException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record UngzipFile(Path file, Path directory) implements Task { +public class UngzipFile implements Task { private static final Logger logger = LoggerFactory.getLogger(UngzipFile.class); + private Path file; + private Path directory; + + public UngzipFile() { + + } + + public UngzipFile(Path file, Path directory) { + this.file = file; + this.directory = directory; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public Path getDirectory() { + return directory; + } + + public void setDirectory(Path directory) { + this.directory = directory; + } + @Override public void execute(WorkflowContext context) throws Exception { var filePath = file.toAbsolutePath(); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UnzipFile.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UnzipFile.java index dc89d9c5..4e45aafe 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UnzipFile.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UnzipFile.java @@ -22,8 +22,40 @@ import java.nio.file.*; import java.util.zip.ZipFile; import org.apache.baremaps.workflow.Task; import org.apache.baremaps.workflow.WorkflowContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -public record UnzipFile(Path file, Path directory) implements Task { +public class UnzipFile implements Task { + + private static final Logger logger = LoggerFactory.getLogger(UnzipFile.class); + + private Path file; + private Path directory; + + public UnzipFile() { + + } + + public UnzipFile(Path file, Path directory) { + this.file = file; + this.directory = directory; + } + + public Path getFile() { + return file; + } + + public void setFile(Path file) { + this.file = file; + } + + public Path getDirectory() { + return directory; + } + + public void setDirectory(Path directory) { + this.directory = directory; + } @Override public void execute(WorkflowContext context) throws Exception { diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UpdateOsmDatabase.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UpdateOsmDatabase.java index 0b195a27..24f835cc 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UpdateOsmDatabase.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UpdateOsmDatabase.java @@ -49,10 +49,39 @@ import org.locationtech.jts.geom.Coordinate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public record UpdateOsmDatabase(Object database, Integer databaseSrid) implements Task { +public class UpdateOsmDatabase implements Task { private static final Logger logger = LoggerFactory.getLogger(UpdateOsmDatabase.class); + private Object database; + + private Integer databaseSrid; + + public UpdateOsmDatabase() { + + } + + public UpdateOsmDatabase(Object database, Integer databaseSrid) { + this.database = database; + this.databaseSrid = databaseSrid; + } + + public Object getDatabase() { + return database; + } + + public void setDatabase(Object database) { + this.database = database; + } + + public Integer getDatabaseSrid() { + return databaseSrid; + } + + public void setDatabaseSrid(Integer databaseSrid) { + this.databaseSrid = databaseSrid; + } + @Override public void execute(WorkflowContext context) throws Exception { var datasource = context.getDataSource(database); 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 4fb5b32d..d52a27b6 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 @@ -43,7 +43,7 @@ class WorkflowTest extends PostgresContainerTest { new ImportGeoPackage(Paths.get("natural_earth_vector/packages/natural_earth_vector.gpkg"), jdbcUrl(), 4326, 3857))))); - new WorkflowExecutor(workflow).execute().join(); + new WorkflowExecutor(workflow).execute(); } @Test @@ -58,7 +58,7 @@ class WorkflowTest extends PostgresContainerTest { new ImportShapefile(Paths.get("coastlines-split-4326/coastlines-split-4326/lines.shp"), jdbcUrl(), 4326, 3857))))); - new WorkflowExecutor(workflow).execute().join(); + new WorkflowExecutor(workflow).execute(); } @Test @@ -76,7 +76,7 @@ class WorkflowTest extends PostgresContainerTest { "simplified-water-polygons-split-3857/simplified-water-polygons-split-3857/simplified_water_polygons.shp"), "jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps", 3857, 3857))))); - new WorkflowExecutor(workflow).execute().join(); + new WorkflowExecutor(workflow).execute(); } @Test @@ -86,7 +86,7 @@ class WorkflowTest extends PostgresContainerTest { new DownloadUrl("https://naciscdn.org/naturalearth/packages/natural_earth_vector.gpkg.zip", Paths.get("downloads/import_db.gpkg")), new ImportShapefile(Paths.get("downloads/import_db.gpkg"), jdbcUrl(), 4326, 3857))))); - new WorkflowExecutor(workflow).execute().join(); + new WorkflowExecutor(workflow).execute(); } @Test @@ -122,6 +122,6 @@ class WorkflowTest extends PostgresContainerTest { Paths.get( "archives/simplified-water-polygons-split-3857/simplified_water_polygons.shp"), jdbcUrl(), 3857, 3857))))); - new WorkflowExecutor(workflow).execute().join(); + new WorkflowExecutor(workflow).execute(); } }
