You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by da...@apache.org on 2009/01/03 00:35:51 UTC
svn commit: r730869 - in
/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src:
main/java/org/apache/maven/wagon/providers/ssh/knownhost/
test/java/org/apache/maven/wagon/providers/ssh/knownhost/ test/resources/
Author: dantran
Date: Fri Jan 2 15:35:51 2009
New Revision: 730869
URL: http://svn.apache.org/viewvc?rev=730869&view=rev
Log:
WAGON-254: rewritten known_hosts file only if its contents are changed
Added:
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/org/apache/maven/wagon/providers/ssh/knownhost/
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProviderTest.java
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts_same
Modified:
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java
maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java
Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java?rev=730869&r1=730868&r2=730869&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java Fri Jan 2 15:35:51 2009
@@ -20,6 +20,8 @@
*/
import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
/**
* Common base for known hosts providers.
@@ -41,6 +43,8 @@
* the known hosts, in the openssh format
*/
protected String contents;
+
+ protected Set knownHosts = new HashSet();
public void setHostKeyChecking( String hostKeyChecking )
{
@@ -56,14 +60,11 @@
{
return contents;
}
-
- public void setContents( String contents )
- {
- this.contents = contents;
- }
public void storeKnownHosts( String contents )
throws IOException
{
}
+
+
}
Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java?rev=730869&r1=730868&r2=730869&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java Fri Jan 2 15:35:51 2009
@@ -19,13 +19,14 @@
* under the License.
*/
-import org.codehaus.plexus.util.FileUtils;
-
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Set;
+
+import org.codehaus.plexus.util.FileUtils;
/**
* Provides known hosts from a file
@@ -70,10 +71,16 @@
public void storeKnownHosts( String contents )
throws IOException
{
- file.getParentFile().mkdirs();
- FileUtils.fileWrite( file.getAbsolutePath(), contents );
+ Set hosts = this.loadKnownHosts( contents );
+
+ if ( ! this.knownHosts.equals( hosts ) )
+ {
+ file.getParentFile().mkdirs();
+ FileUtils.fileWrite( file.getAbsolutePath(), contents );
+ this.knownHosts = hosts;
+ }
}
-
+
public File getFile()
{
return file;
Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java?rev=730869&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java (added)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java Fri Jan 2 15:35:51 2009
@@ -0,0 +1,97 @@
+package org.apache.maven.wagon.providers.ssh.knownhost;
+
+public class KnownHostEntry
+{
+
+ private String hostName;
+
+ private String keyType;
+
+ private String keyValue;
+
+ public KnownHostEntry()
+ {
+
+ }
+
+ public KnownHostEntry( String hostName, String keyType, String keyValue )
+ {
+ this.hostName = hostName;
+ this.keyType = keyType;
+ this.keyValue = keyValue;
+ }
+
+ public String getHostName()
+ {
+ return hostName;
+ }
+
+ public void setHostName( String hostName )
+ {
+ this.hostName = hostName;
+ }
+
+ public String getKeyType()
+ {
+ return keyType;
+ }
+
+ public void setKeyType( String keyType )
+ {
+ this.keyType = keyType;
+ }
+
+ public String getKeyValue()
+ {
+ return keyValue;
+ }
+
+ public void setKeyValue( String keyValue )
+ {
+ this.keyValue = keyValue;
+ }
+
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ( ( hostName == null ) ? 0 : hostName.hashCode() );
+ result = prime * result + ( ( keyType == null ) ? 0 : keyType.hashCode() );
+ result = prime * result + ( ( keyValue == null ) ? 0 : keyValue.hashCode() );
+ return result;
+ }
+
+ public boolean equals( Object obj )
+ {
+ if ( this == obj )
+ return true;
+ if ( obj == null )
+ return false;
+ if ( getClass() != obj.getClass() )
+ return false;
+ KnownHostEntry other = (KnownHostEntry) obj;
+ if ( hostName == null )
+ {
+ if ( other.hostName != null )
+ return false;
+ }
+ else if ( !hostName.equals( other.hostName ) )
+ return false;
+ if ( keyType == null )
+ {
+ if ( other.keyType != null )
+ return false;
+ }
+ else if ( !keyType.equals( other.keyType ) )
+ return false;
+ if ( keyValue == null )
+ {
+ if ( other.keyValue != null )
+ return false;
+ }
+ else if ( !keyValue.equals( other.keyValue ) )
+ return false;
+ return true;
+ }
+
+}
Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java?rev=730869&r1=730868&r2=730869&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java Fri Jan 2 15:35:51 2009
@@ -19,11 +19,16 @@
* under the License.
*/
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.StringOutputStream;
-
+import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
+import java.io.StringReader;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.StringOutputStream;
+import org.codehaus.plexus.util.StringUtils;
/**
* Provides known hosts from a file
@@ -43,10 +48,38 @@
StringOutputStream stringOutputStream = new StringOutputStream();
IOUtil.copy( stream, stringOutputStream );
this.contents = stringOutputStream.toString();
+
+ this.knownHosts = this.loadKnownHosts( this.contents );
}
finally
{
IOUtil.close( stream );
}
}
+
+ protected Set loadKnownHosts( String contents )
+ throws IOException
+ {
+ Set hosts = new HashSet();
+
+ BufferedReader br = new BufferedReader( new StringReader( contents ) );
+
+ String line = null;
+
+ do
+ {
+ line = br.readLine();
+ if ( line != null )
+ {
+ String tokens[] = StringUtils.split( line );
+ if ( tokens.length == 3 )
+ {
+ hosts.add( new KnownHostEntry( tokens[0], tokens[1], tokens[2] ) );
+ }
+ }
+
+ }while ( line != null );
+
+ return hosts;
+ }
}
Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProviderTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProviderTest.java?rev=730869&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProviderTest.java (added)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProviderTest.java Fri Jan 2 15:35:51 2009
@@ -0,0 +1,57 @@
+package org.apache.maven.wagon.providers.ssh.knownhost;
+
+import java.io.File;
+
+import org.codehaus.plexus.util.FileUtils;
+
+import junit.framework.TestCase;
+
+public class FileKnownHostsProviderTest
+ extends TestCase
+{
+ private File basedir = new File( System.getProperty( "basedir", "." ) );
+
+ private File testKnownHostsFile;
+
+
+ private FileKnownHostsProvider provider;
+
+ public void setUp()
+ throws Exception
+ {
+ File readonlyKnownHostFile = new File( basedir, "src/test/resources/known_hosts" );
+ testKnownHostsFile = new File( basedir, "target/known_hosts" );
+ testKnownHostsFile.delete();
+ FileUtils.copyFile( readonlyKnownHostFile, testKnownHostsFile );
+
+ provider = new FileKnownHostsProvider( testKnownHostsFile );
+
+ }
+
+ public void testStoreKnownHostsNoChange()
+ throws Exception
+ {
+ long timestamp = this.testKnownHostsFile.lastModified();
+ //file with the same contents, but with entries swapped
+ File sameKnownHostFile = new File( basedir, "src/test/resources/known_hosts_same" );
+ String contents = FileUtils.fileRead( sameKnownHostFile );
+
+ Thread.sleep( 50 );
+ provider.storeKnownHosts( contents );
+ assertEquals( "known_hosts file is rewritten", timestamp, testKnownHostsFile.lastModified() );
+ }
+
+ public void testStoreKnownHostsWithChange()
+ throws Exception
+ {
+ long timestamp = this.testKnownHostsFile.lastModified();
+ File sameKnownHostFile = new File( basedir, "src/test/resources/known_hosts_same" );
+ String contents = FileUtils.fileRead( sameKnownHostFile );
+ contents += "1 2 3";
+
+ Thread.sleep( 50 );
+ provider.storeKnownHosts( contents );
+ assertTrue( "known_hosts file is not rewritten", timestamp != testKnownHostsFile.lastModified() );
+ }
+
+}
Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts?rev=730869&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts (added)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts Fri Jan 2 15:35:51 2009
@@ -0,0 +1,2 @@
+server,192.168.0.10 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh+58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw==
+192.168.0.11 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh+58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw==
Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts_same
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts_same?rev=730869&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts_same (added)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts_same Fri Jan 2 15:35:51 2009
@@ -0,0 +1,2 @@
+192.168.0.11 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh+58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw==
+server,192.168.0.10 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh+58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw==
---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-commits-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-commits-help@maven.apache.org
Re: svn commit: r730869 - in
/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src:
main/java/org/apache/maven/wagon/providers/ssh/knownhost/
test/java/org/apache/maven/wagon/providers/ssh/knownhost/ test/resources/
Posted by Dan Tran <da...@gmail.com>.
The build works for me on my host ( windows vista). Let's try a another on
unix at work
what test fail on yours?
-Dan
brettporter wrote:
>
> This seems to have broken the unit tests... are they working for you?
>
> - Brett
>
> On 03/01/2009, at 10:35 AM, dantran@apache.org wrote:
>
>> Author: dantran
>> Date: Fri Jan 2 15:35:51 2009
>> New Revision: 730869
>>
>> URL: http://svn.apache.org/viewvc?rev=730869&view=rev
>> Log:
>> WAGON-254: rewritten known_hosts file only if its contents are changed
>>
>> Added:
>> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java
>> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> FileKnownHostsProviderTest.java
>> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> resources/
>> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> resources/known_hosts
>> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> resources/known_hosts_same
>> Modified:
>> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> AbstractKnownHostsProvider.java
>> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> FileKnownHostsProvider.java
>> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> StreamKnownHostsProvider.java
>>
>> Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/
>> main/java/org/apache/maven/wagon/providers/ssh/knownhost/
>> AbstractKnownHostsProvider.java
>> URL:
>> http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java?rev=730869&r1=730868&r2=730869&view=diff
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> ======================================================================
>> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> AbstractKnownHostsProvider.java (original)
>> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> AbstractKnownHostsProvider.java Fri Jan 2 15:35:51 2009
>> @@ -20,6 +20,8 @@
>> */
>>
>> import java.io.IOException;
>> +import java.util.HashSet;
>> +import java.util.Set;
>>
>> /**
>> * Common base for known hosts providers.
>> @@ -41,6 +43,8 @@
>> * the known hosts, in the openssh format
>> */
>> protected String contents;
>> +
>> + protected Set knownHosts = new HashSet();
>>
>> public void setHostKeyChecking( String hostKeyChecking )
>> {
>> @@ -56,14 +60,11 @@
>> {
>> return contents;
>> }
>> -
>> - public void setContents( String contents )
>> - {
>> - this.contents = contents;
>> - }
>>
>> public void storeKnownHosts( String contents )
>> throws IOException
>> {
>> }
>> +
>> +
>> }
>>
>> Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/
>> main/java/org/apache/maven/wagon/providers/ssh/knownhost/
>> FileKnownHostsProvider.java
>> URL:
>> http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java?rev=730869&r1=730868&r2=730869&view=diff
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> ======================================================================
>> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> FileKnownHostsProvider.java (original)
>> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> FileKnownHostsProvider.java Fri Jan 2 15:35:51 2009
>> @@ -19,13 +19,14 @@
>> * under the License.
>> */
>>
>> -import org.codehaus.plexus.util.FileUtils;
>> -
>> import java.io.ByteArrayInputStream;
>> import java.io.File;
>> import java.io.FileInputStream;
>> import java.io.IOException;
>> import java.io.InputStream;
>> +import java.util.Set;
>> +
>> +import org.codehaus.plexus.util.FileUtils;
>>
>> /**
>> * Provides known hosts from a file
>> @@ -70,10 +71,16 @@
>> public void storeKnownHosts( String contents )
>> throws IOException
>> {
>> - file.getParentFile().mkdirs();
>> - FileUtils.fileWrite( file.getAbsolutePath(), contents );
>> + Set hosts = this.loadKnownHosts( contents );
>> +
>> + if ( ! this.knownHosts.equals( hosts ) )
>> + {
>> + file.getParentFile().mkdirs();
>> + FileUtils.fileWrite( file.getAbsolutePath(), contents );
>> + this.knownHosts = hosts;
>> + }
>> }
>> -
>> +
>> public File getFile()
>> {
>> return file;
>>
>> Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/
>> java/org/apache/maven/wagon/providers/ssh/knownhost/
>> KnownHostEntry.java
>> URL:
>> http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java?rev=730869&view=auto
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> ======================================================================
>> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java
>> (added)
>> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java
>> Fri Jan 2 15:35:51 2009
>> @@ -0,0 +1,97 @@
>> +package org.apache.maven.wagon.providers.ssh.knownhost;
>> +
>> +public class KnownHostEntry
>> +{
>> +
>> + private String hostName;
>> +
>> + private String keyType;
>> +
>> + private String keyValue;
>> +
>> + public KnownHostEntry()
>> + {
>> +
>> + }
>> +
>> + public KnownHostEntry( String hostName, String keyType, String
>> keyValue )
>> + {
>> + this.hostName = hostName;
>> + this.keyType = keyType;
>> + this.keyValue = keyValue;
>> + }
>> +
>> + public String getHostName()
>> + {
>> + return hostName;
>> + }
>> +
>> + public void setHostName( String hostName )
>> + {
>> + this.hostName = hostName;
>> + }
>> +
>> + public String getKeyType()
>> + {
>> + return keyType;
>> + }
>> +
>> + public void setKeyType( String keyType )
>> + {
>> + this.keyType = keyType;
>> + }
>> +
>> + public String getKeyValue()
>> + {
>> + return keyValue;
>> + }
>> +
>> + public void setKeyValue( String keyValue )
>> + {
>> + this.keyValue = keyValue;
>> + }
>> +
>> + public int hashCode()
>> + {
>> + final int prime = 31;
>> + int result = 1;
>> + result = prime * result + ( ( hostName == null ) ? 0 :
>> hostName.hashCode() );
>> + result = prime * result + ( ( keyType == null ) ? 0 :
>> keyType.hashCode() );
>> + result = prime * result + ( ( keyValue == null ) ? 0 :
>> keyValue.hashCode() );
>> + return result;
>> + }
>> +
>> + public boolean equals( Object obj )
>> + {
>> + if ( this == obj )
>> + return true;
>> + if ( obj == null )
>> + return false;
>> + if ( getClass() != obj.getClass() )
>> + return false;
>> + KnownHostEntry other = (KnownHostEntry) obj;
>> + if ( hostName == null )
>> + {
>> + if ( other.hostName != null )
>> + return false;
>> + }
>> + else if ( !hostName.equals( other.hostName ) )
>> + return false;
>> + if ( keyType == null )
>> + {
>> + if ( other.keyType != null )
>> + return false;
>> + }
>> + else if ( !keyType.equals( other.keyType ) )
>> + return false;
>> + if ( keyValue == null )
>> + {
>> + if ( other.keyValue != null )
>> + return false;
>> + }
>> + else if ( !keyValue.equals( other.keyValue ) )
>> + return false;
>> + return true;
>> + }
>> +
>> +}
>>
>> Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/
>> main/java/org/apache/maven/wagon/providers/ssh/knownhost/
>> StreamKnownHostsProvider.java
>> URL:
>> http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java?rev=730869&r1=730868&r2=730869&view=diff
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> ======================================================================
>> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> StreamKnownHostsProvider.java (original)
>> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> StreamKnownHostsProvider.java Fri Jan 2 15:35:51 2009
>> @@ -19,11 +19,16 @@
>> * under the License.
>> */
>>
>> -import org.codehaus.plexus.util.IOUtil;
>> -import org.codehaus.plexus.util.StringOutputStream;
>> -
>> +import java.io.BufferedReader;
>> import java.io.IOException;
>> import java.io.InputStream;
>> +import java.io.StringReader;
>> +import java.util.HashSet;
>> +import java.util.Set;
>> +
>> +import org.codehaus.plexus.util.IOUtil;
>> +import org.codehaus.plexus.util.StringOutputStream;
>> +import org.codehaus.plexus.util.StringUtils;
>>
>> /**
>> * Provides known hosts from a file
>> @@ -43,10 +48,38 @@
>> StringOutputStream stringOutputStream = new
>> StringOutputStream();
>> IOUtil.copy( stream, stringOutputStream );
>> this.contents = stringOutputStream.toString();
>> +
>> + this.knownHosts = this.loadKnownHosts( this.contents );
>> }
>> finally
>> {
>> IOUtil.close( stream );
>> }
>> }
>> +
>> + protected Set loadKnownHosts( String contents )
>> + throws IOException
>> + {
>> + Set hosts = new HashSet();
>> +
>> + BufferedReader br = new BufferedReader( new
>> StringReader( contents ) );
>> +
>> + String line = null;
>> +
>> + do
>> + {
>> + line = br.readLine();
>> + if ( line != null )
>> + {
>> + String tokens[] = StringUtils.split( line );
>> + if ( tokens.length == 3 )
>> + {
>> + hosts.add( new KnownHostEntry( tokens[0],
>> tokens[1], tokens[2] ) );
>> + }
>> + }
>> +
>> + }while ( line != null );
>> +
>> + return hosts;
>> + }
>> }
>>
>> Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> java/org/apache/maven/wagon/providers/ssh/knownhost/
>> FileKnownHostsProviderTest.java
>> URL:
>> http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProviderTest.java?rev=730869&view=auto
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> ======================================================================
>> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> FileKnownHostsProviderTest.java (added)
>> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/
>> org/apache/maven/wagon/providers/ssh/knownhost/
>> FileKnownHostsProviderTest.java Fri Jan 2 15:35:51 2009
>> @@ -0,0 +1,57 @@
>> +package org.apache.maven.wagon.providers.ssh.knownhost;
>> +
>> +import java.io.File;
>> +
>> +import org.codehaus.plexus.util.FileUtils;
>> +
>> +import junit.framework.TestCase;
>> +
>> +public class FileKnownHostsProviderTest
>> + extends TestCase
>> +{
>> + private File basedir = new File( System.getProperty( "basedir",
>> "." ) );
>> +
>> + private File testKnownHostsFile;
>> +
>> +
>> + private FileKnownHostsProvider provider;
>> +
>> + public void setUp()
>> + throws Exception
>> + {
>> + File readonlyKnownHostFile = new File( basedir, "src/test/
>> resources/known_hosts" );
>> + testKnownHostsFile = new File( basedir, "target/
>> known_hosts" );
>> + testKnownHostsFile.delete();
>> + FileUtils.copyFile( readonlyKnownHostFile,
>> testKnownHostsFile );
>> +
>> + provider = new FileKnownHostsProvider( testKnownHostsFile );
>> +
>> + }
>> +
>> + public void testStoreKnownHostsNoChange()
>> + throws Exception
>> + {
>> + long timestamp = this.testKnownHostsFile.lastModified();
>> + //file with the same contents, but with entries swapped
>> + File sameKnownHostFile = new File( basedir, "src/test/
>> resources/known_hosts_same" );
>> + String contents = FileUtils.fileRead( sameKnownHostFile );
>> +
>> + Thread.sleep( 50 );
>> + provider.storeKnownHosts( contents );
>> + assertEquals( "known_hosts file is rewritten", timestamp,
>> testKnownHostsFile.lastModified() );
>> + }
>> +
>> + public void testStoreKnownHostsWithChange()
>> + throws Exception
>> + {
>> + long timestamp = this.testKnownHostsFile.lastModified();
>> + File sameKnownHostFile = new File( basedir, "src/test/
>> resources/known_hosts_same" );
>> + String contents = FileUtils.fileRead( sameKnownHostFile );
>> + contents += "1 2 3";
>> +
>> + Thread.sleep( 50 );
>> + provider.storeKnownHosts( contents );
>> + assertTrue( "known_hosts file is not rewritten", timestamp !
>> = testKnownHostsFile.lastModified() );
>> + }
>> +
>> +}
>>
>> Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> resources/known_hosts
>> URL:
>> http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts?rev=730869&view=auto
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> ======================================================================
>> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> resources/known_hosts (added)
>> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> resources/known_hosts Fri Jan 2 15:35:51 2009
>> @@ -0,0 +1,2 @@
>> +server,192.168.0.10 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/
>> WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/
>> ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/
>> 68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/
>> MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh
>> +
>> 58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw
>> ==
>> +192.168.0.11 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/
>> WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/
>> ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/
>> 68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/
>> MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh
>> +
>> 58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw
>> ==
>>
>> Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> resources/known_hosts_same
>> URL:
>> http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts_same?rev=730869&view=auto
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> ======================================================================
>> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> resources/known_hosts_same (added)
>> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
>> resources/known_hosts_same Fri Jan 2 15:35:51 2009
>> @@ -0,0 +1,2 @@
>> +192.168.0.11 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/
>> WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/
>> ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/
>> 68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/
>> MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh
>> +
>> 58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw
>> ==
>> +server,192.168.0.10 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/
>> WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/
>> ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/
>> 68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/
>> MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh
>> +
>> 58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw
>> ==
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: wagon-commits-unsubscribe@maven.apache.org
>> For additional commands, e-mail: wagon-commits-help@maven.apache.org
>>
>
> --
> Brett Porter
> brett@apache.org
> http://blogs.exist.com/bporter/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wagon-dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: wagon-dev-help@maven.apache.org
>
>
>
--
View this message in context: http://www.nabble.com/Re%3A-svn-commit%3A-r730869---in--maven-wagon-trunk-wagon-providers-wagon-ssh-common-src%3A-main-java-org-apache-maven-wagon-providers-ssh-knownhost--test-java-org-apache-maven-wagon-providers-ssh-knownhost--test-resources--tp21284515p21430156.html
Sent from the Wagon - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-dev-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-dev-help@maven.apache.org
Re: svn commit: r730869 - in /maven/wagon/trunk/wagon-providers/wagon-ssh-common/src: main/java/org/apache/maven/wagon/providers/ssh/knownhost/ test/java/org/apache/maven/wagon/providers/ssh/knownhost/ test/resources/
Posted by Brett Porter <br...@apache.org>.
This seems to have broken the unit tests... are they working for you?
- Brett
On 03/01/2009, at 10:35 AM, dantran@apache.org wrote:
> Author: dantran
> Date: Fri Jan 2 15:35:51 2009
> New Revision: 730869
>
> URL: http://svn.apache.org/viewvc?rev=730869&view=rev
> Log:
> WAGON-254: rewritten known_hosts file only if its contents are changed
>
> Added:
> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java
> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> FileKnownHostsProviderTest.java
> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> resources/
> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> resources/known_hosts
> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> resources/known_hosts_same
> Modified:
> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> AbstractKnownHostsProvider.java
> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> FileKnownHostsProvider.java
> maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> StreamKnownHostsProvider.java
>
> Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/
> main/java/org/apache/maven/wagon/providers/ssh/knownhost/
> AbstractKnownHostsProvider.java
> URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/AbstractKnownHostsProvider.java?rev=730869&r1=730868&r2=730869&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> AbstractKnownHostsProvider.java (original)
> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> AbstractKnownHostsProvider.java Fri Jan 2 15:35:51 2009
> @@ -20,6 +20,8 @@
> */
>
> import java.io.IOException;
> +import java.util.HashSet;
> +import java.util.Set;
>
> /**
> * Common base for known hosts providers.
> @@ -41,6 +43,8 @@
> * the known hosts, in the openssh format
> */
> protected String contents;
> +
> + protected Set knownHosts = new HashSet();
>
> public void setHostKeyChecking( String hostKeyChecking )
> {
> @@ -56,14 +60,11 @@
> {
> return contents;
> }
> -
> - public void setContents( String contents )
> - {
> - this.contents = contents;
> - }
>
> public void storeKnownHosts( String contents )
> throws IOException
> {
> }
> +
> +
> }
>
> Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/
> main/java/org/apache/maven/wagon/providers/ssh/knownhost/
> FileKnownHostsProvider.java
> URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProvider.java?rev=730869&r1=730868&r2=730869&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> FileKnownHostsProvider.java (original)
> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> FileKnownHostsProvider.java Fri Jan 2 15:35:51 2009
> @@ -19,13 +19,14 @@
> * under the License.
> */
>
> -import org.codehaus.plexus.util.FileUtils;
> -
> import java.io.ByteArrayInputStream;
> import java.io.File;
> import java.io.FileInputStream;
> import java.io.IOException;
> import java.io.InputStream;
> +import java.util.Set;
> +
> +import org.codehaus.plexus.util.FileUtils;
>
> /**
> * Provides known hosts from a file
> @@ -70,10 +71,16 @@
> public void storeKnownHosts( String contents )
> throws IOException
> {
> - file.getParentFile().mkdirs();
> - FileUtils.fileWrite( file.getAbsolutePath(), contents );
> + Set hosts = this.loadKnownHosts( contents );
> +
> + if ( ! this.knownHosts.equals( hosts ) )
> + {
> + file.getParentFile().mkdirs();
> + FileUtils.fileWrite( file.getAbsolutePath(), contents );
> + this.knownHosts = hosts;
> + }
> }
> -
> +
> public File getFile()
> {
> return file;
>
> Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/
> java/org/apache/maven/wagon/providers/ssh/knownhost/
> KnownHostEntry.java
> URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java?rev=730869&view=auto
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java
> (added)
> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/KnownHostEntry.java
> Fri Jan 2 15:35:51 2009
> @@ -0,0 +1,97 @@
> +package org.apache.maven.wagon.providers.ssh.knownhost;
> +
> +public class KnownHostEntry
> +{
> +
> + private String hostName;
> +
> + private String keyType;
> +
> + private String keyValue;
> +
> + public KnownHostEntry()
> + {
> +
> + }
> +
> + public KnownHostEntry( String hostName, String keyType, String
> keyValue )
> + {
> + this.hostName = hostName;
> + this.keyType = keyType;
> + this.keyValue = keyValue;
> + }
> +
> + public String getHostName()
> + {
> + return hostName;
> + }
> +
> + public void setHostName( String hostName )
> + {
> + this.hostName = hostName;
> + }
> +
> + public String getKeyType()
> + {
> + return keyType;
> + }
> +
> + public void setKeyType( String keyType )
> + {
> + this.keyType = keyType;
> + }
> +
> + public String getKeyValue()
> + {
> + return keyValue;
> + }
> +
> + public void setKeyValue( String keyValue )
> + {
> + this.keyValue = keyValue;
> + }
> +
> + public int hashCode()
> + {
> + final int prime = 31;
> + int result = 1;
> + result = prime * result + ( ( hostName == null ) ? 0 :
> hostName.hashCode() );
> + result = prime * result + ( ( keyType == null ) ? 0 :
> keyType.hashCode() );
> + result = prime * result + ( ( keyValue == null ) ? 0 :
> keyValue.hashCode() );
> + return result;
> + }
> +
> + public boolean equals( Object obj )
> + {
> + if ( this == obj )
> + return true;
> + if ( obj == null )
> + return false;
> + if ( getClass() != obj.getClass() )
> + return false;
> + KnownHostEntry other = (KnownHostEntry) obj;
> + if ( hostName == null )
> + {
> + if ( other.hostName != null )
> + return false;
> + }
> + else if ( !hostName.equals( other.hostName ) )
> + return false;
> + if ( keyType == null )
> + {
> + if ( other.keyType != null )
> + return false;
> + }
> + else if ( !keyType.equals( other.keyType ) )
> + return false;
> + if ( keyValue == null )
> + {
> + if ( other.keyValue != null )
> + return false;
> + }
> + else if ( !keyValue.equals( other.keyValue ) )
> + return false;
> + return true;
> + }
> +
> +}
>
> Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/
> main/java/org/apache/maven/wagon/providers/ssh/knownhost/
> StreamKnownHostsProvider.java
> URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/org/apache/maven/wagon/providers/ssh/knownhost/StreamKnownHostsProvider.java?rev=730869&r1=730868&r2=730869&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> StreamKnownHostsProvider.java (original)
> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/main/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> StreamKnownHostsProvider.java Fri Jan 2 15:35:51 2009
> @@ -19,11 +19,16 @@
> * under the License.
> */
>
> -import org.codehaus.plexus.util.IOUtil;
> -import org.codehaus.plexus.util.StringOutputStream;
> -
> +import java.io.BufferedReader;
> import java.io.IOException;
> import java.io.InputStream;
> +import java.io.StringReader;
> +import java.util.HashSet;
> +import java.util.Set;
> +
> +import org.codehaus.plexus.util.IOUtil;
> +import org.codehaus.plexus.util.StringOutputStream;
> +import org.codehaus.plexus.util.StringUtils;
>
> /**
> * Provides known hosts from a file
> @@ -43,10 +48,38 @@
> StringOutputStream stringOutputStream = new
> StringOutputStream();
> IOUtil.copy( stream, stringOutputStream );
> this.contents = stringOutputStream.toString();
> +
> + this.knownHosts = this.loadKnownHosts( this.contents );
> }
> finally
> {
> IOUtil.close( stream );
> }
> }
> +
> + protected Set loadKnownHosts( String contents )
> + throws IOException
> + {
> + Set hosts = new HashSet();
> +
> + BufferedReader br = new BufferedReader( new
> StringReader( contents ) );
> +
> + String line = null;
> +
> + do
> + {
> + line = br.readLine();
> + if ( line != null )
> + {
> + String tokens[] = StringUtils.split( line );
> + if ( tokens.length == 3 )
> + {
> + hosts.add( new KnownHostEntry( tokens[0],
> tokens[1], tokens[2] ) );
> + }
> + }
> +
> + }while ( line != null );
> +
> + return hosts;
> + }
> }
>
> Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> java/org/apache/maven/wagon/providers/ssh/knownhost/
> FileKnownHostsProviderTest.java
> URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/org/apache/maven/wagon/providers/ssh/knownhost/FileKnownHostsProviderTest.java?rev=730869&view=auto
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> FileKnownHostsProviderTest.java (added)
> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/java/
> org/apache/maven/wagon/providers/ssh/knownhost/
> FileKnownHostsProviderTest.java Fri Jan 2 15:35:51 2009
> @@ -0,0 +1,57 @@
> +package org.apache.maven.wagon.providers.ssh.knownhost;
> +
> +import java.io.File;
> +
> +import org.codehaus.plexus.util.FileUtils;
> +
> +import junit.framework.TestCase;
> +
> +public class FileKnownHostsProviderTest
> + extends TestCase
> +{
> + private File basedir = new File( System.getProperty( "basedir",
> "." ) );
> +
> + private File testKnownHostsFile;
> +
> +
> + private FileKnownHostsProvider provider;
> +
> + public void setUp()
> + throws Exception
> + {
> + File readonlyKnownHostFile = new File( basedir, "src/test/
> resources/known_hosts" );
> + testKnownHostsFile = new File( basedir, "target/
> known_hosts" );
> + testKnownHostsFile.delete();
> + FileUtils.copyFile( readonlyKnownHostFile,
> testKnownHostsFile );
> +
> + provider = new FileKnownHostsProvider( testKnownHostsFile );
> +
> + }
> +
> + public void testStoreKnownHostsNoChange()
> + throws Exception
> + {
> + long timestamp = this.testKnownHostsFile.lastModified();
> + //file with the same contents, but with entries swapped
> + File sameKnownHostFile = new File( basedir, "src/test/
> resources/known_hosts_same" );
> + String contents = FileUtils.fileRead( sameKnownHostFile );
> +
> + Thread.sleep( 50 );
> + provider.storeKnownHosts( contents );
> + assertEquals( "known_hosts file is rewritten", timestamp,
> testKnownHostsFile.lastModified() );
> + }
> +
> + public void testStoreKnownHostsWithChange()
> + throws Exception
> + {
> + long timestamp = this.testKnownHostsFile.lastModified();
> + File sameKnownHostFile = new File( basedir, "src/test/
> resources/known_hosts_same" );
> + String contents = FileUtils.fileRead( sameKnownHostFile );
> + contents += "1 2 3";
> +
> + Thread.sleep( 50 );
> + provider.storeKnownHosts( contents );
> + assertTrue( "known_hosts file is not rewritten", timestamp !
> = testKnownHostsFile.lastModified() );
> + }
> +
> +}
>
> Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> resources/known_hosts
> URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts?rev=730869&view=auto
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> resources/known_hosts (added)
> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> resources/known_hosts Fri Jan 2 15:35:51 2009
> @@ -0,0 +1,2 @@
> +server,192.168.0.10 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/
> WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/
> ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/
> 68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/
> MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh
> +
> 58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw
> ==
> +192.168.0.11 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/
> WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/
> ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/
> 68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/
> MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh
> +
> 58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw
> ==
>
> Added: maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> resources/known_hosts_same
> URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/resources/known_hosts_same?rev=730869&view=auto
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> resources/known_hosts_same (added)
> +++ maven/wagon/trunk/wagon-providers/wagon-ssh-common/src/test/
> resources/known_hosts_same Fri Jan 2 15:35:51 2009
> @@ -0,0 +1,2 @@
> +192.168.0.11 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/
> WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/
> ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/
> 68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/
> MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh
> +
> 58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw
> ==
> +server,192.168.0.10 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtnWEbH/
> WTZG2aAl9gX8HtMqXidzQXgluARIOijWigbvA4/3N4fnNmckXBUHR32iqHQM/
> ySIRhc9EVDanDy0JyKdm738PwP0DbWGqiIDTtukbju4DAtXtOx3LgIqHc0PD+cquO9Ut/
> 68o6/GdBgN18nVOMt+8Q9Vr1VSFqfHoLEx04NI+4BbGaGKQOFU25VJ3KtM0zkoyDfu0/
> MDusVoFIDVb0KtfxZVEDRmEFnySpFHOBdSdODsunftYccCNTNdsh
> +
> 58jSqChUUlP3B0bTykm7o52CrXCMWCsLzH6dDkN7GUQwLvjPG04gedeZg6tEN8vTInRmHQrp0TTW7JGNjXgw
> ==
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wagon-commits-unsubscribe@maven.apache.org
> For additional commands, e-mail: wagon-commits-help@maven.apache.org
>
--
Brett Porter
brett@apache.org
http://blogs.exist.com/bporter/
---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-dev-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-dev-help@maven.apache.org