diff options
author | Igor Fedorenko | 2011-04-20 16:19:17 +0000 |
---|---|---|
committer | Igor Fedorenko | 2011-04-20 16:24:07 +0000 |
commit | 40d3424ae941113e36a054b719d0fe1fef5359e0 (patch) | |
tree | c951982ea08b068bd71142924e74c43becf5f5a5 /org.eclipse.m2e.core | |
parent | 3f7f48e28f4d06aa495204e4e15c6ac0a6882c04 (diff) | |
download | m2e-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.java | 16 |
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()); } |