提交 05dd7f8d 编写于 作者: K kohsuke

integrated Maven console annotation to the native m2 project

git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@34835 71c3de6d-444a-0410-be80-ed276b4c234a
上级 b560509f
......@@ -61,11 +61,11 @@ public class MavenConsoleAnnotator extends LineTransformationOutputStream {
new MavenMojoNote().encodeTo(out);
m = MavenWarningNote.PATTERN.matcher(line);
if (m.matches())
if (m.find())
new MavenWarningNote().encodeTo(out);
m = MavenErrorNote.PATTERN.matcher(line);
if (m.matches())
if (m.find())
new MavenErrorNote().encodeTo(out);
out.write(b,0,len);
......
......@@ -40,9 +40,7 @@ public class MavenErrorNote extends ConsoleNote {
@Override
public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) {
MarkupText.SubText t = text.findToken(Pattern.compile("^[^:]+(?=:)"));
if (t!=null)
t.addMarkup(0,t.length(),"<span class=error-inline>","</span>");
text.addMarkup(0,text.length(),"<span class=error-inline>","</span>");
return null;
}
......
......@@ -45,9 +45,7 @@ public class MavenMojoNote extends ConsoleNote {
@Override
public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) {
MarkupText.SubText t = text.findToken(Pattern.compile("^[^:]+(?=:)"));
if (t!=null)
t.addMarkup(7,t.length(),"<b class=maven-mojo>","</b>");
text.addMarkup(7,text.length(),"<b class=maven-mojo>","</b>");
return null;
}
......@@ -58,5 +56,5 @@ public class MavenMojoNote extends ConsoleNote {
}
}
public static Pattern PATTERN = Pattern.compile("\\[INFO\\] \\[\\w+:\\w+ \\{execution: \\w+\\}\\]");
public static Pattern PATTERN = Pattern.compile("\\[INFO\\] \\[[A-Za-z0-9-_]+:[A-Za-z0-9-_]+ \\{execution: [A-Za-z0-9-_]+\\}\\]");
}
......@@ -42,9 +42,7 @@ public class MavenWarningNote extends ConsoleNote {
@Override
public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) {
MarkupText.SubText t = text.findToken(Pattern.compile("^[^:]+(?=:)"));
if (t!=null)
t.addMarkup(0,t.length(),"<span class=warning-inline>","</span>");
text.addMarkup(0,text.length(),"<span class=warning-inline>","</span>");
return null;
}
......
......@@ -50,6 +50,7 @@ import hudson.remoting.SocketInputStream;
import hudson.remoting.SocketOutputStream;
import hudson.remoting.Which;
import hudson.tasks.Maven.MavenInstallation;
import hudson.tasks._maven.MavenConsoleAnnotator;
import hudson.util.ArgumentListBuilder;
import hudson.util.IOException2;
......@@ -64,6 +65,8 @@ import java.io.Serializable;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketTimeoutException;
import java.nio.charset.Charset;
import java.nio.charset.UnsupportedCharsetException;
import java.util.Arrays;
import java.util.logging.Logger;
......@@ -139,6 +142,12 @@ final class MavenProcessFactory implements ProcessCache.Factory {
int getPort();
}
private static final class GetCharset implements Callable<String,IOException> {
public String call() throws IOException {
return System.getProperty("file.encoding");
}
}
/**
* Opens a server socket and returns {@link Acceptor} so that
* we can accept a connection later on it.
......@@ -192,10 +201,19 @@ final class MavenProcessFactory implements ProcessCache.Factory {
listener.getLogger().println("Using env variables: "+ envVars);
try {
final Acceptor acceptor = launcher.getChannel().call(new SocketHandler());
Charset charset;
try {
charset = Charset.forName(launcher.getChannel().call(new GetCharset()));
} catch (UnsupportedCharsetException e) {
// choose the bit preserving charset. not entirely sure if iso-8859-1 does that though.
charset = Charset.forName("iso-8859-1");
}
MavenConsoleAnnotator mca = new MavenConsoleAnnotator(out,charset);
final ArgumentListBuilder cmdLine = buildMavenCmdLine(listener,acceptor.getPort());
String[] cmds = cmdLine.toCommandArray();
final Proc proc = launcher.launch().cmds(cmds).envs(envVars).stdout(out).pwd(workDir).start();
final Proc proc = launcher.launch().cmds(cmds).envs(envVars).stdout(mca).pwd(workDir).start();
Connection con;
try {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册