Mercurial > hg > mercurial
changeset 382:01f8d8c216b2
Merge branch remote-run/hg-detect-logging
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Wed, 15 Feb 2012 16:31:31 +0400 |
parents | 44a16c27bed6 (current diff) aaa105d2294d (diff) |
children | 852bea9949a8 |
files | |
diffstat | 5 files changed, 42 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgDetector.java Wed Feb 15 15:48:32 2012 +0400 +++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgDetector.java Wed Feb 15 16:31:31 2012 +0400 @@ -5,6 +5,7 @@ import jetbrains.buildServer.agent.AgentLifeCycleListener; import jetbrains.buildServer.agent.BuildAgent; import jetbrains.buildServer.agent.BuildAgentConfiguration; +import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.ParseHgVersionException; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.VersionCommand; import jetbrains.buildServer.util.EventDispatcher; import jetbrains.buildServer.vcs.VcsException; @@ -72,18 +73,33 @@ if (isCompatible(version)) { return true; } else { - if (logWarnings) - LOG.warn("Mercurial version at path " + hgPath + " is " + version + ", required version is " + LEAST_SUPPORTED_VERSION + "+"); + warn("Mercurial version at path " + hgPath + " is " + version + ", required version is " + LEAST_SUPPORTED_VERSION + "+", logWarnings); return false; } + } catch (ParseHgVersionException e) { + warn("Cannot parse version of mercurial at '" + hgPath + "'", e, logWarnings); + return false; } catch (VcsException e) { - if (logWarnings) - LOG.warn("Error while trying to get hg version, hg path " + hgPath + ", error: " + e.getMessage()); + warn("Error while trying to get hg version, hg path: " + hgPath, e, logWarnings); return false; } } + private void warn(@NotNull final String msg, final boolean logWarnings) { + if (logWarnings) + LOG.warn(msg); + else if (LOG.isDebugEnabled()) + LOG.debug(msg); + } + + private void warn(@NotNull final String msg, @NotNull final Throwable t, final boolean logWarnings) { + if (logWarnings) + LOG.warn(msg, t); + else if (LOG.isDebugEnabled()) + LOG.debug(msg, t); + } + private boolean isCompatible(@NotNull final HgVersion version) { return version.isEqualsOrGreaterThan(LEAST_SUPPORTED_VERSION); }
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgVersion.java Wed Feb 15 15:48:32 2012 +0400 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgVersion.java Wed Feb 15 16:31:31 2012 +0400 @@ -1,5 +1,6 @@ package jetbrains.buildServer.buildTriggers.vcs.mercurial; +import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.ParseHgVersionException; import org.jetbrains.annotations.NotNull; /** @@ -21,10 +22,10 @@ } - public static HgVersion parse(@NotNull final String version) { + public static HgVersion parse(@NotNull final String version) throws ParseHgVersionException { Parser p = new Parser(version); if (!p.skipString(PREFIX)) - throw new IllegalArgumentException("Incorrect version format: " + version); + throw new ParseHgVersionException(version); int major = p.readInt(); p.skipString("."); int minor = p.readInt();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/ParseHgVersionException.java Wed Feb 15 16:31:31 2012 +0400 @@ -0,0 +1,15 @@ +package jetbrains.buildServer.buildTriggers.vcs.mercurial.command; + +import jetbrains.buildServer.vcs.VcsException; +import org.jetbrains.annotations.NotNull; + +/** + * @author dmitry.neverov + */ +public class ParseHgVersionException extends VcsException { + + public ParseHgVersionException(@NotNull String version) { + super("Cannot parse version '" + version + "'"); + } + +}
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/VersionCommand.java Wed Feb 15 15:48:32 2012 +0400 +++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/VersionCommand.java Wed Feb 15 16:31:31 2012 +0400 @@ -22,7 +22,7 @@ } - public HgVersion execute() throws VcsException { + public HgVersion execute() throws VcsException, ParseHgVersionException { GeneralCommandLine cli = createCommandLine(); cli.addParameter("version"); cli.addParameter("--quiet");
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgVersionTest.java Wed Feb 15 15:48:32 2012 +0400 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgVersionTest.java Wed Feb 15 16:31:31 2012 +0400 @@ -1,5 +1,6 @@ package jetbrains.buildServer.buildTriggers.vcs.mercurial; +import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.ParseHgVersionException; import junit.framework.TestCase; import org.jetbrains.annotations.NotNull; import org.testng.annotations.Test; @@ -10,14 +11,14 @@ @Test public class HgVersionTest extends TestCase { - public void test_parse() { + public void test_parse() throws ParseHgVersionException { checkParseCorrectly("Mercurial Distributed SCM (version 1.7.1+11-cc4e13c92dfa)", "1.7.1"); checkParseCorrectly("Mercurial Distributed SCM (version 1.7)", "1.7.0"); checkParseCorrectly("Mercurial Distributed SCM (version 1.5.2)", "1.5.2"); } - private void checkParseCorrectly(@NotNull String versionToParse, @NotNull String expected) { + private void checkParseCorrectly(@NotNull String versionToParse, @NotNull String expected) throws ParseHgVersionException { assertEquals(expected, HgVersion.parse(versionToParse).toString()); }