You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ep...@apache.org on 2005/12/09 03:18:46 UTC
svn commit: r355319 - in
/maven/repository-manager/trunk/maven-repository-reports-standard/src:
main/java/org/apache/maven/repository/reporting/
test/java/org/apache/maven/repository/reporting/
Author: epunzalan
Date: Thu Dec 8 18:18:36 2005
New Revision: 355319
URL: http://svn.apache.org/viewcvs?rev=355319&view=rev
Log:
PR: MRM-17
Submitted by: Maria Odea Ching
Additional unit tests
Modified:
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java
maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java
maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java
Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java?rev=355319&r1=355318&r2=355319&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java Thu Dec 8 18:18:36 2005
@@ -34,10 +34,7 @@
/**
* This class reports invalid and mismatched checksums of artifacts and metadata files.
- * It validates MD5 and SHA-1 chacksums.
- *
- * @TODO
- * - Validate using remote repository.
+ * It validates MD5 and SHA-1 checksums.
*/
public class ChecksumArtifactReporter
implements ArtifactReportProcessor, MetadataReportProcessor
@@ -60,9 +57,9 @@
public void processArtifact( Model model, Artifact artifact, ArtifactReporter reporter,
ArtifactRepository repository )
{
- System.out.println( " " );
- System.out
- .println( "===================================== +++++ PROCESS ARTIFACT +++++ ====================================" );
+ //System.out.println( " " );
+ //System.out
+ // .println( "===================================== +++++ PROCESS ARTIFACT +++++ ====================================" );
String artifactUrl = "";
String repositoryUrl = "";
@@ -96,6 +93,10 @@
reporter.addFailure( artifact, "MD5 checksum does not match." );
}
}
+ else
+ {
+ reporter.addFailure( artifact, "MD5 checksum file does not exist." );
+ }
if ( sha1Exists )
{
@@ -108,6 +109,10 @@
reporter.addFailure( artifact, "SHA-1 checksum does not match." );
}
}
+ else
+ {
+ reporter.addFailure( artifact, "SHA-1 checksum file does not exist." );
+ }
}
/**
@@ -116,9 +121,9 @@
*/
public void processMetadata( RepositoryMetadata metadata, ArtifactRepository repository, ArtifactReporter reporter )
{
- System.out.println( " " );
- System.out
- .println( "====================================== +++++ PROCESS METADATA +++++ ==============================" );
+ // System.out.println( " " );
+ // System.out
+ // .println( "====================================== +++++ PROCESS METADATA +++++ ==============================" );
String metadataUrl = "", repositoryUrl = "", filename = "";
if ( !repository.getProtocol().equals( "file" ) )
@@ -133,20 +138,20 @@
filename = metadata.getLocalFilename( repository );
}
- //version metadata
if ( metadata.storedInArtifactVersionDirectory() == true && metadata.storedInGroupDirectory() == false )
{
+ //version metadata
metadataUrl = repositoryUrl + metadata.getGroupId() + "/" + metadata.getArtifactId() + "/"
+ metadata.getBaseVersion() + "/";
- //group metadata
}
else if ( metadata.storedInArtifactVersionDirectory() == false && metadata.storedInGroupDirectory() == true )
{
+ //group metadata
metadataUrl = repositoryUrl + metadata.getGroupId() + "/";
- //artifact metadata
}
else
{
+ //artifact metadata
metadataUrl = repositoryUrl + metadata.getGroupId() + "/" + metadata.getArtifactId() + "/";
}
@@ -168,6 +173,10 @@
reporter.addFailure( metadata, "MD5 checksum does not match." );
}
}
+ else
+ {
+ reporter.addFailure( metadata, "MD5 checksum file does not exist." );
+ }
if ( sha1Exists )
{
@@ -180,6 +189,10 @@
reporter.addFailure( metadata, "SHA-1 checksum does not match." );
}
}
+ else
+ {
+ reporter.addFailure( metadata, "SHA-1 checksum file does not exist." );
+ }
}
@@ -281,10 +294,10 @@
isr.close();
String chk2Str = new String( chars );
- System.out.println( "-----" + algo + " Checksum value (CHK1 - created checksum for jar file) ::::: "
- + byteArrayToHexStr( chk1 ) );
- System.out.println( "-----" + algo + " Checksum value (CHK2 - content of CHECKSUM file) ::::: "
- + chk2Str );
+ //System.out.println( "-----" + algo + " Checksum value (CHK1 - created checksum for jar file) ::::: "
+ // + byteArrayToHexStr( chk1 ) );
+ // System.out.println( "-----" + algo + " Checksum value (CHK2 - content of CHECKSUM file) ::::: "
+ // + chk2Str );
if ( chk2Str.toUpperCase().equals( byteArrayToHexStr( chk1 ).toUpperCase() ) )
{
@@ -300,7 +313,7 @@
}
catch ( Exception e )
{
- e.printStackTrace();
+ //e.printStackTrace();
return valid;
}
}
Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java?rev=355319&r1=355318&r2=355319&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/AbstractChecksumArtifactReporterTest.java Thu Dec 8 18:18:36 2005
@@ -35,9 +35,6 @@
import org.codehaus.plexus.util.FileUtils;
/**
- * @TODO
- * - Create more valid and invalid artifacts & metadata files for further testing.
- *
* This class creates the artifact and metadata files used for testing the ChecksumArtifactReporter.
* It is extended by ChecksumArtifactReporterTest class.
*/
@@ -115,6 +112,8 @@
if ( type.equals( "VALID" ) )
{
writeMetadataFile( "checksumTest/validArtifact/1.0/", metadataChecksumFilename, "xml", true );
+ writeMetadataFile( "checksumTest/validArtifact/", metadataChecksumFilename, "xml", true );
+ writeMetadataFile( "checksumTest/", metadataChecksumFilename, "xml", true );
}
else if ( type.equals( "INVALID" ) )
@@ -135,8 +134,8 @@
*/
private boolean writeChecksumFile( String relativePath, String filename, String type, boolean isValid )
{
- System.out.println( " " );
- System.out.println( "========================= ARTIFACT CHECKSUM ==================================" );
+ //System.out.println( " " );
+ //System.out.println( "========================= ARTIFACT CHECKSUM ==================================" );
//Initialize variables for creating jar files
FileOutputStream f = null;
@@ -145,9 +144,6 @@
try
{
String dirs = filename.replace( '-', '/' );
- //String[] split1 = repoUrl.split( "file:/" );
- //split1[1] = split1[1] + "/";
-
//create the group level directory of the artifact
File dirFiles = new File( repoUrl + relativePath + dirs );
@@ -175,8 +171,8 @@
//Create md5 and sha-1 checksum files..
byte[] md5chk = createChecksum( repoUrl + relativePath + dirs + "/" + filename + "." + type, "MD5" );
byte[] sha1chk = createChecksum( repoUrl + relativePath + dirs + "/" + filename + "." + type, "SHA-1" );
- System.out.println( "----- CREATED MD5 checksum ::: " + byteArrayToHexStr( md5chk ) );
- System.out.println( "----- CREATED SHA-1 checksum ::: " + byteArrayToHexStr( sha1chk ) );
+ //System.out.println( "----- CREATED MD5 checksum ::: " + byteArrayToHexStr( md5chk ) );
+ //System.out.println( "----- CREATED SHA-1 checksum ::: " + byteArrayToHexStr( sha1chk ) );
File file = null;
@@ -222,22 +218,21 @@
*/
private boolean writeMetadataFile( String relativePath, String filename, String type, boolean isValid )
{
- System.out.println( " " );
- System.out.println( "========================= METADATA CHECKSUM ==================================" );
+ // System.out.println( " " );
+ // System.out.println( "========================= METADATA CHECKSUM ==================================" );
try
{
//create checksum for the metadata file..
String repoUrl = repository.getBasedir();
String url = repository.getBasedir() + "/" + filename + "." + type;
- //boolean copied = copyFile( url, repoUrl + relativePath + filename + "." + type );
FileUtils.copyFile( new File( url ), new File( repoUrl + relativePath + filename + "." + type ) );
//Create md5 and sha-1 checksum files..
byte[] md5chk = createChecksum( repoUrl + relativePath + filename + "." + type, "MD5" );
byte[] sha1chk = createChecksum( repoUrl + relativePath + filename + "." + type, "SHA-1" );
- System.out.println( "----- CREATED MD5 checksum ::: " + byteArrayToHexStr( md5chk ) );
- System.out.println( "----- CREATED SHA-1 checksum ::: " + byteArrayToHexStr( sha1chk ) );
+ //System.out.println( "----- CREATED MD5 checksum ::: " + byteArrayToHexStr( md5chk ) );
+ //System.out.println( "----- CREATED SHA-1 checksum ::: " + byteArrayToHexStr( sha1chk ) );
File file = null;
@@ -372,6 +367,51 @@
ioe.printStackTrace();
}
+ return b;
+ }
+
+ private boolean deleteFile( String filename )
+ {
+ File f = new File( filename );
+ return f.delete();
+ }
+
+ /**
+ *
+ * @return
+ */
+ protected boolean deleteChecksumFiles( String type )
+ {
+
+ boolean b = true;
+
+ //delete valid checksum files of artifacts created
+ for ( int i = 0; i < validArtifactChecksumJars.length; i++ )
+ {
+ b = deleteFile( repository.getBasedir() + "checksumTest/" + validArtifactChecksumJars[i].replace( '-', '/' )
+ + "/" + validArtifactChecksumJars[i] + "." + type + ".md5" );
+ if ( b == false )
+ return b;
+
+ b = deleteFile( repository.getBasedir() + "checksumTest/" + validArtifactChecksumJars[i].replace( '-', '/' )
+ + "/" + validArtifactChecksumJars[i] + "." + type + ".sha1" );
+ if ( b == false )
+ return b;
+ }
+
+ //delete valid checksum files of metadata file
+ for ( int i = 0; i < validArtifactChecksumJars.length; i++ )
+ {
+ b = deleteFile( repository.getBasedir() + "checksumTest/" + validArtifactChecksumJars[i].replace( '-', '/' )
+ + "/" + metadataChecksumFilename + ".xml.md5" );
+ if ( b == false )
+ return b;
+
+ b = deleteFile( repository.getBasedir() + "checksumTest/" + validArtifactChecksumJars[i].replace( '-', '/' )
+ + "/" + metadataChecksumFilename + ".xml.sha1" );
+ if ( b == false )
+ return b;
+ }
return b;
}
Modified: maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java
URL: http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java?rev=355319&r1=355318&r2=355319&view=diff
==============================================================================
--- maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java (original)
+++ maven/repository-manager/trunk/maven-repository-reports-standard/src/test/java/org/apache/maven/repository/reporting/ChecksumArtifactReporterTest.java Thu Dec 8 18:18:36 2005
@@ -26,15 +26,13 @@
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.GroupRepositoryMetadata;
import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
import org.apache.maven.artifact.versioning.VersionRange;
-/**
- * @TODO
- * - Test with multiple success and multiple failures
- * - Test using remote repository
- *
+/**
* This class tests the ChecksumArtifactReporter.
* It extends the AbstractChecksumArtifactReporterTest class.
*/
@@ -72,19 +70,12 @@
super.setUp();
artifactReportProcessor = (ArtifactReportProcessor) lookup( ArtifactReportProcessor.ROLE, "default" );
metadataReportProcessor = (MetadataReportProcessor) lookup( MetadataReportProcessor.ROLE, "checksum-metadata" );
-
- // boolean b = createChecksumFile( "VALID" );
- // b = createChecksumFile( "INVALID" );
- // b = createMetadataFile( "VALID" );
- // b = createMetadataFile( "INVALID" );
}
public void tearDown()
throws Exception
{
super.tearDown();
- //String[] split = super.repository.getUrl().split("file:/");
- //boolean b = deleteTestDirectory(new File(split[1] + "checksumTest") );
}
/**
@@ -96,6 +87,9 @@
assertTrue( createChecksumFile( "INVALID" ) );
}
+ /**
+ * Test creation of metadata file together with its checksums.
+ */
public void testCreateMetadataFile()
{
assertTrue( createMetadataFile( "VALID" ) );
@@ -124,7 +118,7 @@
ArtifactResult result = (ArtifactResult) iter.next();
ctr++;
}
- System.out.println( "ARTIFACT Number of success --- " + ctr );
+ //System.out.println( "ARTIFACT Number of success --- " + ctr );
}
catch ( Exception e )
@@ -157,7 +151,7 @@
ArtifactResult result = (ArtifactResult) iter.next();
ctr++;
}
- System.out.println( "ARTIFACT Number of failures --- " + ctr );
+ //System.out.println( "ARTIFACT Number of failures --- " + ctr );
}
catch ( Exception e )
@@ -182,9 +176,19 @@
Artifact artifact = new DefaultArtifact( "checksumTest", "validArtifact", version, "compile", "jar", "",
handler );
+ //Version level metadata
RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
+ metadataReportProcessor.processMetadata( metadata, repository, reporter );
+
+ //Artifact level metadata
+ metadata = new ArtifactRepositoryMetadata( artifact );
metadataReportProcessor.processMetadata( metadata, repository, reporter );
+
+
+ //Group level metadata
+ metadata = new GroupRepositoryMetadata( "checksumTest" );
+ metadataReportProcessor.processMetadata( metadata, repository, reporter );
Iterator iter = reporter.getRepositoryMetadataSuccessIterator();
int ctr = 0;
while ( iter.hasNext() )
@@ -192,8 +196,8 @@
RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
ctr++;
}
- System.out.println( "REPORT METADATA Number of success --- " + ctr );
-
+ //System.out.println( "METADATA Number of success --- " + ctr );
+
}
catch ( Exception e )
{
@@ -227,7 +231,7 @@
RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
ctr++;
}
- System.out.println( "REPORT METADATA Number of failures --- " + ctr );
+ //System.out.println( "METADATA Number of failures --- " + ctr );
}
catch ( Exception e )
@@ -256,7 +260,7 @@
ArtifactResult result = (ArtifactResult) iter.next();
ctr++;
}
- System.out.println( "[REMOTE] ARTIFACT Number of success --- " + ctr );
+ //System.out.println( "[REMOTE] ARTIFACT Number of success --- " + ctr );
}
/**
@@ -273,6 +277,7 @@
remoteArtifactScope, remoteArtifactType, "", handler );
ArtifactRepository repository = new DefaultArtifactRepository( remoteRepoId, remoteRepoUrl,
new DefaultRepositoryLayout() );
+
RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
metadataReportProcessor.processMetadata( metadata, repository, reporter );
@@ -283,8 +288,8 @@
RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
ctr++;
}
- System.out.println( "[REMOTE] REPORT METADATA Number of sucess --- " + ctr );
-
+ //System.out.println( "[REMOTE] METADATA in version directory, Number of sucess --- " + ctr );
+
}
catch ( Exception e )
{
@@ -295,10 +300,65 @@
/**
* Test deletion of the test directories created.
*/
- public void testDeleteTestDirectory()
+ public void testDeleteChecksumFiles()
{
- String[] split = super.repository.getUrl().split( "file:/" );
- assertTrue( deleteTestDirectory( new File( split[1] + "checksumTest" ) ) );
+ //System.out.println("TESTDELETE CHECKSUM FILES....." + deleteChecksumFiles("jar"));
+
+ assertTrue( deleteChecksumFiles("jar"));
+ }
+
+ /**
+ * Test deletion of the test directories created.
+ */
+ public void testDeleteTestDirectory()
+ {
+ assertTrue( deleteTestDirectory( new File( repository.getBasedir() + "checksumTest" ) ) );
}
+ /**
+ * Test the conditional when the checksum files of the artifact & metadata do not exist.
+ */
+ public void testChecksumFilesDoNotExist(){
+ createChecksumFile("VALID");
+ createMetadataFile("VALID");
+ boolean b = deleteChecksumFiles("jar");
+
+ try
+ {
+ ArtifactHandler handler = new DefaultArtifactHandler( "jar" );
+ VersionRange version = VersionRange.createFromVersion( "1.0" );
+ Artifact artifact = new DefaultArtifact( "checksumTest", "validArtifact", version, "compile", "jar", "",
+ handler );
+ ArtifactRepository repository = new DefaultArtifactRepository( "repository", "file:/"
+ + System.getProperty( "basedir" ) + "/src/test/repository/", new DefaultRepositoryLayout() );
+
+ artifactReportProcessor.processArtifact( null, artifact, reporter, repository );
+ Iterator iter = reporter.getArtifactFailureIterator();
+ int ctr = 0;
+ while ( iter.hasNext() )
+ {
+ ArtifactResult result = (ArtifactResult) iter.next();
+ ctr++;
+ }
+ //System.out.println( "[FILE DOES NOT EXIST] ARTIFACT Number of failures --- " + ctr );
+
+ RepositoryMetadata metadata = new SnapshotArtifactRepositoryMetadata( artifact );
+ metadataReportProcessor.processMetadata( metadata, repository, reporter );
+
+ iter = reporter.getRepositoryMetadataFailureIterator();
+ ctr = 0;
+ while ( iter.hasNext() )
+ {
+ RepositoryMetadataResult result = (RepositoryMetadataResult) iter.next();
+ ctr++;
+ }
+ //System.out.println( "[FILE DOES NOT EXIST] METADATA Number of failures --- " + ctr );
+ }
+ catch ( Exception e )
+ {
+ e.printStackTrace();
+ }
+
+ b = deleteTestDirectory( new File( repository.getBasedir() + "checksumTest" ) );
+ }
}