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