diff --git a/src/main/java/org/codehaus/mojo/build/CreateMojo.java b/src/main/java/org/codehaus/mojo/build/CreateMojo.java index 5368b48..57a5eaa 100644 --- a/src/main/java/org/codehaus/mojo/build/CreateMojo.java +++ b/src/main/java/org/codehaus/mojo/build/CreateMojo.java @@ -46,6 +46,7 @@ import org.apache.maven.scm.ScmException; import org.apache.maven.scm.ScmFile; import org.apache.maven.scm.ScmFileSet; +import org.apache.maven.scm.ScmResult; import org.apache.maven.scm.command.info.InfoItem; import org.apache.maven.scm.command.info.InfoScmResult; import org.apache.maven.scm.command.status.StatusScmResult; @@ -57,6 +58,8 @@ import org.apache.maven.scm.provider.ScmProvider; import org.apache.maven.scm.provider.git.gitexe.command.branch.GitBranchCommand; import org.apache.maven.scm.provider.git.repository.GitScmProviderRepository; +import org.apache.maven.scm.provider.hg.HgScmProvider; +import org.apache.maven.scm.provider.hg.HgUtils; import org.apache.maven.scm.repository.ScmRepository; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.StringUtils; @@ -567,18 +570,26 @@ public List getStatus() public String getScmBranch() throws MojoExecutionException { - /* git branch can be obtained directly by a command */ try { ScmRepository repository = getScmRepository(); ScmProvider provider = scmManager.getProviderByRepository( repository ); + /* git branch can be obtained directly by a command */ if ( GitScmProviderRepository.PROTOCOL_GIT.equals( provider.getScmType() ) ) { ScmFileSet fileSet = new ScmFileSet( scmDirectory ); return GitBranchCommand.getCurrentBranch( getLogger(), (GitScmProviderRepository) repository.getProviderRepository(), fileSet ); - } + } else if ( provider instanceof HgScmProvider ) { + /* hg branch can be obtained directly by a command */ + HgOutputConsumer consumer = new HgOutputConsumer( getLogger() ); + ScmResult result = HgUtils.execute( consumer, logger, scmDirectory, new String[] { "id", "-b" } ); + checkResult( result ); + if (StringUtils.isNotEmpty(consumer.getOutput())) { + return consumer.getOutput(); + } + } } catch ( ScmException e ) { diff --git a/src/main/java/org/codehaus/mojo/build/CreateTimestampMojo.java b/src/main/java/org/codehaus/mojo/build/CreateTimestampMojo.java index 2184ac9..215b1c0 100644 --- a/src/main/java/org/codehaus/mojo/build/CreateTimestampMojo.java +++ b/src/main/java/org/codehaus/mojo/build/CreateTimestampMojo.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.TimeZone; -import org.apache.commons.lang.StringUtils; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; diff --git a/src/main/java/org/codehaus/mojo/build/HgChangeSetMojo.java b/src/main/java/org/codehaus/mojo/build/HgChangeSetMojo.java index 5b1ff07..2a65954 100644 --- a/src/main/java/org/codehaus/mojo/build/HgChangeSetMojo.java +++ b/src/main/java/org/codehaus/mojo/build/HgChangeSetMojo.java @@ -30,12 +30,9 @@ import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.apache.maven.scm.ScmException; -import org.apache.maven.scm.ScmFileStatus; import org.apache.maven.scm.ScmResult; import org.apache.maven.scm.log.ScmLogDispatcher; -import org.apache.maven.scm.log.ScmLogger; import org.apache.maven.scm.provider.hg.HgUtils; -import org.apache.maven.scm.provider.hg.command.HgConsumer; import org.codehaus.plexus.util.StringUtils; /** @@ -168,25 +165,5 @@ private void setProperty( String property, String value ) } } - private static class HgOutputConsumer - extends HgConsumer - { - - private String output; - - private HgOutputConsumer( ScmLogger logger ) - { - super( logger ); - } - public void doConsume( ScmFileStatus status, String line ) - { - output = line; - } - - private String getOutput() - { - return output; - } - } } diff --git a/src/main/java/org/codehaus/mojo/build/HgOutputConsumer.java b/src/main/java/org/codehaus/mojo/build/HgOutputConsumer.java new file mode 100644 index 0000000..2e8b9fa --- /dev/null +++ b/src/main/java/org/codehaus/mojo/build/HgOutputConsumer.java @@ -0,0 +1,29 @@ +package org.codehaus.mojo.build; + +import org.apache.maven.scm.ScmFileStatus; +import org.apache.maven.scm.log.ScmLogger; +import org.apache.maven.scm.provider.hg.command.HgConsumer; + +class HgOutputConsumer + extends HgConsumer + { + + private String output; + + HgOutputConsumer( ScmLogger logger ) + { + super( logger ); + } + + @Override + public void doConsume( ScmFileStatus status, String line ) + { + output = line; + } + + String getOutput() + { + return output; + } + } +