X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.maps.server%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fmaps%2Fserver%2FNodeJS.java;fp=org.simantics.maps.server%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fmaps%2Fserver%2FNodeJS.java;h=82fd4e54dc37555391968c76cdc3ab66bef9e890;hb=fab0b23a6127c7d7081556d59dcf1080d043dd90;hp=5bbb5ec72a19e5d87f0ce5a7cc6f1fa5b99cd4a9;hpb=49c61f355ed55291624a9afb6ece3e1b7a31659e;p=simantics%2Fdistrict.git diff --git a/org.simantics.maps.server/src/org/simantics/district/maps/server/NodeJS.java b/org.simantics.maps.server/src/org/simantics/district/maps/server/NodeJS.java index 5bbb5ec7..82fd4e54 100644 --- a/org.simantics.maps.server/src/org/simantics/district/maps/server/NodeJS.java +++ b/org.simantics.maps.server/src/org/simantics/district/maps/server/NodeJS.java @@ -3,6 +3,7 @@ package org.simantics.district.maps.server; import java.io.IOException; import java.io.OutputStream; import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; @@ -10,14 +11,18 @@ import java.util.List; import java.util.concurrent.TimeoutException; import org.simantics.district.maps.server.utils.EnvUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.zeroturnaround.exec.InvalidExitValueException; import org.zeroturnaround.exec.ProcessExecutor; +import org.zeroturnaround.exec.stream.slf4j.Slf4jInfoOutputStream; import org.zeroturnaround.exec.stream.slf4j.Slf4jStream; public class NodeJS { public static final String NODEJS_VERSION = "v4.8.0"; - + + private static final Logger LOGGER = LoggerFactory.getLogger(NodeJS.class); private static final String NODE = "node"; private static Path nodeJSFolder() throws IOException, URISyntaxException { @@ -49,10 +54,20 @@ public class NodeJS { } public static int npm(OutputStream output, String... args) throws InvalidExitValueException, IOException, InterruptedException, TimeoutException, URISyntaxException { + LOGGER.info("Executing npm with args {}", Arrays.toString(args)); List actualArgs = new ArrayList<>(); actualArgs.add(npmExecutable().toString()); actualArgs.addAll(Arrays.asList(args)); - ProcessExecutor exec = new ProcessExecutor().command(actualArgs).redirectOutput(Slf4jStream.ofCaller().asInfo()).destroyOnExit(); + ProcessExecutor exec = new ProcessExecutor().command(actualArgs).redirectOutput(new Slf4jInfoOutputStream(LOGGER) { + + @Override + protected void processLine(String line) { + // Convert to UTF-8 string + String utf8Line = new String(line.getBytes(), StandardCharsets.UTF_8); + log.info(utf8Line); + } + }).destroyOnExit(); + if (output != null) exec.redirectOutputAlsoTo(output); return exec.execute().getExitValue();