Author: olamy
Date: Wed Jan 26 21:58:39 2011
New Revision: 1063886
URL: http://svn.apache.org/viewvc?rev=1063886&view=rev
Log:
[SCM-601] Implements a mercurial (hg) info command
Added:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoCommand.java
(with props)
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoConsumer.java
(with props)
Modified:
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/info/InfoScmResult.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgScmProvider.java
Modified:
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/info/InfoScmResult.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/info/InfoScmResult.java?rev=1063886&r1=1063885&r2=1063886&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/info/InfoScmResult.java
(original)
+++
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/info/InfoScmResult.java
Wed Jan 26 21:58:39 2011
@@ -50,11 +50,11 @@ public class InfoScmResult
this.infoItems = files;
}
- public InfoScmResult( List<InfoItem> files, ScmResult result )
+ public InfoScmResult( List<InfoItem> infoItems, ScmResult result )
{
super( result );
- this.infoItems = files;
+ this.infoItems = infoItems;
}
public InfoScmResult( ScmResult result )
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgScmProvider.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgScmProvider.java?rev=1063886&r1=1063885&r2=1063886&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgScmProvider.java
(original)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/HgScmProvider.java
Wed Jan 26 21:58:39 2011
@@ -33,6 +33,7 @@ import org.apache.maven.scm.command.chan
import org.apache.maven.scm.command.checkin.CheckInScmResult;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.command.diff.DiffScmResult;
+import org.apache.maven.scm.command.info.InfoScmResult;
import org.apache.maven.scm.command.list.ListScmResult;
import org.apache.maven.scm.command.remove.RemoveScmResult;
import org.apache.maven.scm.command.status.StatusScmResult;
@@ -47,6 +48,7 @@ import org.apache.maven.scm.provider.hg.
import org.apache.maven.scm.provider.hg.command.checkin.HgCheckInCommand;
import org.apache.maven.scm.provider.hg.command.checkout.HgCheckOutCommand;
import org.apache.maven.scm.provider.hg.command.diff.HgDiffCommand;
+import org.apache.maven.scm.provider.hg.command.info.HgInfoCommand;
import org.apache.maven.scm.provider.hg.command.inventory.HgListCommand;
import org.apache.maven.scm.provider.hg.command.remove.HgRemoveCommand;
import org.apache.maven.scm.provider.hg.command.status.HgStatusCommand;
@@ -327,4 +329,17 @@ public class HgScmProvider
return (ListScmResult) hgListCommand.executeCommand( repository,
fileSet, parameters );
}
+
+ /**
+ * @since 1.5
+ * @see
org.apache.maven.scm.provider.AbstractScmProvider#info(org.apache.maven.scm.provider.ScmProviderRepository,
org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+ */
+ @Override
+ public InfoScmResult info( ScmProviderRepository repository, ScmFileSet
fileSet, CommandParameters parameters )
+ throws ScmException
+ {
+ HgInfoCommand infoCommand = new HgInfoCommand();
+ infoCommand.setLogger( getLogger() );
+ return (InfoScmResult) infoCommand.execute( repository, fileSet,
parameters );
+ }
}
Added:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoCommand.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoCommand.java?rev=1063886&view=auto
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoCommand.java
(added)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoCommand.java
Wed Jan 26 21:58:39 2011
@@ -0,0 +1,34 @@
+package org.apache.maven.scm.provider.hg.command.info;
+
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.AbstractCommand;
+import org.apache.maven.scm.command.Command;
+import org.apache.maven.scm.command.info.InfoScmResult;
+import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.hg.HgUtils;
+import org.apache.maven.scm.provider.hg.command.HgCommandConstants;
+
+/**
+ * @author Olivier Lamy
+ * @since 1.5
+ */
+public class HgInfoCommand
+ extends AbstractCommand
+ implements Command
+{
+
+ @Override
+ protected ScmResult executeCommand( ScmProviderRepository repository,
ScmFileSet fileSet,
+ CommandParameters parameters )
+ throws ScmException
+ {
+ String[] revCmd = new String[]{ HgCommandConstants.REVNO_CMD, "-i" };
+ HgInfoConsumer consumer = new HgInfoConsumer( getLogger() );
+ ScmResult scmResult = HgUtils.execute( consumer, getLogger(),
fileSet.getBasedir(), revCmd );
+ return new InfoScmResult( consumer.getInfoItems(), scmResult );
+ }
+
+}
Propchange:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoCommand.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoCommand.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoConsumer.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoConsumer.java?rev=1063886&view=auto
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoConsumer.java
(added)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoConsumer.java
Wed Jan 26 21:58:39 2011
@@ -0,0 +1,44 @@
+package org.apache.maven.scm.provider.hg.command.info;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.scm.command.info.InfoItem;
+import org.apache.maven.scm.log.ScmLogger;
+import org.apache.maven.scm.provider.hg.command.HgConsumer;
+
+/**
+ * @author Olivier Lamy
+ * @since 1.5
+ *
+ */
+public class HgInfoConsumer
+ extends HgConsumer
+{
+
+ private List<InfoItem> infoItems = new ArrayList<InfoItem>( 1 );
+
+ public HgInfoConsumer(ScmLogger scmLogger)
+ {
+ super(scmLogger);
+ }
+
+
+ /**
+ * @see
org.codehaus.plexus.util.cli.StreamConsumer#consumeLine(java.lang.String)
+ */
+ public void consumeLine( String line )
+ {
+ // hg id -i returns only one line so we are safe
+ InfoItem infoItem = new InfoItem();
+ infoItem.setRevision( line );
+ this.infoItems.add( infoItem );
+ }
+
+
+ public List<InfoItem> getInfoItems()
+ {
+ return infoItems;
+ }
+
+}
Propchange:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoConsumer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/info/HgInfoConsumer.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision