X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.maps.server.ui%2Fsrc%2Forg%2Fsimantics%2Fmaps%2Fserver%2Fui%2FTileserverMapnikStartJob.java;h=f6d9b221063a97bd33b5aa94901d5c4e691935f3;hb=4570313c2a06c99dfea43efdb235a093da5b2324;hp=a729bfc135498560ba7b2cc1ad3f65acb7ef561b;hpb=f182477cd4a4b38ed51fd17dc810b8114d0fe6ca;p=simantics%2Fdistrict.git diff --git a/org.simantics.maps.server.ui/src/org/simantics/maps/server/ui/TileserverMapnikStartJob.java b/org.simantics.maps.server.ui/src/org/simantics/maps/server/ui/TileserverMapnikStartJob.java index a729bfc1..f6d9b221 100644 --- a/org.simantics.maps.server.ui/src/org/simantics/maps/server/ui/TileserverMapnikStartJob.java +++ b/org.simantics.maps.server.ui/src/org/simantics/maps/server/ui/TileserverMapnikStartJob.java @@ -1,6 +1,7 @@ package org.simantics.maps.server.ui; import java.util.Optional; +import java.util.function.Consumer; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; @@ -14,24 +15,28 @@ import org.slf4j.LoggerFactory; public class TileserverMapnikStartJob extends Job { private static final Logger LOGGER = LoggerFactory.getLogger(TileserverMapnikStartJob.class); + private Consumer callback; - public TileserverMapnikStartJob() { + public TileserverMapnikStartJob(Consumer callback) { super("Tileserver start job"); + this.callback = callback; } @Override protected IStatus run(IProgressMonitor monitor) { monitor.beginTask("Starting tileserver", 100); + IStatus status = Status.OK_STATUS; try { StartListener startListener = new StartListener(monitor); TileserverMapnikInstance.get().start(Optional.of(startListener)); if (startListener.module != null || startListener.returnValue != 0) - return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Could not install " + String.valueOf(startListener.module) + " with returnValue " + startListener.returnValue); - return Status.OK_STATUS; + status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Could not install " + String.valueOf(startListener.module) + " with returnValue " + startListener.returnValue); } catch (Exception e) { LOGGER.error("Could not start tileserver-mapnik", e); - return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Could not start tileserver-mapnik: " + e.getMessage()); + status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, "Could not start tileserver-mapnik: " + e.getMessage()); } + callback.accept(status); + return status; } private class StartListener implements TileserverStartListener {