diff --git a/brouter-core/src/main/java/btools/router/RoutingEngine.java b/brouter-core/src/main/java/btools/router/RoutingEngine.java index a3c2d1e..105ed09 100644 --- a/brouter-core/src/main/java/btools/router/RoutingEngine.java +++ b/brouter-core/src/main/java/btools/router/RoutingEngine.java @@ -365,6 +365,10 @@ public class RoutingEngine extends Thread { fw.write(outputMessage); fw.close(); outputMessage = null; + } else { + if (!quite && outputMessage != null) { + System.out.println(outputMessage); + } } long endTime = System.currentTimeMillis(); logInfo("execution time = " + (endTime - startTime) / 1000. + " seconds"); diff --git a/brouter-server/src/main/java/btools/server/BRouter.java b/brouter-server/src/main/java/btools/server/BRouter.java index 3788e51..a6dfe10 100644 --- a/brouter-server/src/main/java/btools/server/BRouter.java +++ b/brouter-server/src/main/java/btools/server/BRouter.java @@ -30,6 +30,10 @@ public class BRouter { List wplist = routingParamCollector.getWayPointList(lonlats); Map params = routingParamCollector.getUrlParams(queryString); + int engineMode = 0; + if (params.containsKey("engineMode")) { + engineMode = Integer.parseInt(params.get("engineMode")); + } routingParamCollector.setParams(rc, wplist, params); String exportName = null; @@ -47,7 +51,7 @@ public class BRouter { maxRunningTime = Integer.parseInt(sMaxRunningTime) * 1000; } - RoutingEngine re = new RoutingEngine(exportName, null, new File(args[0]), wplist, rc); + RoutingEngine re = new RoutingEngine(exportName, null, new File(args[0]), wplist, rc, engineMode); re.doRun(maxRunningTime); if (re.getErrorMessage() != null) { System.out.println(re.getErrorMessage()); diff --git a/brouter-server/src/main/java/btools/server/RouteServer.java b/brouter-server/src/main/java/btools/server/RouteServer.java index bb5e98c..ba421f9 100644 --- a/brouter-server/src/main/java/btools/server/RouteServer.java +++ b/brouter-server/src/main/java/btools/server/RouteServer.java @@ -211,18 +211,29 @@ public class RouteServer extends Thread implements Comparable { } else { OsmTrack track = cr.getFoundTrack(); + if (engineMode == 2) { + // no zip for this engineMode + encodings = null; + } String headers = encodings == null || encodings.indexOf("gzip") < 0 ? null : "Content-Encoding: gzip\n"; writeHttpHeader(bw, handler.getMimeType(), handler.getFileName(), headers, HTTP_STATUS_OK); - if (track != null) { - if (headers != null) { // compressed - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - Writer w = new OutputStreamWriter(new GZIPOutputStream(baos), "UTF-8"); - w.write(handler.formatTrack(track)); - w.close(); - bw.flush(); - clientSocket.getOutputStream().write(baos.toByteArray()); - } else { - bw.write(handler.formatTrack(track)); + if (engineMode == 0) { + if (track != null) { + if (headers != null) { // compressed + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + Writer w = new OutputStreamWriter(new GZIPOutputStream(baos), "UTF-8"); + w.write(handler.formatTrack(track)); + w.close(); + bw.flush(); + clientSocket.getOutputStream().write(baos.toByteArray()); + } else { + bw.write(handler.formatTrack(track)); + } + } + } else if (engineMode == 2) { + String s = cr.getFoundInfo(); + if (s != null) { + bw.write(s); } } }