Author: olamy
Date: Tue Dec 6 21:41:30 2011
New Revision: 1211184
URL: http://svn.apache.org/viewvc?rev=1211184&view=rev
Log:
remove this synchronized block on indexer there is enough sync in indexer to
not add an other one here
Modified:
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java
Modified:
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java?rev=1211184&r1=1211183&r2=1211184&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java
(original)
+++
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-indexing/src/main/java/org/apache/archiva/scheduler/indexing/ArchivaIndexingTaskExecutor.java
Tue Dec 6 21:41:30 2011
@@ -94,127 +94,123 @@ public class ArchivaIndexingTaskExecutor
public void executeTask( Task task )
throws TaskExecutionException
{
- synchronized ( nexusIndexer )
- {
- ArtifactIndexingTask indexingTask = (ArtifactIndexingTask) task;
+ ArtifactIndexingTask indexingTask = (ArtifactIndexingTask) task;
- ManagedRepository repository = indexingTask.getRepository();
- IndexingContext context = indexingTask.getContext();
+ ManagedRepository repository = indexingTask.getRepository();
+ IndexingContext context = indexingTask.getContext();
- if ( ArtifactIndexingTask.Action.FINISH.equals(
indexingTask.getAction() )
- && indexingTask.isExecuteOnEntireRepo() )
+ if ( ArtifactIndexingTask.Action.FINISH.equals(
indexingTask.getAction() )
+ && indexingTask.isExecuteOnEntireRepo() )
+ {
+ try
+ {
+ nexusIndexer.scan( context, null, indexingTask.isOnlyUpdate()
);
+ }
+ catch ( IOException e )
+ {
+ throw new TaskExecutionException( "Error scan repository " +
repository, e );
+ }
+ log.debug( "Finishing indexing task on repo: {}",
repository.getId() );
+ finishIndexingTask( indexingTask, repository, context );
+ }
+ else
+ {
+ // create context if not a repo scan request
+ if ( !indexingTask.isExecuteOnEntireRepo() )
{
try
{
- nexusIndexer.scan( context, null,
indexingTask.isOnlyUpdate() );
+ log.debug( "Creating indexing context on resource: {}",
indexingTask.getResourceFile().getPath() );
+ context = managedRepositoryAdmin.createIndexContext(
repository );
}
- catch ( IOException e )
+ catch ( RepositoryAdminException e )
{
- throw new TaskExecutionException( "Error scan repository "
+ repository, e );
+ log.error( "Error occurred while creating context: " +
e.getMessage() );
+ throw new TaskExecutionException( "Error occurred while
creating context: " + e.getMessage(), e );
}
- log.debug( "Finishing indexing task on repo: {}",
repository.getId() );
- finishIndexingTask( indexingTask, repository, context );
}
- else
+
+ if ( context == null || context.getIndexDirectory() == null )
{
- // create context if not a repo scan request
- if ( !indexingTask.isExecuteOnEntireRepo() )
- {
- try
- {
- log.debug( "Creating indexing context on resource: {}",
- indexingTask.getResourceFile().getPath() );
- context = managedRepositoryAdmin.createIndexContext(
repository );
- }
- catch ( RepositoryAdminException e )
- {
- log.error( "Error occurred while creating context: " +
e.getMessage() );
- throw new TaskExecutionException( "Error occurred
while creating context: " + e.getMessage(),
- e );
- }
- }
+ throw new TaskExecutionException( "Trying to index an artifact
but the context is already closed" );
+ }
- if ( context == null || context.getIndexDirectory() == null )
- {
- throw new TaskExecutionException( "Trying to index an
artifact but the context is already closed" );
- }
+ try
+ {
+ File artifactFile = indexingTask.getResourceFile();
+ ArtifactContext ac =
artifactContextProducer.getArtifactContext( context, artifactFile );
- try
+ if ( ac != null )
{
- File artifactFile = indexingTask.getResourceFile();
- ArtifactContext ac =
artifactContextProducer.getArtifactContext( context, artifactFile );
-
- if ( ac != null )
+ if ( indexingTask.getAction().equals(
ArtifactIndexingTask.Action.ADD ) )
{
- if ( indexingTask.getAction().equals(
ArtifactIndexingTask.Action.ADD ) )
+ //IndexSearcher s = context.getIndexSearcher();
+ //String uinfo = ac.getArtifactInfo().getUinfo();
+ //TopDocs d = s.search( new TermQuery( new Term(
ArtifactInfo.UINFO, uinfo ) ), 1 );
+
+ BooleanQuery q = new BooleanQuery();
+ q.add( nexusIndexer.constructQuery( MAVEN.GROUP_ID,
new SourcedSearchExpression(
+ ac.getArtifactInfo().groupId ) ),
BooleanClause.Occur.MUST );
+ q.add( nexusIndexer.constructQuery( MAVEN.ARTIFACT_ID,
new SourcedSearchExpression(
+ ac.getArtifactInfo().artifactId ) ),
BooleanClause.Occur.MUST );
+ q.add( nexusIndexer.constructQuery( MAVEN.VERSION, new
SourcedSearchExpression(
+ ac.getArtifactInfo().version ) ),
BooleanClause.Occur.MUST );
+ if ( ac.getArtifactInfo().classifier != null )
+ {
+ q.add( nexusIndexer.constructQuery(
MAVEN.CLASSIFIER, new SourcedSearchExpression(
+ ac.getArtifactInfo().classifier ) ),
BooleanClause.Occur.MUST );
+ }
+ if ( ac.getArtifactInfo().packaging != null )
+ {
+ q.add( nexusIndexer.constructQuery(
MAVEN.PACKAGING, new SourcedSearchExpression(
+ ac.getArtifactInfo().packaging ) ),
BooleanClause.Occur.MUST );
+ }
+ FlatSearchRequest flatSearchRequest = new
FlatSearchRequest( q, context );
+ FlatSearchResponse flatSearchResponse =
nexusIndexer.searchFlat( flatSearchRequest );
+ if ( flatSearchResponse.getResults().isEmpty() )
{
- //IndexSearcher s = context.getIndexSearcher();
- //String uinfo = ac.getArtifactInfo().getUinfo();
- //TopDocs d = s.search( new TermQuery( new Term(
ArtifactInfo.UINFO, uinfo ) ), 1 );
-
- BooleanQuery q = new BooleanQuery();
- q.add( nexusIndexer.constructQuery(
MAVEN.GROUP_ID, new SourcedSearchExpression(
- ac.getArtifactInfo().groupId ) ),
BooleanClause.Occur.MUST );
- q.add( nexusIndexer.constructQuery(
MAVEN.ARTIFACT_ID, new SourcedSearchExpression(
- ac.getArtifactInfo().artifactId ) ),
BooleanClause.Occur.MUST );
- q.add( nexusIndexer.constructQuery( MAVEN.VERSION,
new SourcedSearchExpression(
- ac.getArtifactInfo().version ) ),
BooleanClause.Occur.MUST );
- if ( ac.getArtifactInfo().classifier != null )
- {
- q.add( nexusIndexer.constructQuery(
MAVEN.CLASSIFIER, new SourcedSearchExpression(
- ac.getArtifactInfo().classifier ) ),
BooleanClause.Occur.MUST );
- }
- if ( ac.getArtifactInfo().packaging != null )
- {
- q.add( nexusIndexer.constructQuery(
MAVEN.PACKAGING, new SourcedSearchExpression(
- ac.getArtifactInfo().packaging ) ),
BooleanClause.Occur.MUST );
- }
- FlatSearchRequest flatSearchRequest = new
FlatSearchRequest( q, context );
- FlatSearchResponse flatSearchResponse =
nexusIndexer.searchFlat( flatSearchRequest );
- if ( flatSearchResponse.getResults().isEmpty() )
- {
- log.debug( "Adding artifact '{}' to index..",
ac.getArtifactInfo() );
- nexusIndexer.addArtifactToIndex( ac, context );
- }
- else
- {
- log.debug( "Updating artifact '{}' in
index..", ac.getArtifactInfo() );
- // TODO check if update exists !!
- nexusIndexer.deleteArtifactFromIndex( ac,
context );
- nexusIndexer.addArtifactToIndex( ac, context );
- }
-
- context.updateTimestamp();
-
- // close the context if not a repo scan request
- if ( !indexingTask.isExecuteOnEntireRepo() )
- {
- log.debug( "Finishing indexing task on
resource file : {}",
-
indexingTask.getResourceFile().getPath() );
- finishIndexingTask( indexingTask, repository,
context );
- }
+ log.debug( "Adding artifact '{}' to index..",
ac.getArtifactInfo() );
+ nexusIndexer.addArtifactToIndex( ac, context );
}
else
{
- log.debug( "Removing artifact '{}' from index..",
ac.getArtifactInfo() );
+ log.debug( "Updating artifact '{}' in index..",
ac.getArtifactInfo() );
+ // TODO check if update exists !!
nexusIndexer.deleteArtifactFromIndex( ac, context
);
+ nexusIndexer.addArtifactToIndex( ac, context );
+ }
+
+ context.updateTimestamp();
+
+ // close the context if not a repo scan request
+ if ( !indexingTask.isExecuteOnEntireRepo() )
+ {
+ log.debug( "Finishing indexing task on resource
file : {}",
+
indexingTask.getResourceFile().getPath() );
+ finishIndexingTask( indexingTask, repository,
context );
}
}
- }
- catch ( IOException e )
- {
- log.error( "Error occurred while executing indexing task
'" + indexingTask + "': " + e.getMessage(),
- e );
- throw new TaskExecutionException(
- "Error occurred while executing indexing task '" +
indexingTask + "'", e );
- }
- catch ( IllegalArtifactCoordinateException e )
- {
- log.error( "Error occurred while getting artifact context:
" + e.getMessage() );
- throw new TaskExecutionException( "Error occurred while
getting artifact context.", e );
+ else
+ {
+ log.debug( "Removing artifact '{}' from index..",
ac.getArtifactInfo() );
+ nexusIndexer.deleteArtifactFromIndex( ac, context );
+ }
}
}
+ catch ( IOException e )
+ {
+ log.error( "Error occurred while executing indexing task '" +
indexingTask + "': " + e.getMessage(),
+ e );
+ throw new TaskExecutionException( "Error occurred while
executing indexing task '" + indexingTask + "'",
+ e );
+ }
+ catch ( IllegalArtifactCoordinateException e )
+ {
+ log.error( "Error occurred while getting artifact context: " +
e.getMessage() );
+ throw new TaskExecutionException( "Error occurred while
getting artifact context.", e );
+ }
}
+
}
private void finishIndexingTask( ArtifactIndexingTask indexingTask,
ManagedRepository repository,