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