You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ch...@apache.org on 2015/05/07 04:09:13 UTC
[4/4] maven-scm git commit: Changed: Added support for multiple
changesets. Changed: Added status calls where necessary to pick up change set
aliases as well as workspace/stream names and aliases. Changed: Added
additional StatusConsumer test cases.
Changed: Added support for multiple changesets.
Changed: Added status calls where necessary to pick up change set
aliases as well as workspace/stream names and aliases.
Changed: Added additional StatusConsumer test cases.
Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/dd3a18d0
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/dd3a18d0
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/dd3a18d0
Branch: refs/heads/master
Commit: dd3a18d055dec414191f5529ac9f5c89f12e83ec
Parents: 9098682
Author: Chris Graham <Ch...@gmail.com>
Authored: Sat May 2 22:49:07 2015 +1000
Committer: Chris Graham <ch...@apache.org>
Committed: Thu May 7 12:04:23 2015 +1000
----------------------------------------------------------------------
.../scm/provider/jazz/JazzScmProvider.java | 18 ++-
.../provider/jazz/command/JazzConstants.java | 9 ++
.../provider/jazz/command/JazzScmCommand.java | 11 +-
.../command/checkin/JazzCheckInCommand.java | 45 +++++---
.../jazz/command/list/JazzListCommand.java | 7 +-
.../jazz/command/status/JazzStatusConsumer.java | 23 ++--
.../repository/JazzScmProviderRepository.java | 20 ++--
.../jazz/command/JazzScmCommandTest.java | 28 ++++-
.../command/checkin/JazzCheckInCommandTest.java | 5 +-
.../jazz/command/list/JazzListCommandTest.java | 2 +-
.../command/status/JazzStatusCommandTest.java | 111 ++++++++++++++++++-
11 files changed, 232 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProvider.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProvider.java b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProvider.java
index f454845..9f62779 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProvider.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/JazzScmProvider.java
@@ -112,7 +112,7 @@ public class JazzScmProvider
// Called from:
// AbstractScmProvider.makeScmRepository()
// AbstractScmProvider.validateScmUrl()
- getLogger().debug( "JazzScmProvider:makeProviderScmRepository" );
+ getLogger().debug( "JazzScmProvider:makeProviderScmRepository()" );
getLogger().debug( "Provided scm url - " + scmUrl );
getLogger().debug( "Provided delimiter - '" + delimiter + "'" );
@@ -250,6 +250,7 @@ public class JazzScmProvider
public AddScmResult add( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:add()" );
JazzAddCommand command = new JazzAddCommand();
command.setLogger( getLogger() );
return (AddScmResult) command.execute( repository, fileSet, parameters );
@@ -262,6 +263,7 @@ public class JazzScmProvider
CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:branch()" );
JazzBranchCommand command = new JazzBranchCommand();
command.setLogger( getLogger() );
return (BranchScmResult) command.execute( repository, fileSet, parameters );
@@ -273,6 +275,7 @@ public class JazzScmProvider
protected BlameScmResult blame( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:blame()" );
JazzBlameCommand command = new JazzBlameCommand();
command.setLogger( getLogger() );
return (BlameScmResult) command.execute( repository, fileSet, parameters );
@@ -285,6 +288,7 @@ public class JazzScmProvider
CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:changelog()" );
// We need to call the status command first, so that we can get the details of the workspace.
// This is needed for the list changesets command.
// We could also 'trust' the value in the pom.
@@ -304,6 +308,7 @@ public class JazzScmProvider
CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:checkin()" );
JazzCheckInCommand command = new JazzCheckInCommand();
command.setLogger( getLogger() );
return (CheckInScmResult) command.execute( repository, fileSet, parameters );
@@ -316,6 +321,7 @@ public class JazzScmProvider
CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:checkout()" );
JazzCheckOutCommand command = new JazzCheckOutCommand();
command.setLogger( getLogger() );
return (CheckOutScmResult) command.execute( repository, fileSet, parameters );
@@ -327,6 +333,7 @@ public class JazzScmProvider
protected DiffScmResult diff( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:diff()" );
JazzDiffCommand command = new JazzDiffCommand();
command.setLogger( getLogger() );
return (DiffScmResult) command.execute( repository, fileSet, parameters );
@@ -338,6 +345,7 @@ public class JazzScmProvider
protected EditScmResult edit( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:edit()" );
JazzEditCommand command = new JazzEditCommand();
command.setLogger( getLogger() );
return (EditScmResult) command.execute( repository, fileSet, parameters );
@@ -350,6 +358,7 @@ public class JazzScmProvider
CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:export()" );
// Use checkout instead
return super.export( repository, fileSet, parameters );
}
@@ -360,8 +369,9 @@ public class JazzScmProvider
protected ListScmResult list( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:list()" );
// We need to call the status command first, so that we can get the details of the stream etc.
- // This is needed for workspace deliveries and snapshot promotions.
+ // This is needed for workspace and component names.
JazzStatusCommand statusCommand = new JazzStatusCommand();
statusCommand.setLogger( getLogger() );
statusCommand.execute( repository, fileSet, parameters );
@@ -378,6 +388,7 @@ public class JazzScmProvider
CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:status()" );
JazzStatusCommand command = new JazzStatusCommand();
command.setLogger( getLogger() );
return (StatusScmResult) command.execute( repository, fileSet, parameters );
@@ -389,6 +400,7 @@ public class JazzScmProvider
protected TagScmResult tag( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:tag()" );
// We need to call the status command first, so that we can get the details of the stream etc.
// This is needed for workspace deliveries and snapshot promotions.
JazzStatusCommand statusCommand = new JazzStatusCommand();
@@ -407,6 +419,7 @@ public class JazzScmProvider
CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:update()" );
JazzUpdateCommand command = new JazzUpdateCommand();
command.setLogger( getLogger() );
return (UpdateScmResult) command.execute( repository, fileSet, parameters );
@@ -419,6 +432,7 @@ public class JazzScmProvider
CommandParameters parameters )
throws ScmException
{
+ getLogger().debug( "JazzScmProvider:unedit()" );
JazzUnEditCommand command = new JazzUnEditCommand();
command.setLogger( getLogger() );
return (UnEditScmResult) command.execute( repository, fileSet, parameters );
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzConstants.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzConstants.java b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzConstants.java
index 9e0b2ec..f0ba1b4 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzConstants.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzConstants.java
@@ -272,4 +272,13 @@ public class JazzConstants
*/
public static final String ARG_WORKSPACE = "--workspace";
+ /**
+ * Depth of files returned (used with "list remotefiles" command).
+ */
+ public static final String ARG_DEPTH = "--depth";
+
+ /**
+ * Depth is either numeric or '-' for all'.
+ */
+ public static final String ARG_DEPTH_INFINTE = "-";
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommand.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommand.java b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommand.java
index 4adf121..57bb3ba 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommand.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommand.java
@@ -248,7 +248,14 @@ public class JazzScmCommand
}
else
{
- afterPassword = "\"";
+ if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
+ {
+ afterPassword = "\"";
+ }
+ else
+ {
+ afterPassword = "";
+ }
}
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
{
@@ -256,7 +263,7 @@ public class JazzScmCommand
}
else
{
- clString = beforePassword + "'*****'";
+ clString = beforePassword + "'*****'" + afterPassword;
}
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommand.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommand.java b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommand.java
index 8d35734..07eb26f 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommand.java
@@ -34,6 +34,7 @@ import org.apache.maven.scm.provider.jazz.command.JazzScmCommand;
import org.apache.maven.scm.provider.jazz.command.add.JazzAddCommand;
import org.apache.maven.scm.provider.jazz.command.consumer.DebugLoggerConsumer;
import org.apache.maven.scm.provider.jazz.command.consumer.ErrorConsumer;
+import org.apache.maven.scm.provider.jazz.command.status.JazzStatusCommand;
import org.apache.maven.scm.provider.jazz.repository.JazzScmProviderRepository;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.StreamConsumer;
@@ -115,21 +116,39 @@ public class JazzCheckInCommand
errConsumer.getOutput(), false );
}
- // Check to see if we've had a workItem defined (via -DworkItem=XXXX)
+ // As we just created a change set, we now need to call the status command so we can parse the
+ // newly created change set.
+
+ JazzStatusCommand statusCommand = new JazzStatusCommand();
+ statusCommand.setLogger( getLogger() );
+ statusCommand.executeStatusCommand( repository, fileSet );
+
+ // NOTE: For isPushChangesAndHaveFlowTargets() to work, a scm status call must have been called first!!!
+ // As the Workspace name and alias, and the Flow Target name and alias are needed.
+
+ // Check to see if we've got a flow target and had a workItem defined (via -DworkItem=XXXX)
JazzScmProviderRepository jazzRepo = (JazzScmProviderRepository) repository;
if ( jazzRepo.isPushChangesAndHaveFlowTargets() && StringUtils.isNotEmpty( jazzRepo.getWorkItem() ) )
{
- // Associate a work item if we need too.
- JazzScmCommand changesetAssociateCmd = createChangesetAssociateCommand( repository );
- outputConsumer = new DebugLoggerConsumer( getLogger() );
- errConsumer = new ErrorConsumer( getLogger() );
-
- status = changesetAssociateCmd.execute( outputConsumer, errConsumer );
- if ( status != 0 || errConsumer.hasBeenFed() )
+ List<Integer> changeSetAliases = jazzRepo.getChangeSetAliases();
+ if ( changeSetAliases != null && !changeSetAliases.isEmpty() )
{
- return new CheckInScmResult( changesetAssociateCmd.getCommandString(),
- "Error code for Jazz SCM changeset associate command - " + status,
- errConsumer.getOutput(), false );
+ for ( Integer changeSetAlias : changeSetAliases )
+ {
+ // Associate a work item if we need too.
+ JazzScmCommand changesetAssociateCmd = createChangesetAssociateCommand( repository,
+ changeSetAlias );
+ outputConsumer = new DebugLoggerConsumer( getLogger() );
+ errConsumer = new ErrorConsumer( getLogger() );
+
+ status = changesetAssociateCmd.execute( outputConsumer, errConsumer );
+ if ( status != 0 || errConsumer.hasBeenFed() )
+ {
+ return new CheckInScmResult( changesetAssociateCmd.getCommandString(),
+ "Error code for Jazz SCM changeset associate command - " + status,
+ errConsumer.getOutput(), false );
+ }
+ }
}
}
@@ -179,14 +198,14 @@ public class JazzCheckInCommand
return command;
}
- public JazzScmCommand createChangesetAssociateCommand( ScmProviderRepository repo )
+ public JazzScmCommand createChangesetAssociateCommand( ScmProviderRepository repo, Integer changeSetAlias )
{
JazzScmCommand command =
new JazzScmCommand( JazzConstants.CMD_CHANGESET, JazzConstants.CMD_SUB_ASSOCIATE, repo, false, null,
getLogger() );
// Add the change set alias
JazzScmProviderRepository jazzRepo = (JazzScmProviderRepository) repo;
- command.addArgument( "" + jazzRepo.getChangeSetAlias() );
+ command.addArgument( changeSetAlias.toString() );
// Add the work item number
command.addArgument( jazzRepo.getWorkItem() );
return command;
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommand.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommand.java b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommand.java
index 0a91fdc..09042f5 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommand.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommand.java
@@ -77,10 +77,15 @@ public class JazzListCommand
public JazzScmCommand createListCommand( JazzScmProviderRepository repo, ScmFileSet fileSet, boolean recursive,
ScmVersion version )
{
- // recursive is implicit in the command, so it is ignored.
+ // recursive is implicit in the command, so it is ignored. NOTE: V4 appears to have changed this.
// version is meaningless, so it is ignored.
JazzScmCommand command =
new JazzScmCommand( JazzConstants.CMD_LIST, JazzConstants.CMD_SUB_REMOTEFILES, repo, fileSet, getLogger() );
+ if ( recursive )
+ {
+ command.addArgument( JazzConstants.ARG_DEPTH );
+ command.addArgument( JazzConstants.ARG_DEPTH_INFINTE );
+ }
command.addArgument( repo.getRepositoryWorkspace() );
command.addArgument( repo.getComponent() );
return command;
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusConsumer.java b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusConsumer.java
index 0ac426f..19eba7a 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusConsumer.java
@@ -402,22 +402,13 @@ public class JazzStatusConsumer
getLogger().debug( "Successfully parsed post \"Change sets:\" line:" );
getLogger().debug( " changeSetAlias = " + changeSetAlias );
}
- jazzRepository.setChangeSetAlias( changeSetAlias );
- // This is a difficult one. Do I now turn it off or not?
- seenChangeSets = false;
- // For the moment I am going too.
- // If we ever need to support multiple outgoing changesets,
- // and I can not see how that makes sense in a maven sense,
- // then we can revisit using a list.
- // Also, turning if off means that we only look at the first
- // (and hopefully only!) one.
- // It also means that if we run across some Incoming: changes,
- // then we will not pick them up accidently either.
- //
- // Another way around this would to be to have a specific
- // consumer for the create changeset command itself.
- // That way we would be totally assured that we've picked
- // up the right Changet Set Alias.
+ // We are now supporting multiple change sets, as this allows
+ // us to cater for multiple changeset caused by previous failed
+ // release attempts.
+ // Our starting point should always be a clean slate of a workspace
+ // or sandbox, however, if something fails, then we will have some
+ // changesets already created, so we need to be able to deal with them effectively.
+ jazzRepository.getChangeSetAliases().add( new Integer( changeSetAlias ) );
}
}
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepository.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepository.java b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepository.java
index 20d8208..f1ee5c5 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepository.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/main/java/org/apache/maven/scm/provider/jazz/repository/JazzScmProviderRepository.java
@@ -19,6 +19,9 @@ package org.apache.maven.scm.provider.jazz.repository;
* under the License.
*/
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.maven.scm.provider.ScmProviderRepositoryWithHost;
import org.codehaus.plexus.util.StringUtils;
@@ -86,7 +89,7 @@ public class JazzScmProviderRepository
/**
* The alias of the change set, as returned from the "scm status" command.
*/
- private int fChangeSetAlias;
+ private List<Integer> fChangeSetAliases = new ArrayList<Integer>();
// TODO In the future we might expand the details of this repository.
// For example we might extend the scm url to include a stream (as well as the repository workspace)
@@ -249,21 +252,21 @@ public class JazzScmProviderRepository
}
/**
- * @return The alias of the changeset, as returned from the "scm status" command.
+ * @return The List<Integer> of aliases of the changesets, as returned from the "scm status" command.
*/
- public int getChangeSetAlias()
+ public List<Integer> getChangeSetAliases()
{
- return fChangeSetAlias;
+ return fChangeSetAliases;
}
/**
- * @param fChangeSetAlias the fChangeSetAlias to set
+ * @param ChangeSetAliases the List of Integers of change set aliases to set
*/
- public void setChangeSetAlias( int fChangeSetAlias )
+ public void setChangeSetAliases( List<Integer> changeSetAliases )
{
- this.fChangeSetAlias = fChangeSetAlias;
+ this.fChangeSetAliases = changeSetAliases;
}
-
+
/**
* {@inheritDoc}
*/
@@ -271,4 +274,5 @@ public class JazzScmProviderRepository
{
return getRepositoryURI() + ":" + getRepositoryWorkspace();
}
+
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommandTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommandTest.java b/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommandTest.java
index 8cfcb60..421a065 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommandTest.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/JazzScmCommandTest.java
@@ -36,12 +36,25 @@ public class JazzScmCommandTest
}
public void testJazzScmCommand()
+ throws Exception
+ {
+ ScmFileSet scmFileSet = new ScmFileSet( getWorkingCopy() );
+ JazzScmCommand listCommand = new JazzScmCommand( "list", getScmProviderRepository(), scmFileSet, null );
+ String expected =
+ "scm list --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword";
+
+ assertCommandLine( expected, getWorkingDirectory(), listCommand.getCommandline() );
+
+ }
+
+ public void testJazzScmCommandWithExtraArg()
throws Exception
{
ScmFileSet scmFileSet = new ScmFileSet( getWorkingCopy() );
JazzScmCommand listCommand = new JazzScmCommand( "list", getScmProviderRepository(), scmFileSet, null );
+ listCommand.addArgument( "ExtraArg" );
String expected =
- "scm list --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword";
+ "scm list --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword ExtraArg";
assertCommandLine( expected, getWorkingDirectory(), listCommand.getCommandline() );
@@ -58,4 +71,17 @@ public class JazzScmCommandTest
assertEquals( "cryptPassword failed!", expected, actual );
}
+
+ public void testCryptPasswordWithExtraArg()
+ throws Exception
+ {
+ JazzScmCommand listCommand = new JazzScmCommand( "list", getScmProviderRepository(), null, null );
+ listCommand.addArgument( "ExtraArg" );
+ String actual = JazzScmCommand.cryptPassword( listCommand.getCommandline() );
+ String expected = Os.isFamily( Os.FAMILY_WINDOWS )
+ ? "cmd.exe /X /C \"scm list --repository-uri https://localhost:9443/jazz --username myUserName --password ***** ExtraArg\""
+ : "/bin/sh -c scm list --repository-uri https://localhost:9443/jazz --username myUserName --password '*****' ExtraArg";
+
+ assertEquals( "cryptPassword failed!", expected, actual );
+ }
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java b/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java
index b30bfcf..6611ddf 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/checkin/JazzCheckInCommandTest.java
@@ -1,5 +1,7 @@
package org.apache.maven.scm.provider.jazz.command.checkin;
+import java.awt.List;
+
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.log.DefaultLog;
import org.apache.maven.scm.provider.jazz.JazzScmTestCase;
@@ -61,8 +63,7 @@ public class JazzCheckInCommandTest
JazzScmProviderRepository repo = getScmProviderRepository();
// Populate the values that are normally parsed and set by the StatusConsumer.
repo.setWorkItem( "215762" );
- repo.setChangeSetAlias( 1234 );
- Commandline cmd = new JazzCheckInCommand().createChangesetAssociateCommand( repo ).getCommandline();
+ Commandline cmd = new JazzCheckInCommand().createChangesetAssociateCommand( repo, new Integer(1234) ).getCommandline();
// Because we do not use a ScmFileSet, the working dir is not set, so the test fails.
cmd.setWorkingDirectory( getWorkingDirectory() );
String expected = "scm changeset associate --username myUserName --password myPassword 1234 215762";
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java b/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java
index 8a54ab2..a42ce3e 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/list/JazzListCommandTest.java
@@ -58,7 +58,7 @@ public class JazzListCommandTest
{
Commandline cmd = new JazzListCommand().createListCommand( repo, getScmFileSet(), true, null ).getCommandline();
String expected =
- "scm list remotefiles --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword \"Dave's Repository Workspace\" \"Dave's Component\"";
+ "scm list remotefiles --repository-uri https://localhost:9443/jazz --username myUserName --password myPassword --depth - \"Dave's Repository Workspace\" \"Dave's Component\"";
assertCommandLine( expected, getWorkingDirectory(), cmd );
}
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/dd3a18d0/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java b/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java
index acb862e..ede7e91 100644
--- a/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java
+++ b/maven-scm-providers/maven-scm-provider-jazz/src/test/java/org/apache/maven/scm/provider/jazz/command/status/JazzStatusCommandTest.java
@@ -83,7 +83,9 @@ public class JazzStatusCommandTest
assertEquals( "Flow Target Alias is incorrect!", 1001, repo.getFlowTargetAlias() );
assertEquals( "Component is incorrect!", "SCM Plugins", repo.getComponent() );
assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() );
- assertEquals( "Change Set Alias is incorrect!", 1008, repo.getChangeSetAlias());
+ assertNotNull( repo.getChangeSetAliases() );
+ assertEquals( "Change Set Alias length is incorrect!", 1, repo.getChangeSetAliases().size() );
+ assertEquals( "Change Set Alias is incorrect!", new Integer(1008), repo.getChangeSetAliases().get(0));
// Test the stream parsing and isPushChanges bits.
assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
@@ -171,4 +173,111 @@ public class JazzStatusCommandTest
assertEquals( "Component is incorrect!", "FireDragon", repo.getComponent() );
assertEquals( "Baseline is incorrect!", "Initial Baseline", repo.getBaseline() );
}
+
+ public void testConsumerWithMultipleChangeSets()
+ {
+ statusConsumer.consumeLine( "Workspace: (1000) \"GPDBWorkspace\" <-> (1001) \"GPDBStream\"" );
+ statusConsumer.consumeLine( " Component: (1002) \"GPDB\"" );
+ statusConsumer.consumeLine( " Baseline: (1003) 49 \"GPDB-MAN-1.0.50\"" );
+ statusConsumer.consumeLine( " Unresolved:" );
+ statusConsumer.consumeLine( " a-- /GPDB/GPDBEAR/pom.xml.releaseBackup" );
+ statusConsumer.consumeLine( " a-- /GPDB/GPDBResources/pom.xml.releaseBackup" );
+ statusConsumer.consumeLine( " a-- /GPDB/GPDBWeb/pom.xml.releaseBackup" );
+ statusConsumer.consumeLine( " a-- /GPDB/pom.xml.releaseBackup" );
+ statusConsumer.consumeLine( " Outgoing:" );
+ statusConsumer.consumeLine( " Change sets:" );
+ statusConsumer.consumeLine( " (1012) *--@ \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 09:38 PM" );
+ statusConsumer.consumeLine( " (1011) ---@ \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 09:33 PM" );
+ statusConsumer.consumeLine( " (1010) ---@ \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] prepare release GPDB-1.0.51\" 02-May-2015 09:28 PM" );
+ statusConsumer.consumeLine( " (1009) ---@ \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 08:05 PM" );
+ statusConsumer.consumeLine( " (1008) ---@ \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] prepare release GPDB-1.0.51\" 02-May-2015 08:00 PM" );
+ statusConsumer.consumeLine( " (1007) ---@ \"[maven-release-plugin] rollback the "
+ + "release of GPDB-1.0.51\" 02-May-2015 07:54 PM" );
+ statusConsumer.consumeLine( " (1006) ---@ \"[maven-release-plugin] prepare "
+ + "release GPDB-1.0.51\" 02-May-2015 09:33 PM" );
+
+ // Test the additional collected data, Workspace, Component, Baseline.
+ assertEquals( "Workspace is incorrect!", "GPDBWorkspace", repo.getWorkspace() );
+ assertEquals( "Workspace Alias is incorrect!", 1000, repo.getWorkspaceAlias() );
+ assertEquals( "Flow Target is incorrect!", "GPDBStream", repo.getFlowTarget() );
+ assertEquals( "Flow Target Alias is incorrect!", 1001, repo.getFlowTargetAlias() );
+ assertEquals( "Component is incorrect!", "GPDB", repo.getComponent() );
+ assertEquals( "Baseline is incorrect!", "GPDB-MAN-1.0.50", repo.getBaseline() );
+
+ // Test the stream parsing and isPushChanges bits.
+ assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+ repo.setPushChanges( false );
+ assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+ repo.setPushChanges( true );
+ assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+
+
+ assertNotNull( repo.getChangeSetAliases() );
+ assertEquals( "Change Set Alias length is incorrect!", 7, repo.getChangeSetAliases().size() );
+ assertEquals( "Change Set Alias [0] is incorrect!", new Integer(1012), repo.getChangeSetAliases().get(0));
+ assertEquals( "Change Set Alias [1] is incorrect!", new Integer(1011), repo.getChangeSetAliases().get(1));
+ assertEquals( "Change Set Alias [2] is incorrect!", new Integer(1010), repo.getChangeSetAliases().get(2));
+ assertEquals( "Change Set Alias [3] is incorrect!", new Integer(1009), repo.getChangeSetAliases().get(3));
+ assertEquals( "Change Set Alias [4] is incorrect!", new Integer(1008), repo.getChangeSetAliases().get(4));
+ assertEquals( "Change Set Alias [5] is incorrect!", new Integer(1007), repo.getChangeSetAliases().get(5));
+ assertEquals( "Change Set Alias [6] is incorrect!", new Integer(1006), repo.getChangeSetAliases().get(6));
+ }
+
+ public void testConsumerWithMultipleChangeSetsAndWorkItems()
+ {
+ statusConsumer.consumeLine( "Workspace: (1000) \"GPDBWorkspace\" <-> (1001) \"GPDBStream\"" );
+ statusConsumer.consumeLine( " Component: (1002) \"GPDB\"" );
+ statusConsumer.consumeLine( " Baseline: (1003) 49 \"GPDB-MAN-1.0.50\"" );
+ statusConsumer.consumeLine( " Unresolved:" );
+ statusConsumer.consumeLine( " a-- /GPDB/GPDBEAR/pom.xml.releaseBackup" );
+ statusConsumer.consumeLine( " a-- /GPDB/GPDBResources/pom.xml.releaseBackup" );
+ statusConsumer.consumeLine( " a-- /GPDB/GPDBWeb/pom.xml.releaseBackup" );
+ statusConsumer.consumeLine( " a-- /GPDB/pom.xml.releaseBackup" );
+ statusConsumer.consumeLine( " Outgoing:" );
+ statusConsumer.consumeLine( " Change sets:" );
+ statusConsumer.consumeLine( " (1012) *--@ 62 \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 09:38 PM" );
+ statusConsumer.consumeLine( " (1011) ---@ 62 \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 09:33 PM" );
+ statusConsumer.consumeLine( " (1010) ---@ 62 \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] prepare release GPDB-1.0.51\" 02-May-2015 09:28 PM" );
+ statusConsumer.consumeLine( " (1009) ---@ 62 \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] rollback the release of GPDB-1.0.51\" 02-May-2015 08:05 PM" );
+ statusConsumer.consumeLine( " (1008) ---@ 62 \"Release the next release of GPDB.\" - "
+ + "\"[maven-release-plugin] prepare release GPDB-1.0.51\" 02-May-2015 08:00 PM" );
+ statusConsumer.consumeLine( " (1007) ---@ \"[maven-release-plugin] rollback the "
+ + "release of GPDB-1.0.51\" 02-May-2015 07:54 PM" );
+ statusConsumer.consumeLine( " (1006) ---@ \"[maven-release-plugin] prepare "
+ + "release GPDB-1.0.51\" 02-May-2015 09:33 PM" );
+
+ // Test the additional collected data, Workspace, Component, Baseline.
+ assertEquals( "Workspace is incorrect!", "GPDBWorkspace", repo.getWorkspace() );
+ assertEquals( "Workspace Alias is incorrect!", 1000, repo.getWorkspaceAlias() );
+ assertEquals( "Flow Target is incorrect!", "GPDBStream", repo.getFlowTarget() );
+ assertEquals( "Flow Target Alias is incorrect!", 1001, repo.getFlowTargetAlias() );
+ assertEquals( "Component is incorrect!", "GPDB", repo.getComponent() );
+ assertEquals( "Baseline is incorrect!", "GPDB-MAN-1.0.50", repo.getBaseline() );
+
+ // Test the stream parsing and isPushChanges bits.
+ assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+ repo.setPushChanges( false );
+ assertFalse( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+ repo.setPushChanges( true );
+ assertTrue( "isPushChangesAndHaveFlowTargets is incorrect!", repo.isPushChangesAndHaveFlowTargets() );
+
+ assertNotNull( repo.getChangeSetAliases() );
+ assertEquals( "Change Set Alias length is incorrect!", 7, repo.getChangeSetAliases().size() );
+ assertEquals( "Change Set Alias [0] is incorrect!", new Integer(1012), repo.getChangeSetAliases().get(0));
+ assertEquals( "Change Set Alias [1] is incorrect!", new Integer(1011), repo.getChangeSetAliases().get(1));
+ assertEquals( "Change Set Alias [2] is incorrect!", new Integer(1010), repo.getChangeSetAliases().get(2));
+ assertEquals( "Change Set Alias [3] is incorrect!", new Integer(1009), repo.getChangeSetAliases().get(3));
+ assertEquals( "Change Set Alias [4] is incorrect!", new Integer(1008), repo.getChangeSetAliases().get(4));
+ assertEquals( "Change Set Alias [5] is incorrect!", new Integer(1007), repo.getChangeSetAliases().get(5));
+ assertEquals( "Change Set Alias [6] is incorrect!", new Integer(1006), repo.getChangeSetAliases().get(6));
+ }
}