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;
+  }
 }