Add templates for ClearCase, Starteam and Perforce for scm-usage page.
git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@378073 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
1 parent
2e3901818a
commit
ab3eda60d2
10 files changed
+382
-31
No files matched your search
@@ -20,6 +20,19 @@ package org.apache.maven.xdoc.util;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import org.apache.maven.scm.manager.NoSuchScmProviderException;
|
||||
import org.apache.maven.scm.manager.ScmManager;
|
||||
import org.apache.maven.scm.provider.clearcase.ClearCaseScmProvider;
|
||||
import org.apache.maven.scm.provider.clearcase.repository.ClearCaseScmProviderRepository;
|
||||
import org.apache.maven.scm.provider.perforce.PerforceScmProvider;
|
||||
import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
|
||||
import org.apache.maven.scm.provider.starteam.StarteamScmProvider;
|
||||
import org.apache.maven.scm.provider.starteam.repository.StarteamScmProviderRepository;
|
||||
import org.apache.maven.scm.repository.ScmRepository;
|
||||
import org.apache.maven.scm.repository.ScmRepositoryException;
|
||||
|
||||
import org.apache.maven.util.EnhancedStringTokenizer;
|
||||
|
||||
/**
|
||||
@@ -118,6 +131,139 @@ public final class ScmUtil
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the documentation to provide an developer access with a <code>Perforce</code> SCM.
|
||||
* For example, generate the following command line:
|
||||
* <p>p4 -H hostname -p port -u username -P password path</p>
|
||||
* <p>p4 -H hostname -p port -u username -P password path submit -c changement</p>
|
||||
*
|
||||
* @param perforceRepo
|
||||
* @see <a href="http://www.perforce.com/perforce/doc.051/manuals/cmdref/index.html">http://www.perforce.com/perforce/doc.051/manuals/cmdref/index.html</>
|
||||
*/
|
||||
public String developerAccessPerforce( String devConnection )
|
||||
{
|
||||
StringBuffer command = new StringBuffer();
|
||||
char delim = getSCMConnectionSeparator( devConnection ).charAt( 0 );
|
||||
|
||||
PerforceScmProvider perforceProvider= new PerforceScmProvider();
|
||||
PerforceScmProviderRepository perforceRepo;
|
||||
|
||||
String scmSpecificUrl = devConnection.substring( 13 );
|
||||
|
||||
try
|
||||
{
|
||||
perforceRepo = (PerforceScmProviderRepository)
|
||||
perforceProvider.makeProviderScmRepository( scmSpecificUrl, delim );
|
||||
}
|
||||
catch (ScmRepositoryException e)
|
||||
{
|
||||
System.err.println( "Your developerConnection does not seem to be valid: " + e.getMessage() );
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
command.append( "p4" );
|
||||
if ( !StringUtils.isEmpty( perforceRepo.getHost() ) )
|
||||
{
|
||||
command.append( " -H " ).append( perforceRepo.getHost() );
|
||||
}
|
||||
if ( perforceRepo.getPort() > 0 )
|
||||
{
|
||||
command.append( " -p " + perforceRepo.getPort() );
|
||||
}
|
||||
command.append( " -u username" );
|
||||
command.append( " -P password" );
|
||||
command.append( " " );
|
||||
command.append( perforceRepo.getPath() );
|
||||
command.append( "\n" );
|
||||
command.append( "p4 submit -c \"A comment\"" );
|
||||
|
||||
return command.toString();
|
||||
}
|
||||
|
||||
// Starteam
|
||||
|
||||
/**
|
||||
* Create the documentation to provide an developer access with a <code>Starteam</code> SCM.
|
||||
* For example, generate the following command line:
|
||||
* <p>stcmd co -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl -is</p>
|
||||
* <p>stcmd ci -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl -f NCI -is</p>
|
||||
*
|
||||
* @param starteamRepo
|
||||
*/
|
||||
public String developerAccessStarteam( String devConnection )
|
||||
{
|
||||
|
||||
StringBuffer command = new StringBuffer();
|
||||
char delim = getSCMConnectionSeparator( devConnection ).charAt( 0 );
|
||||
|
||||
StarteamScmProvider starteamProvider= new StarteamScmProvider();
|
||||
StarteamScmProviderRepository starteamRepo;
|
||||
|
||||
String scmSpecificUrl = devConnection.substring( 13 );
|
||||
|
||||
try
|
||||
{
|
||||
starteamRepo = (StarteamScmProviderRepository)
|
||||
starteamProvider.makeProviderScmRepository( scmSpecificUrl, delim );
|
||||
}
|
||||
catch (ScmRepositoryException e)
|
||||
{
|
||||
System.err.println( "Your developerConnection does not seem to be valid: " + e.getMessage() );
|
||||
return "";
|
||||
}
|
||||
|
||||
// Safety: remove the username/password if present
|
||||
String fullUrl = StringUtils.replace( starteamRepo.getFullUrl(), starteamRepo.getUser(), "username" );
|
||||
fullUrl = StringUtils.replace( fullUrl, starteamRepo.getPassword(), "password" );
|
||||
|
||||
command.append( "stcmd co -x -nologo -stop -p " );
|
||||
command.append( fullUrl );
|
||||
command.append( " -is" );
|
||||
command.append( "\n" );
|
||||
command.append( "stcmd ci -x -nologo -stop -p " );
|
||||
command.append( fullUrl );
|
||||
command.append( " -f NCI -is" );
|
||||
|
||||
return command.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create the documentation to provide an developer access with a <code>Clearcase</code> SCM.
|
||||
* For example, generate the following command line:
|
||||
* <p>cleartool checkout module</p>
|
||||
*
|
||||
* @param clearCaseRepo
|
||||
*/
|
||||
public String developerAccessClearCase( String devConnection )
|
||||
{
|
||||
|
||||
StringBuffer command = new StringBuffer();
|
||||
char delim = getSCMConnectionSeparator( devConnection ).charAt( 0 );
|
||||
|
||||
ClearCaseScmProvider clearCaseProvider= new ClearCaseScmProvider();
|
||||
ClearCaseScmProviderRepository clearCaseRepo;
|
||||
|
||||
String scmSpecificUrl = devConnection.substring( 14 );
|
||||
|
||||
try
|
||||
{
|
||||
clearCaseRepo = (ClearCaseScmProviderRepository)
|
||||
clearCaseProvider.makeProviderScmRepository( scmSpecificUrl, delim );
|
||||
}
|
||||
catch (ScmRepositoryException e)
|
||||
{
|
||||
System.err.println( "Your developerConnection does not seem to be valid: " + e.getMessage() );
|
||||
return "";
|
||||
}
|
||||
|
||||
command.append( "cleartool checkout " ).append( clearCaseRepo.getViewName( "id" ) );
|
||||
|
||||
return command.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Splits an SCM string into parts.
|
||||
*
|
||||
|
||||
Reference in new issue
Block a user