git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@798403 13f79535-47bb-0310-9956-ffa450edef68tags/archiva-1.2.2
@@ -585,7 +585,7 @@ public class DefaultRepositoryProxyConnectors | |||
private void queueRepositoryTask( String repositoryId, File localFile ) | |||
{ | |||
RepositoryTask task = TaskCreator.createRepositoryTask( repositoryId, localFile.getName(), localFile ); | |||
RepositoryTask task = TaskCreator.createRepositoryTask( repositoryId, localFile.getName(), localFile, true ); | |||
try | |||
{ |
@@ -58,7 +58,7 @@ public class RepositoryContentConsumers | |||
private List<KnownRepositoryContentConsumer> selectedKnownConsumers; | |||
private List<InvalidRepositoryContentConsumer> selectedInvalidConsumers; | |||
public RepositoryContentConsumers( ArchivaConfiguration archivaConfiguration ) | |||
{ | |||
this.archivaConfiguration = archivaConfiguration; | |||
@@ -229,8 +229,9 @@ public class RepositoryContentConsumers | |||
* | |||
* @param repository the repository configuration to use. | |||
* @param localFile the local file to execute the consumers against. | |||
* @param updateRelatedArtifacts TODO | |||
*/ | |||
public void executeConsumers( ManagedRepositoryConfiguration repository, File localFile ) | |||
public void executeConsumers( ManagedRepositoryConfiguration repository, File localFile, boolean updateRelatedArtifacts ) | |||
{ | |||
// Run the repository consumers | |||
try | |||
@@ -238,6 +239,24 @@ public class RepositoryContentConsumers | |||
Closure triggerBeginScan = new TriggerBeginScanClosure( repository, getStartTime() ); | |||
List<KnownRepositoryContentConsumer> selectedKnownConsumers = getSelectedKnownConsumers(); | |||
// MRM-1212/MRM-1197 | |||
// - do not create missing/fix invalid checksums and update metadata when deploying from webdav since these are uploaded by maven | |||
if( updateRelatedArtifacts == false ) | |||
{ | |||
List<KnownRepositoryContentConsumer> clone = new ArrayList<KnownRepositoryContentConsumer>(); | |||
clone.addAll( selectedKnownConsumers ); | |||
for( KnownRepositoryContentConsumer consumer : clone ) | |||
{ | |||
if( consumer.getId().equals( "create-missing-checksums" ) || | |||
consumer.getId().equals( "metadata-updater" ) ) | |||
{ | |||
selectedKnownConsumers.remove( consumer ); | |||
} | |||
} | |||
} | |||
List<InvalidRepositoryContentConsumer> selectedInvalidConsumers = getSelectedInvalidConsumers(); | |||
CollectionUtils.forAllDo( selectedKnownConsumers, triggerBeginScan ); | |||
CollectionUtils.forAllDo( selectedInvalidConsumers, triggerBeginScan ); |
@@ -254,7 +254,7 @@ public class RepositoryContentConsumersTest | |||
// invalidConsumer.completeScan(); | |||
invalidControl.replay(); | |||
consumers.executeConsumers( repo, testFile ); | |||
consumers.executeConsumers( repo, testFile, true ); | |||
knownControl.verify(); | |||
invalidControl.verify(); | |||
@@ -279,7 +279,7 @@ public class RepositoryContentConsumersTest | |||
// invalidConsumer.completeScan(); | |||
invalidControl.replay(); | |||
consumers.executeConsumers( repo, notIncludedTestFile ); | |||
consumers.executeConsumers( repo, notIncludedTestFile, true ); | |||
knownControl.verify(); | |||
invalidControl.verify(); | |||
@@ -302,12 +302,12 @@ public class RepositoryContentConsumersTest | |||
// invalidConsumer.completeScan(); | |||
invalidControl.replay(); | |||
consumers.executeConsumers( repo, excludedTestFile ); | |||
consumers.executeConsumers( repo, excludedTestFile, true ); | |||
knownControl.verify(); | |||
invalidControl.verify(); | |||
} | |||
/** | |||
* Create an OS specific version of the filepath. | |||
* Provide path in unix "/" format. |
@@ -113,7 +113,7 @@ public class ArchivaRepositoryScanningTaskExecutor | |||
if( repoTask.getResourceFile() != null ) | |||
{ | |||
log.debug( "Executing task from queue with job name: " + repoTask.getName() ); | |||
consumers.executeConsumers( arepo, repoTask.getResourceFile() ); | |||
consumers.executeConsumers( arepo, repoTask.getResourceFile(), repoTask.isUpdateRelatedArtifacts() ); | |||
} | |||
else | |||
{ |
@@ -40,6 +40,8 @@ public class RepositoryTask | |||
File resourceFile; | |||
boolean updateRelatedArtifacts; | |||
public String getRepositoryId() | |||
{ | |||
return repositoryId; | |||
@@ -89,4 +91,14 @@ public class RepositoryTask | |||
{ | |||
this.resourceFile = resourceFile; | |||
} | |||
public boolean isUpdateRelatedArtifacts() | |||
{ | |||
return updateRelatedArtifacts; | |||
} | |||
public void setUpdateRelatedArtifacts( boolean updateRelatedArtifacts ) | |||
{ | |||
this.updateRelatedArtifacts = updateRelatedArtifacts; | |||
} | |||
} |
@@ -47,11 +47,13 @@ public class TaskCreator | |||
return task; | |||
} | |||
public static RepositoryTask createRepositoryTask( String repositoryId, String taskNameSuffix, File resourceFile ) | |||
public static RepositoryTask createRepositoryTask( String repositoryId, String taskNameSuffix, File resourceFile, | |||
boolean updateRelatedArtifacts ) | |||
{ | |||
RepositoryTask task = createRepositoryTask( repositoryId, taskNameSuffix ); | |||
task.setResourceFile( resourceFile ); | |||
task.setUpdateRelatedArtifacts( updateRelatedArtifacts ); | |||
return task; | |||
} | |||
@@ -617,7 +617,7 @@ public class UploadAction | |||
private void queueRepositoryTask( String repositoryId, File localFile ) | |||
{ | |||
RepositoryTask task = TaskCreator.createRepositoryTask( repositoryId, localFile.getName(), localFile ); | |||
RepositoryTask task = TaskCreator.createRepositoryTask( repositoryId, localFile.getName(), localFile, true ); | |||
try | |||
{ |
@@ -322,7 +322,7 @@ public class ArchivaDavResource | |||
triggerAuditEvent( resource, AuditEvent.CREATE_DIR ); | |||
} | |||
else | |||
{ | |||
{ | |||
throw new DavException( HttpServletResponse.SC_BAD_REQUEST, "Could not write member " + | |||
resource.getResourcePath() + " at " + getResourcePath() ); | |||
} | |||
@@ -632,8 +632,8 @@ public class ArchivaDavResource | |||
} | |||
private void queueRepositoryTask( File localFile ) | |||
{ | |||
RepositoryTask task = TaskCreator.createRepositoryTask( repository.getId(), localFile.getName(), localFile ); | |||
{ | |||
RepositoryTask task = TaskCreator.createRepositoryTask( repository.getId(), localFile.getName(), localFile, false ); | |||
try | |||
{ |