Author: oching
Date: Mon Jul 27 07:39:34 2009
New Revision: 798060

URL: http://svn.apache.org/viewvc?rev=798060&view=rev
Log:
[MRM-1212]
o fix/create checksums and update metadata in action class only if 
create-missing-checksum and metadata-updater consumers are not enabled

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java?rev=798060&r1=798059&r2=798060&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
 Mon Jul 27 07:39:34 2009
@@ -42,6 +42,7 @@
 import org.apache.maven.archiva.common.utils.VersionComparator;
 import org.apache.maven.archiva.common.utils.VersionUtil;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
+import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.model.ArchivaProjectModel;
 import org.apache.maven.archiva.model.ArchivaRepositoryMetadata;
@@ -292,8 +293,9 @@
     {
         try
         {
+            Configuration config = configuration.getConfiguration();
             ManagedRepositoryConfiguration repoConfig =
-                configuration.getConfiguration().findManagedRepositoryById( 
repositoryId );
+                config.findManagedRepositoryById( repositoryId );
 
             ArtifactReference artifactReference = new ArtifactReference();
             artifactReference.setArtifactId( artifactId );
@@ -345,9 +347,11 @@
                 filename = filename.replaceAll( "SNAPSHOT", timestamp + "-" + 
newBuildNumber );
             }
 
+            boolean fixChecksums = !( 
config.getRepositoryScanning().getKnownContentConsumers().contains( 
"create-missing-checksums" ) );
+            
             try
             {   
-                copyFile( artifactFile, targetPath, filename );
+                copyFile( artifactFile, targetPath, filename, fixChecksums );
                 queueRepositoryTask( repository.getId(), repository.toFile( 
artifactReference ) );
             }
             catch ( IOException ie )
@@ -362,13 +366,16 @@
                 pomFilename = StringUtils.remove( pomFilename, "-" + 
classifier );
             }
             pomFilename = FilenameUtils.removeExtension( pomFilename ) + 
".pom";
-
+            
             if ( generatePom )
             {
                 try
                 {
                     File generatedPomFile = createPom( targetPath, pomFilename 
);
-                    fixChecksums( generatedPomFile );
+                    if( fixChecksums )
+                    {
+                        fixChecksums( generatedPomFile );
+                    }
                     queueRepositoryTask( repoConfig.getId(), generatedPomFile 
);                    
                 }
                 catch ( IOException ie )
@@ -387,7 +394,7 @@
             {
                 try
                 {   
-                    copyFile( pomFile, targetPath, pomFilename );
+                    copyFile( pomFile, targetPath, pomFilename, fixChecksums );
                     queueRepositoryTask( repoConfig.getId(), new File( 
targetPath, pomFilename ) );
                 }
                 catch ( IOException ie )
@@ -398,7 +405,11 @@
 
             }
 
-            updateMetadata( metadata, metadataFile, lastUpdatedTimestamp, 
timestamp, newBuildNumber );
+            // explicitly update only if metadata-updater consumer is not 
enabled!
+            if( 
!config.getRepositoryScanning().getKnownContentConsumers().contains( 
"metadata-updater" ) )
+            {
+                updateMetadata( metadata, metadataFile, lastUpdatedTimestamp, 
timestamp, newBuildNumber, fixChecksums );
+            }
 
             String msg = "Artifact \'" + groupId + ":" + artifactId + ":" + 
version +
                 "\' was successfully deployed to repository \'" + repositoryId 
+ "\'";
@@ -428,7 +439,7 @@
         checksum.fixChecksums( algorithms );
     }
     
-    private void copyFile( File sourceFile, File targetPath, String 
targetFilename )
+    private void copyFile( File sourceFile, File targetPath, String 
targetFilename, boolean fixChecksums )
         throws IOException
     {
         FileOutputStream out = new FileOutputStream( new File( targetPath, 
targetFilename ) );
@@ -449,7 +460,10 @@
             input.close();
         }
         
-        fixChecksums( new File( targetPath, targetFilename ) );
+        if( fixChecksums )
+        {
+            fixChecksums( new File( targetPath, targetFilename ) );
+        }
     }
 
     private File createPom( File targetPath, String filename )
@@ -486,12 +500,11 @@
     }
 
     /**
-     * Update artifact level metadata. If it does not exist, create the 
metadata.
-     *
-     * @param metadata
+     * Update artifact level metadata. If it does not exist, create the 
metadata and 
+     * fix checksums if necessary.
      */
     private void updateMetadata( ArchivaRepositoryMetadata metadata, File 
metadataFile, Date lastUpdatedTimestamp,
-                                 String timestamp, int buildNumber )
+                                 String timestamp, int buildNumber, boolean 
fixChecksums )
         throws RepositoryMetadataException
     {
         List<String> availableVersions = new ArrayList<String>();
@@ -543,7 +556,11 @@
         }
 
         RepositoryMetadataWriter.write( metadata, metadataFile );
-        fixChecksums( metadataFile );
+        
+        if( fixChecksums )
+        {
+            fixChecksums( metadataFile );
+        }
     }
 
     public void validate()

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java?rev=798060&r1=798059&r2=798060&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/UploadActionTest.java
 Mon Jul 27 07:39:34 2009
@@ -21,6 +21,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
 
 import org.apache.archiva.checksum.ChecksumAlgorithm;
 import org.apache.archiva.checksum.ChecksummedFile;
@@ -29,6 +30,7 @@
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration;
 import org.apache.maven.archiva.repository.ManagedRepositoryContent;
 import org.apache.maven.archiva.repository.RepositoryContentFactory;
 import org.apache.maven.archiva.repository.RepositoryNotFoundException;
@@ -96,6 +98,10 @@
         repoConfig.setLocation( testRepo.getPath() );
         repoConfig.setName( REPOSITORY_ID );
         config.addManagedRepository( repoConfig );
+        
+        RepositoryScanningConfiguration repoScanning = new 
RepositoryScanningConfiguration();
+        repoScanning.setKnownContentConsumers( new ArrayList<String>() );
+        config.setRepositoryScanning( repoScanning );
     }
 
     public void tearDown()
@@ -401,9 +407,11 @@
         ManagedRepositoryContent content = new 
ManagedDefaultRepositoryContent();
         content.setRepository( config.findManagedRepositoryById( REPOSITORY_ID 
) );
 
+        
+        
         archivaConfigControl.expectAndReturn( 
archivaConfig.getConfiguration(), config );
         repoFactoryControl.expectAndReturn( 
repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content );
-
+        
         archivaConfigControl.replay();
         repoFactoryControl.replay();
 
@@ -443,5 +451,5 @@
         assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation );
 
         verifyChecksums( repoLocation );
-    }
+    }    
 }


Reply via email to