416050 : ignore non-maven projects changes
Signed-off-by: Fred Bricon <fbricon@gmail.com>
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryRefreshJob.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryRefreshJob.java
index 8a26f08..d5ca29a 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryRefreshJob.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/ProjectRegistryRefreshJob.java
@@ -38,6 +38,7 @@
import org.eclipse.m2e.core.embedder.ICallable;
import org.eclipse.m2e.core.embedder.IMavenConfiguration;
import org.eclipse.m2e.core.embedder.IMavenExecutionContext;
+import org.eclipse.m2e.core.internal.IMavenConstants;
import org.eclipse.m2e.core.internal.Messages;
import org.eclipse.m2e.core.internal.jobs.IBackgroundProcessingQueue;
import org.eclipse.m2e.core.project.IMavenProjectFacade;
@@ -142,7 +143,10 @@
int type = event.getType();
if(IResourceChangeEvent.PRE_CLOSE == type || IResourceChangeEvent.PRE_DELETE == type) {
- queue(new MavenUpdateRequest((IProject) event.getResource(), offline, forceDependencyUpdate));
+ IProject project = (IProject) event.getResource();
+ if(isMavenProject(project)) {
+ queue(new MavenUpdateRequest(project, offline, forceDependencyUpdate));
+ }
} else {
// if (IResourceChangeEvent.POST_CHANGE == type)
IWorkspace workspace = ResourcesPlugin.getWorkspace();
@@ -158,10 +162,13 @@
Set<IProject> refreshProjects = new LinkedHashSet<IProject>();
for(int i = 0; i < projectDeltas.length; i++ ) {
IResourceDelta projectDelta = projectDeltas[i];
+ IProject project = (IProject) projectDelta.getResource();
+ if(!isMavenProject(project)) {
+ continue;
+ }
if((projectDelta.getFlags() & IResourceDelta.OPEN) != 0) {
- queue(new MavenUpdateRequest((IProject) projectDelta.getResource(), offline, forceDependencyUpdate));
+ queue(new MavenUpdateRequest(project, offline, forceDependencyUpdate));
} else if(!autobuilding && projectChanged(projectDelta)) {
- IProject project = (IProject) projectDelta.getResource();
IMavenProjectFacade facade = manager.getProject(project);
if(facade == null || facade.isStale()) {
// facade is up-to-date for resource change events fired right after project import
@@ -220,4 +227,13 @@
return delta.getKind() == IResourceDelta.REMOVED || delta.getKind() == IResourceDelta.ADDED
|| (delta.getKind() == IResourceDelta.CHANGED && ((delta.getFlags() & DELTA_FLAGS) != 0));
}
+
+ private boolean isMavenProject(IProject project) {
+ try {
+ return project != null && project.hasNature(IMavenConstants.NATURE_ID);
+ } catch(CoreException ex) {
+ log.error(ex.getMessage(), ex);
+ }
+ return false;
+ }
}