You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2009/07/27 09:39:35 UTC

svn commit: r798060 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src: main/java/org/apache/maven/archiva/web/action/UploadAction.java test/java/org/apache/maven/archiva/web/action/UploadActionTest.java

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 );
-    }
+    }    
 }