From db42d835cfd8377eacfc69ae88c83b5634e101cb Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 24 Jun 2012 16:00:46 +0200 Subject: [PATCH] fix mercurial version informations --- .../scm/repository/HgRepositoryHandler.java | 13 +++- .../java/sonia/scm/repository/HgVersion.java | 62 +++++++++++++++++++ .../scm/repository/HgVersionHandler.java | 6 +- 3 files changed, 75 insertions(+), 6 deletions(-) diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java index bba0f0ad76..f883b571af 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java @@ -127,7 +127,8 @@ public class HgRepositoryHandler try { this.jaxbContext = JAXBContext.newInstance(BrowserResult.class, - BlameResult.class, Changeset.class, ChangesetPagingResult.class); + BlameResult.class, Changeset.class, ChangesetPagingResult.class, + HgVersion.class); } catch (JAXBException ex) { @@ -362,15 +363,23 @@ public class HgRepositoryHandler try { - JAXBContext context = JAXBContext.newInstance(HgVersion.class); HgVersion hgVersion = new HgVersionHandler(this, hgContextProvider.get(), baseDirectory).getVersion(); if (hgVersion != null) { + if (logger.isDebugEnabled()) + { + logger.debug("mercurial/python informations: {}", hgVersion); + } + version = MessageFormat.format(version, hgVersion.getPython(), hgVersion.getMercurial()); } + else if (logger.isWarnEnabled()) + { + logger.warn("could not retrieve version informations"); + } } catch (Exception ex) { diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgVersion.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgVersion.java index 616d2dbab5..78017ada51 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgVersion.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgVersion.java @@ -31,6 +31,10 @@ package sonia.scm.repository; +//~--- non-JDK imports -------------------------------------------------------- + +import com.google.common.base.Objects; + //~--- JDK imports ------------------------------------------------------------ import javax.xml.bind.annotation.XmlAccessType; @@ -46,6 +50,64 @@ import javax.xml.bind.annotation.XmlRootElement; public class HgVersion { + /** + * Method description + * + * + * @param obj + * + * @return + */ + @Override + public boolean equals(Object obj) + { + if (obj == null) + { + return false; + } + + if (getClass() != obj.getClass()) + { + return false; + } + + final HgVersion other = (HgVersion) obj; + + return Objects.equal(mercurial, other.mercurial) + && Objects.equal(python, other.python); + } + + /** + * Method description + * + * + * @return + */ + @Override + public int hashCode() + { + return Objects.hashCode(mercurial, python); + } + + /** + * Method description + * + * + * @return + */ + @Override + public String toString() + { + //J- + return Objects.toStringHelper(this) + .add("mercurial", mercurial) + .add("python", python) + .toString(); + //J+ + } + + //~--- get methods ---------------------------------------------------------- + /** * Method description * diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgVersionHandler.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgVersionHandler.java index 7641b9f112..9291454272 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgVersionHandler.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgVersionHandler.java @@ -36,8 +36,6 @@ package sonia.scm.repository; import java.io.File; import java.io.IOException; -import javax.xml.bind.JAXBContext; - /** * * @author Sebastian Sdorra @@ -54,8 +52,8 @@ public class HgVersionHandler extends AbstractHgHandler * @param context * @param directory */ - public HgVersionHandler(HgRepositoryHandler handler, - HgContext context, File directory) + public HgVersionHandler(HgRepositoryHandler handler, HgContext context, + File directory) { super(handler, context, null, directory); }