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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]