Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Fedorenko2011-04-20 16:19:17 +0000
committerIgor Fedorenko2011-04-20 16:24:07 +0000
commit40d3424ae941113e36a054b719d0fe1fef5359e0 (patch)
treec951982ea08b068bd71142924e74c43becf5f5a5 /org.eclipse.m2e.core
parent3f7f48e28f4d06aa495204e4e15c6ac0a6882c04 (diff)
downloadm2e-core-40d3424ae941113e36a054b719d0fe1fef5359e0.tar.gz
m2e-core-40d3424ae941113e36a054b719d0fe1fef5359e0.tar.xz
m2e-core-40d3424ae941113e36a054b719d0fe1fef5359e0.zip
342903 only update workspace index when there are changes
Workspace index only contains information about project GAVC properties and does not change during most project refresh cases. To take advantage of this, query workspace index and only change the index when old and new index documents differ. See also http://jira.codehaus.org/browse/MINDEXER-27 Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
Diffstat (limited to 'org.eclipse.m2e.core')
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/NexusIndexManager.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/NexusIndexManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/NexusIndexManager.java
index 47184423..0839230f 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/NexusIndexManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/NexusIndexManager.java
@@ -746,13 +746,17 @@ public class NexusIndexManager implements IndexManager, IMavenProjectChangedList
// workspace indexing context can by null during startup due to MNGECLIPSE-1633
for(MavenProjectChangedEvent event : events) {
IMavenProjectFacade oldFacade = event.getOldMavenProject();
- if(oldFacade != null) {
- removeDocument(repositoryRegistry.getWorkspaceRepository(), oldFacade.getPomFile(),
- oldFacade.getArtifactKey(), oldFacade);
- fireIndexRemoved(repositoryRegistry.getWorkspaceRepository());
- }
IMavenProjectFacade facade = event.getMavenProject();
- if(facade != null) {
+ if(oldFacade != null) {
+ if(facade != null) {
+ addDocument(repositoryRegistry.getWorkspaceRepository(), facade.getPomFile(), facade.getArtifactKey());
+ fireIndexChanged(repositoryRegistry.getWorkspaceRepository());
+ } else {
+ removeDocument(repositoryRegistry.getWorkspaceRepository(), oldFacade.getPomFile(),
+ oldFacade.getArtifactKey(), oldFacade);
+ fireIndexRemoved(repositoryRegistry.getWorkspaceRepository());
+ }
+ } else if(facade != null) {
addDocument(repositoryRegistry.getWorkspaceRepository(), facade.getPomFile(), facade.getArtifactKey());
fireIndexAdded(repositoryRegistry.getWorkspaceRepository());
}

Back to the top