You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jd...@apache.org on 2005/06/09 20:19:22 UTC
svn commit: r189785 - in
/maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean:
digest/DigestVerifier.java digest/Digestor.java phase/RewritePhase.java
Author: jdcasey
Date: Thu Jun 9 11:19:21 2005
New Revision: 189785
URL: http://svn.apache.org/viewcvs?rev=189785&view=rev
Log:
Solving MRM-4. If the source pom doesn't exist, it'll check for the existence of the target pom before writing the skeleton.
It'll always try to verify/patch the MD5/SHA1 for the target pom.
Modified:
maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/DigestVerifier.java
maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/Digestor.java
maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java
Modified: maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/DigestVerifier.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/DigestVerifier.java?rev=189785&r1=189784&r2=189785&view=diff
==============================================================================
--- maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/DigestVerifier.java (original)
+++ maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/DigestVerifier.java Thu Jun 9 11:19:21 2005
@@ -54,17 +54,27 @@
throws DigestException, ReportWriteException, IOException
{
// create the digest source file from which to copy/verify.
- File digestSourceFile = new File( artifactSource + digestExt );
+ File digestSourceFile = null;
+
+ if ( artifactSource != null )
+ {
+ digestSourceFile = new File( artifactSource + digestExt );
+ }
// create the digest target file from which to copy/create.
- File digestTargetFile = new File( artifactTarget + digestExt );
+ File digestTargetFile = null;
- transaction.addFile( digestTargetFile );
+ if ( artifactTarget != null )
+ {
+ digestTargetFile = new File( artifactTarget + digestExt );
+
+ transaction.addFile( digestTargetFile );
+ }
boolean verified = false;
// if the digest source file exists, then verify it.
- if ( digestSourceFile.exists() )
+ if ( digestSourceFile != null && digestSourceFile.exists() )
{
verified = artifactDigestor.verifyArtifactDigest( artifactTarget, digestTargetFile, digestAlgorithm );
Modified: maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/Digestor.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/Digestor.java?rev=189785&r1=189784&r2=189785&view=diff
==============================================================================
--- maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/Digestor.java (original)
+++ maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/digest/Digestor.java Thu Jun 9 11:19:21 2005
@@ -28,6 +28,11 @@
public void createArtifactDigest( File artifactFile, File digestFile, String algorithm )
throws DigestException
{
+ if ( artifactFile == null || !artifactFile.exists() )
+ {
+ throw new DigestException( "Cannot generate digest for missing file: " + artifactFile );
+ }
+
byte[] digestData = generateArtifactDigest( artifactFile, algorithm );
try
@@ -43,43 +48,40 @@
public boolean verifyArtifactDigest( File artifactFile, File digestFile, String algorithm )
throws DigestException
{
- if ( artifactFile.exists() && digestFile.exists() )
+ if ( digestFile == null || !digestFile.exists() || artifactFile == null || !artifactFile.exists() )
{
- byte[] generatedDigest = generateArtifactDigest( artifactFile, algorithm );
+ return false;
+ }
- InputStream in = null;
- try
- {
- in = new FileInputStream( artifactFile );
+ byte[] generatedDigest = generateArtifactDigest( artifactFile, algorithm );
- int digestLen = generatedDigest.length;
- int currentIdx = 0;
+ InputStream in = null;
+ try
+ {
+ in = new FileInputStream( artifactFile );
+
+ int digestLen = generatedDigest.length;
+ int currentIdx = 0;
- boolean matched = true;
+ boolean matched = true;
- int read = -1;
- while ( ( read = in.read() ) > -1 )
+ int read = -1;
+ while ( ( read = in.read() ) > -1 )
+ {
+ if ( currentIdx >= digestLen || read != generatedDigest[currentIdx] )
{
- if ( currentIdx >= digestLen || read != generatedDigest[currentIdx] )
- {
- return false;
- }
+ return false;
}
}
- catch ( IOException e )
- {
- throw new DigestException( "Cannot verify digest for artifact file: \'" + artifactFile
- + "\' against digest file: \'" + digestFile + "\' using algorithm: \'" + algorithm + "\'", e );
- }
- finally
- {
- IOUtil.close( in );
- }
-
}
- else
+ catch ( IOException e )
{
- return false;
+ throw new DigestException( "Cannot verify digest for artifact file: \'" + artifactFile
+ + "\' against digest file: \'" + digestFile + "\' using algorithm: \'" + algorithm + "\'", e );
+ }
+ finally
+ {
+ IOUtil.close( in );
}
return true;
@@ -88,6 +90,11 @@
public byte[] generateArtifactDigest( File artifactFile, String algorithm )
throws DigestException
{
+ if ( artifactFile == null || !artifactFile.exists() )
+ {
+ throw new DigestException( "Cannot generate digest for missing file: " + artifactFile );
+ }
+
MessageDigest digest = null;
try
{
Modified: maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java?rev=189785&r1=189784&r2=189785&view=diff
==============================================================================
--- maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java (original)
+++ maven/components/trunk/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/phase/RewritePhase.java Thu Jun 9 11:19:21 2005
@@ -242,7 +242,7 @@
String pomContents = null;
- boolean pomNeedsRewriting = true;
+ boolean shouldRewritePom = true;
if ( sourcePom.exists() )
{
@@ -250,13 +250,23 @@
if ( pomContents.indexOf( "modelVersion" ) > -1 )
{
- pomNeedsRewriting = false;
+ shouldRewritePom = false;
freshenSupplementalMetadata( pom, sourcePom, targetPom, transaction, artifactReporter, reportOnly );
}
}
+ else if( targetPom.exists() )
+ {
+ // we have a target pom for this artifact already, and we'll only be making up a new pom.
+ // let's leave the existing one alone.
+ shouldRewritePom = false;
+ }
- if ( pomNeedsRewriting )
+ File bridgedTargetPom = null;
+
+ boolean wroteBridge = false;
+
+ if ( shouldRewritePom )
{
ArtifactPomRewriter artifactPomRewriter = null;
@@ -267,7 +277,7 @@
transaction.addFile( targetPom );
- File bridgedTargetPom = new File( targetBase, bridgingLayout.pathOfMetadata( pom ).replace( '+', '-' ) );
+ bridgedTargetPom = new File( targetBase, bridgingLayout.pathOfMetadata( pom ).replace( '+', '-' ) );
transaction.addFile( bridgedTargetPom );
@@ -295,16 +305,8 @@
IOUtil.close( to );
}
- boolean wroteBridge = bridgePomLocations( pom, targetPom, bridgedTargetPom, artifactReporter,
+ wroteBridge = bridgePomLocations( pom, targetPom, bridgedTargetPom, artifactReporter,
transaction, reportOnly );
-
- digestVerifier.verifyDigest( sourcePom, targetPom, transaction, artifactReporter, reportOnly );
-
- if ( wroteBridge )
- {
- digestVerifier.verifyDigest( sourcePom, bridgedTargetPom, transaction, artifactReporter,
- reportOnly );
- }
}
finally
{
@@ -319,6 +321,14 @@
}
}
}
+ }
+
+ digestVerifier.verifyDigest( sourcePom, targetPom, transaction, artifactReporter, reportOnly );
+
+ if ( wroteBridge )
+ {
+ digestVerifier.verifyDigest( sourcePom, bridgedTargetPom, transaction, artifactReporter,
+ reportOnly );
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org