Author: olamy
Date: Mon Nov 10 15:25:31 2008
New Revision: 712872
URL: http://svn.apache.org/viewvc?rev=712872&view=rev
Log:
[SCM-428] url syntax not good enough for the git scm provider
Now url with the format (<developerConnection>scm:git:[EMAIL
PROTECTED]:olamy/scm-git-test-one-module.git</developerConnection>) is supported
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepository.java
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/test/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepositoryTest.java
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java?rev=712872&r1=712871&r2=712872&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
(original)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
Mon Nov 10 15:25:31 2008
@@ -206,7 +206,8 @@
}
else if ( url.startsWith( GitScmProviderRepository.PROTOCOL_GIT ) )
{
- if ( !url.startsWith( GitScmProviderRepository.PROTOCOL_GIT +
"://" ) )
+ if ( ( !url.startsWith( GitScmProviderRepository.PROTOCOL_GIT +
"://" ) )
+ && ( !url.startsWith( GitScmProviderRepository.PROTOCOL_GIT +
"@" ) ) )
{
result.messages.add( "A git 'git' url must be on the form
'git://'." );
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepository.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepository.java?rev=712872&r1=712871&r2=712872&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepository.java
(original)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepository.java
Mon Nov 10 15:25:31 2008
@@ -191,8 +191,41 @@
if ( indexColon > 0 )
{
- setHost( hostPort.substring( 0, indexColon ) );
- setPort( Integer.parseInt( hostPort.substring( indexColon + 1
) ) );
+ boolean sshGitDev = false;
+ // url = scm:git:[EMAIL
PROTECTED]:22:olamy/scm-git-test-one-module.git
+ if ( hostPort.startsWith( "@" ) )
+ {
+ setHost( hostPort.substring( 1, indexColon ) );
+ }
+ else
+ {
+ setHost( hostPort.substring( 0, indexColon ) );
+ }
+ String port = hostPort.substring( indexColon + 1 );
+
+ if ( port.indexOf( ":" ) > 0 )
+ {
+ port = port.substring( 0, port.indexOf( ":" ) );
+ sshGitDev = true;
+ }
+
+ // url = scm:git:[EMAIL
PROTECTED]:olamy/scm-git-test-one-module.git -> Nan
+ try
+ {
+ setPort( Integer.parseInt( port ) );
+ }
+ catch ( NumberFormatException e )
+ {
+ if ( !PROTOCOL_GIT.equals( getProtocol() ) )
+ {
+ throw e;
+ }
+ sshGitDev = true;
+ }
+ if (sshGitDev)
+ {
+ this.url = "git" + urlPath;
+ }
}
else
{
Modified:
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/test/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepositoryTest.java
URL:
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/test/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepositoryTest.java?rev=712872&r1=712871&r2=712872&view=diff
==============================================================================
---
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/test/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepositoryTest.java
(original)
+++
maven/scm/trunk/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/test/java/org/apache/maven/scm/provider/git/repository/GitScmProviderRepositoryTest.java
Mon Nov 10 15:25:31 2008
@@ -125,7 +125,39 @@
testUrl( "scm:git:git://gitrepos.apache.org",
"git://gitrepos.apache.org", null, null,
"gitrepos.apache.org" );
}
+
+ public void testGitDevURL()
+ throws Exception, ScmRepositoryException
+ {
+ try
+ {
+ testUrl( "scm:git:[EMAIL
PROTECTED]:olamy/scm-git-test-one-module.git",
+ "[EMAIL PROTECTED]:olamy/scm-git-test-one-module.git",
null, null, "github.com" );
+ }
+ catch ( ScmRepositoryException e )
+ {
+ fail( e.getValidationMessages().toString() );
+ throw new Exception( e.getMessage(), e );
+ }
+ }
+
+ public void testGitDevURLWIthPort()
+ throws Exception, ScmRepositoryException
+ {
+ try
+ {
+ testUrl( "scm:git:[EMAIL
PROTECTED]:222:olamy/scm-git-test-one-module.git",
+ "[EMAIL
PROTECTED]:222:olamy/scm-git-test-one-module.git", null, "github.com", 222 );
+ }
+ catch ( ScmRepositoryException e )
+ {
+ fail( e.getValidationMessages().toString() );
+ throw new Exception( e.getMessage(), e );
+ }
+ }
+
+
public void testLegalGitPortUrl()
throws Exception
{
@@ -160,9 +192,9 @@
//
// ----------------------------------------------------------------------
- private void testUrl( String scmUrl, String expectedUrl, String
expectedUser, String expectedPassword,
- String expectedHost )
- throws Exception
+ private GitScmProviderRepository testUrl( String scmUrl, String
expectedUrl, String expectedUser,
+ String expectedPassword, String
expectedHost )
+ throws Exception, ScmRepositoryException
{
ScmRepository repository = scmManager.makeScmRepository( scmUrl );
@@ -170,8 +202,8 @@
assertNotNull( "The provider repository was null.",
repository.getProviderRepository() );
- assertTrue( "The SCM Repository isn't a " +
GitScmProviderRepository.class.getName() + ".",
- repository.getProviderRepository() instanceof
GitScmProviderRepository );
+ assertTrue( "The SCM Repository isn't a " +
GitScmProviderRepository.class.getName() + ".", repository
+ .getProviderRepository() instanceof GitScmProviderRepository );
GitScmProviderRepository providerRepository =
(GitScmProviderRepository) repository.getProviderRepository();
@@ -183,8 +215,9 @@
assertEquals( "Password is incorrect", expectedPassword,
providerRepository.getPassword() );
- assertEquals( "Host is incorrect", expectedHost,
- ( (GitScmProviderRepository)
repository.getProviderRepository() ).getHost() );
+ assertEquals( "Host is incorrect", expectedHost,
providerRepository.getHost() );
+
+ return providerRepository;
}
private void testUrl( String scmUrl, String expectedUrl, String
expectedUser, String expectedHost,