Author: evenisse Date: Wed May 14 13:43:35 2008 New Revision: 656423 URL: http://svn.apache.org/viewvc?rev=656423&view=rev Log: [SCM-314] Fix support of file URL on windows
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepository.java maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepositoryTest.java Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepository.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepository.java?rev=656423&r1=656422&r2=656423&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepository.java (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepository.java Wed May 14 13:43:35 2008 @@ -60,8 +60,15 @@ public String getURI() { - return protocol + ( needsAuthentication() ? addUser() + addPassword() + addAt() : "" ) + addHost() + addPort() + - addPath(); + if ( FILE.equals( protocol ) ) + { + return orgUrl; + } + else + { + return protocol + ( needsAuthentication() ? addUser() + addPassword() + addAt() : "" ) + addHost() + + addPort() + addPath(); + } } /** @@ -72,7 +79,7 @@ String msg = null; - if ( protocol == UNKNOWN ) + if ( UNKNOWN.equals( protocol ) ) { msg = "Unknown protocol (URL should start with something like 'sftp://' or 'file://'"; } @@ -138,7 +145,7 @@ private String parseUrl( String url ) { - if ( protocol == UNKNOWN ) + if ( UNKNOWN.equals( protocol ) ) { return url; } @@ -157,7 +164,7 @@ private String parseHostAndPort( String url ) { - if ( protocol != FILE ) + if ( !FILE.equals( protocol ) ) { String[] split = url.split( ":" ); if ( split.length == 2 ) @@ -216,7 +223,7 @@ private String parsePath( String url ) { - if ( protocol == FILE ) + if ( FILE.equals( protocol ) ) { //Use OS dependent path separator url = StringUtils.replace( url, "/", File.separator ); @@ -231,6 +238,9 @@ } url = tmpFile2.exists() ? url2 : url; + + //Use URL path separator + url = StringUtils.replace( url, File.separator, "/" ); } return url; @@ -268,7 +278,7 @@ private boolean needsAuthentication() { - return protocol == SFTP || protocol == FTP || protocol == HTTPS || protocol == AFTP; + return SFTP.equals( protocol ) || FTP.equals( protocol ) || HTTPS.equals( protocol ) || AFTP.equals( protocol ); } public String toString() Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepositoryTest.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepositoryTest.java?rev=656423&r1=656422&r2=656423&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepositoryTest.java (original) +++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/test/java/org/apache/maven/scm/provider/bazaar/repository/BazaarScmProviderRepositoryTest.java Wed May 14 13:43:35 2008 @@ -38,21 +38,30 @@ //1. Test *nix like paths String url = "file:///home/username/dev/maven"; BazaarScmProviderRepository repo = new BazaarScmProviderRepository( url ); + assertEquals( url, repo.getURI() ); assertNull( repo.validateURI() ); //2. Test windows like paths (with slash) url = "file://C:/Documents and Settings/username/dev/maven"; repo = new BazaarScmProviderRepository( url ); + assertEquals( url, repo.getURI() ); + assertNull( repo.validateURI() ); + + url = "file:///c:/program files/cygwin/tmp/test"; + repo = new BazaarScmProviderRepository( url ); + assertEquals( url, repo.getURI() ); assertNull( repo.validateURI() ); //3. Test windows like paths (with backslash) url = "file://C:\\Documents and Settings\\username\\dev\\maven"; repo = new BazaarScmProviderRepository( url ); + assertEquals( url, repo.getURI() ); assertNull( repo.validateURI() ); //4. Test invalid file url url = "file:/C:\\Documents and Settings\\username\\dev\\maven"; repo = new BazaarScmProviderRepository( url ); + assertEquals( url, repo.getURI() ); assertNotNull( repo.validateURI() ); }