Lambda conversion in m2e.core.

Change-Id: I606a759a4c960e04c536289d34c65a1cccc3d617
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java
index ad28c50..bd54c41 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java
@@ -182,11 +182,7 @@
       final String scope, IProgressMonitor monitor) throws CoreException {
     monitor.setTaskName(Messages.MavenModelManager_monitor_building);
 
-    ICallable<DependencyNode> callable = new ICallable<DependencyNode>() {
-      public DependencyNode call(IMavenExecutionContext context, IProgressMonitor monitor) throws CoreException {
-        return readDependencyTree(context.getRepositorySession(), mavenProject, scope);
-      }
-    };
+    ICallable<DependencyNode> callable = (context1, monitor1) -> readDependencyTree(context1.getRepositorySession(), mavenProject, scope);
 
     return (context != null) ? projectManager.execute(context, callable, monitor) : maven.execute(callable, monitor);
   }
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilder.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilder.java
index 2c165ac..b01134f 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilder.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilder.java
@@ -34,7 +34,6 @@
 import org.apache.maven.project.MavenProject;
 
 import org.eclipse.m2e.core.MavenPlugin;
-import org.eclipse.m2e.core.embedder.ICallable;
 import org.eclipse.m2e.core.embedder.IMavenExecutionContext;
 import org.eclipse.m2e.core.internal.IMavenConstants;
 import org.eclipse.m2e.core.internal.M2EUtils;
@@ -84,39 +83,34 @@
 
       final MavenExecutionContext context = projectManager.createExecutionContext(pomResource, resolverConfiguration);
 
-      return context.execute(new ICallable<T>() {
-        @Override
-        public T call(IMavenExecutionContext context, IProgressMonitor monitor) throws CoreException {
-          final IMavenProjectFacade projectFacade = getProjectFacade(project, monitor);
+      return context.execute((context2, monitor2) -> {
+        final IMavenProjectFacade projectFacade = getProjectFacade(project, monitor2);
 
-          if(projectFacade == null) {
-            return null;
-          }
-
-          MavenProject mavenProject;
-          try {
-            // make sure projectFacade has MavenProject instance loaded 
-            mavenProject = projectFacade.getMavenProject(monitor);
-          } catch(CoreException ce) {
-            //unable to read the project facade
-            addErrorMarker(project, ce);
-            return null;
-          }
-
-          return context.execute(mavenProject, new ICallable<T>() {
-            public T call(IMavenExecutionContext context, IProgressMonitor monitor) throws CoreException {
-              ILifecycleMapping lifecycleMapping = configurationManager.getLifecycleMapping(projectFacade);
-              if(lifecycleMapping == null) {
-                return null;
-              }
-
-              Map<MojoExecutionKey, List<AbstractBuildParticipant>> buildParticipantsByMojoExecutionKey = lifecycleMapping
-                  .getBuildParticipants(projectFacade, monitor);
-
-              return method(context, projectFacade, buildParticipantsByMojoExecutionKey, kind, args, monitor);
-            }
-          }, monitor);
+        if(projectFacade == null) {
+          return null;
         }
+
+        MavenProject mavenProject;
+        try {
+          // make sure projectFacade has MavenProject instance loaded 
+          mavenProject = projectFacade.getMavenProject(monitor2);
+        } catch(CoreException ce) {
+          //unable to read the project facade
+          addErrorMarker(project, ce);
+          return null;
+        }
+
+        return context2.execute(mavenProject, (context1, monitor1) -> {
+          ILifecycleMapping lifecycleMapping = configurationManager.getLifecycleMapping(projectFacade);
+          if(lifecycleMapping == null) {
+            return null;
+          }
+
+          Map<MojoExecutionKey, List<AbstractBuildParticipant>> buildParticipantsByMojoExecutionKey = lifecycleMapping
+              .getBuildParticipants(projectFacade, monitor1);
+
+          return method(context1, projectFacade, buildParticipantsByMojoExecutionKey, kind, args, monitor1);
+        }, monitor2);
       }, monitor);
     }
 
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilderImpl.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilderImpl.java
index 5b060a7..0a0af69 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilderImpl.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/MavenBuilderImpl.java
@@ -84,11 +84,7 @@
   }
 
   public MavenBuilderImpl() {
-    this(new DeltaProvider() {
-      public IResourceDelta getDelta(IProject project) {
-        return null;
-      }
-    });
+    this(project -> null);
   }
 
   public Set<IProject> build(MavenSession session, IMavenProjectFacade projectFacade, int kind,
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/plexusbuildapi/ResourceScanner.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/plexusbuildapi/ResourceScanner.java
index dfb0ec3..ff923e6 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/plexusbuildapi/ResourceScanner.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/builder/plexusbuildapi/ResourceScanner.java
@@ -18,7 +18,6 @@
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.runtime.CoreException;
 
 import org.codehaus.plexus.util.AbstractScanner;
@@ -61,24 +60,20 @@
   }
 
   private void scanResource() throws CoreException {
-    resource.accept(new IResourceVisitor() {
-
-      public boolean visit(IResource resource) {
-        String relpath = getRelativePath(resource);
-        if(isIncluded(relpath) && !isExcluded(relpath)) {
-          if(resource instanceof IContainer) {
-            includedDirectories.add(relpath);
-          } else {
-            includedFiles.add(relpath);
-          }
-          return true;
-        } else if(resource instanceof IFolder) {
-          return couldHoldIncluded(relpath);
+    resource.accept(resource -> {
+      String relpath = getRelativePath(resource);
+      if(isIncluded(relpath) && !isExcluded(relpath)) {
+        if(resource instanceof IContainer) {
+          includedDirectories.add(relpath);
+        } else {
+          includedFiles.add(relpath);
         }
-
-        return false;
+        return true;
+      } else if(resource instanceof IFolder) {
+        return couldHoldIncluded(relpath);
       }
 
+      return false;
     });
   }
 
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java
index 93b8fad..d977b06 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenImpl.java
@@ -108,7 +108,6 @@
 import org.apache.maven.model.building.DefaultModelBuildingRequest;
 import org.apache.maven.model.building.ModelBuildingRequest;
 import org.apache.maven.model.building.ModelProblemCollector;
-import org.apache.maven.model.building.ModelProblemCollectorRequest;
 import org.apache.maven.model.interpolation.ModelInterpolator;
 import org.apache.maven.model.io.ModelReader;
 import org.apache.maven.model.io.ModelWriter;
@@ -1357,10 +1356,7 @@
   public void interpolateModel(MavenProject project, Model model) throws CoreException {
     ModelBuildingRequest request = new DefaultModelBuildingRequest();
     request.setUserProperties(project.getProperties());
-    ModelProblemCollector problems = new ModelProblemCollector() {
-      @Override
-      public void add(ModelProblemCollectorRequest req) {
-      }
+    ModelProblemCollector problems = req -> {
     };
     lookup(ModelInterpolator.class).interpolateModel(model, project.getBasedir(), request, problems);
   }
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/IndexedArtifact.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/IndexedArtifact.java
index e923dfa..9aaa07b 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/IndexedArtifact.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/IndexedArtifact.java
@@ -20,27 +20,23 @@
 
 public class IndexedArtifact implements Comparable<IndexedArtifact> {
 
-  public static final Comparator<IndexedArtifactFile> FILE_INFO_COMPARATOR = new Comparator<IndexedArtifactFile>() {
-
-    public int compare(IndexedArtifactFile f1, IndexedArtifactFile f2) {
-      ArtifactVersion v1 = f1.getArtifactVersion();
-      ArtifactVersion v2 = f2.getArtifactVersion();
-      int r = -v1.compareTo(v2);
-      if(r != 0) {
-        return r;
-      }
-
-      String c1 = f1.classifier;
-      String c2 = f2.classifier;
-      if(c1 == null) {
-        return c2 == null ? 0 : -1;
-      }
-      if(c2 == null) {
-        return 1;
-      }
-      return c1.compareTo(c2);
+  public static final Comparator<IndexedArtifactFile> FILE_INFO_COMPARATOR = (f1, f2) -> {
+    ArtifactVersion v1 = f1.getArtifactVersion();
+    ArtifactVersion v2 = f2.getArtifactVersion();
+    int r = -v1.compareTo(v2);
+    if(r != 0) {
+      return r;
     }
 
+    String c1 = f1.classifier;
+    String c2 = f2.classifier;
+    if(c1 == null) {
+      return c2 == null ? 0 : -1;
+    }
+    if(c2 == null) {
+      return 1;
+    }
+    return c1.compareTo(c2);
   };
 
   private final String group;
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java
index 9686315..26d5944 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java
@@ -651,11 +651,7 @@
 
   protected void scheduleIndexUpdate(final IRepository repository, final boolean force) {
     if(repository != null) {
-      IndexCommand command = new IndexUpdaterJob.IndexCommand() {
-        public void run(IProgressMonitor monitor) throws CoreException {
-          updateIndex(repository, force, monitor);
-        }
-      };
+      IndexCommand command = monitor -> updateIndex(repository, force, monitor);
       updaterJob.addCommand(command);
       updaterJob.schedule(1000L);
     }
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java
index 5f6924f..5a9ca9b 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java
@@ -68,7 +68,6 @@
 import org.apache.maven.project.MavenProject;
 
 import org.eclipse.m2e.core.MavenPlugin;
-import org.eclipse.m2e.core.embedder.ICallable;
 import org.eclipse.m2e.core.embedder.IMaven;
 import org.eclipse.m2e.core.embedder.IMavenConfiguration;
 import org.eclipse.m2e.core.embedder.IMavenExecutionContext;
@@ -140,46 +139,43 @@
     final SubMonitor progress = SubMonitor.convert(monitor, Messages.ProjectConfigurationManager_task_importing, 100);
 
     // overall execution context to share repository session data and cache for all projects
-    return maven.execute(new ICallable<List<IMavenProjectImportResult>>() {
-      public List<IMavenProjectImportResult> call(IMavenExecutionContext context, IProgressMonitor monitor)
-          throws CoreException {
-        long t1 = System.currentTimeMillis();
-        ArrayList<IMavenProjectImportResult> result = new ArrayList<IMavenProjectImportResult>();
-        int total = projectInfos.size();
-        ArrayList<IProject> projects = new ArrayList<IProject>(total);
-        int i = 0;
+    return maven.execute((context, monitor1) -> {
+    long t1 = System.currentTimeMillis();
+    ArrayList<IMavenProjectImportResult> result = new ArrayList<IMavenProjectImportResult>();
+    int total = projectInfos.size();
+    ArrayList<IProject> projects = new ArrayList<IProject>(total);
+    int i = 0;
 
-        List<IProject> existingProjects = findExistingProjectsToHideFrom();
+    List<IProject> existingProjects = findExistingProjectsToHideFrom();
 
-        // first, create all projects with basic configuration
-        for(MavenProjectInfo projectInfo : projectInfos) {
-          long t11 = System.currentTimeMillis();
-          if(monitor.isCanceled()) {
-            throw new OperationCanceledException();
-          }
+    // first, create all projects with basic configuration
+    for(MavenProjectInfo projectInfo : projectInfos) {
+    long t11 = System.currentTimeMillis();
+    if(monitor1.isCanceled()) {
+      throw new OperationCanceledException();
+    }
 
-          SubMonitor subProgress = SubMonitor.convert(progress.newChild(10), projectInfos.size() * 100);
-          IProject project = create(projectInfo, configuration, listener, subProgress.newChild(100));
+    SubMonitor subProgress = SubMonitor.convert(progress.newChild(10), projectInfos.size() * 100);
+    IProject project = create(projectInfo, configuration, listener, subProgress.newChild(100));
 
-          result.add(new MavenProjectImportResult(projectInfo, project));
+    result.add(new MavenProjectImportResult(projectInfo, project));
 
-          if(project != null) {
-            projects.add(project);
-            long importTime = System.currentTimeMillis() - t11;
-            log.debug("Imported project {} ({}/{}) in {} ms", project.getName(), ++i, total, importTime);
-          }
-        }
+    if(project != null) {
+      projects.add(project);
+      long importTime = System.currentTimeMillis() - t11;
+      log.debug("Imported project {} ({}/{}) in {} ms", project.getName(), ++i, total, importTime);
+    }
+    }
 
-        hideNestedProjectsFromParents(projects, existingProjects, monitor);
-        // then configure maven for all projects
-        configureNewMavenProjects(projects, progress.newChild(90));
+    hideNestedProjectsFromParents(projects, existingProjects, monitor1);
+    // then configure maven for all projects
+    configureNewMavenProjects(projects, progress.newChild(90));
 
-        long t2 = System.currentTimeMillis();
-        log.info("Imported and configured {} project(s) in {} sec", total, ((t2 - t1) / 1000));
+    long t2 = System.currentTimeMillis();
+    log.info("Imported and configured {} project(s) in {} sec", total, ((t2 - t1) / 1000));
 
-        return result;
-      }
-    }, monitor);
+    return result;
+   }, monitor);
 
   }
 
@@ -347,12 +343,8 @@
       final IProgressMonitor monitor) {
     try {
       return maven.execute(request.isOffline(), request.isForceDependencyUpdate(),
-          new ICallable<Map<String, IStatus>>() {
-            public Map<String, IStatus> call(IMavenExecutionContext context, IProgressMonitor monitor) {
-              return updateProjectConfiguration0(request.getPomFiles(), updateConfiguration, cleanProjects,
-                  refreshFromLocal, monitor);
-            }
-          }, monitor);
+          (context, monitor1) -> updateProjectConfiguration0(request.getPomFiles(), updateConfiguration, cleanProjects,
+              refreshFromLocal, monitor1), monitor);
     } catch(CoreException ex) {
       Map<String, IStatus> result = new LinkedHashMap<String, IStatus>();
       for(IFile pomFile : request.getPomFiles()) {
@@ -498,21 +490,19 @@
     MavenExecutionContext executionContext = projectManager.createExecutionContext(mavenProjectFacade.getPom(),
         mavenProjectFacade.getResolverConfiguration());
 
-    executionContext.execute(mavenProject, new ICallable<Void>() {
-      public Void call(IMavenExecutionContext context, IProgressMonitor monitor) throws CoreException {
-        ILifecycleMapping lifecycleMapping = getLifecycleMapping(mavenProjectFacade);
+    executionContext.execute(mavenProject, (context, monitor1) -> {
+      ILifecycleMapping lifecycleMapping = getLifecycleMapping(mavenProjectFacade);
 
-        if(lifecycleMapping != null) {
-          mavenMarkerManager.deleteMarkers(mavenProjectFacade.getProject(), IMavenConstants.MARKER_CONFIGURATION_ID);
+      if(lifecycleMapping != null) {
+        mavenMarkerManager.deleteMarkers(mavenProjectFacade.getProject(), IMavenConstants.MARKER_CONFIGURATION_ID);
 
-          lifecycleMapping.configure(request, monitor);
+        lifecycleMapping.configure(request, monitor1);
 
-          LifecycleMappingConfiguration.persist(request.getMavenProjectFacade(), monitor);
-        } else {
-          log.debug("LifecycleMapping is null for project {}", mavenProjectFacade.toString()); //$NON-NLS-1$
-        }
-        return null;
+        LifecycleMappingConfiguration.persist(request.getMavenProjectFacade(), monitor1);
+      } else {
+        log.debug("LifecycleMapping is null for project {}", mavenProjectFacade.toString()); //$NON-NLS-1$
       }
+      return null;
     }, monitor);
 
     log.debug(
@@ -787,12 +777,8 @@
       final String artifactId, final String version, final String javaPackage, final Properties properties,
       final ProjectImportConfiguration configuration, final IProjectCreationListener listener,
       final IProgressMonitor monitor) throws CoreException {
-    return maven.execute(new ICallable<List<IProject>>() {
-      public List<IProject> call(IMavenExecutionContext context, IProgressMonitor monitor) throws CoreException {
-        return createArchetypeProjects0(location, archetype, groupId, artifactId, version, javaPackage, properties,
-            configuration, listener, monitor);
-      }
-    }, monitor);
+    return maven.execute((context, monitor1) -> createArchetypeProjects0(location, archetype, groupId, artifactId, version, javaPackage, properties,
+        configuration, listener, monitor1), monitor);
   }
 
   /*package*/List<IProject> createArchetypeProjects0(IPath location, Archetype archetype, String groupId,
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/conversion/ProjectConversionManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/conversion/ProjectConversionManager.java
index 0f77112..fe94928 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/conversion/ProjectConversionManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/conversion/ProjectConversionManager.java
@@ -179,24 +179,22 @@
     IConfigurationElement[] cf = registry.getConfigurationElementsFor(CONVERSION_ENABLER_EXTENSION_POINT);
     List<IConfigurationElement> list = Arrays.asList(cf);
 
-    Comparator<IConfigurationElement> c = new Comparator<IConfigurationElement>() {
-      public int compare(IConfigurationElement o1, IConfigurationElement o2) {
-        String o1String, o2String;
-        int o1int, o2int;
-        o1String = o1.getAttribute("weight");
-        o2String = o2.getAttribute("weight");
-        try {
-          o1int = Integer.parseInt(o1String);
-        } catch(NumberFormatException nfe) {
-          o1int = DEFAULT_WEIGHT;
-        }
-        try {
-          o2int = Integer.parseInt(o2String);
-        } catch(NumberFormatException nfe) {
-          o2int = DEFAULT_WEIGHT;
-        }
-        return o2int - o1int;
+    Comparator<IConfigurationElement> c = (o1, o2) -> {
+      String o1String, o2String;
+      int o1int, o2int;
+      o1String = o1.getAttribute("weight");
+      o2String = o2.getAttribute("weight");
+      try {
+        o1int = Integer.parseInt(o1String);
+      } catch(NumberFormatException nfe1) {
+        o1int = DEFAULT_WEIGHT;
       }
+      try {
+        o2int = Integer.parseInt(o2String);
+      } catch(NumberFormatException nfe2) {
+        o2int = DEFAULT_WEIGHT;
+      }
+      return o2int - o1int;
     };
     Collections.sort(list, c);
     ArrayList<IProjectConversionEnabler> retList = new ArrayList<IProjectConversionEnabler>();
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectManager.java
index 580e4e9..cce5888 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectManager.java
@@ -22,7 +22,6 @@
 import org.apache.maven.execution.MavenExecutionRequest;
 
 import org.eclipse.m2e.core.embedder.ICallable;
-import org.eclipse.m2e.core.embedder.IMavenExecutionContext;
 import org.eclipse.m2e.core.internal.embedder.MavenExecutionContext;
 import org.eclipse.m2e.core.project.IMavenProjectChangedListener;
 import org.eclipse.m2e.core.project.IMavenProjectFacade;
@@ -119,10 +118,6 @@
   public <V> V execute(final IMavenProjectFacade facade, final ICallable<V> callable, IProgressMonitor monitor)
       throws CoreException {
     MavenExecutionContext context = manager.createExecutionContext(facade.getPom(), facade.getResolverConfiguration());
-    return context.execute(new ICallable<V>() {
-      public V call(IMavenExecutionContext context, IProgressMonitor monitor) throws CoreException {
-        return context.execute(facade.getMavenProject(monitor), callable, monitor);
-      }
-    }, monitor);
+    return context.execute((context1, monitor1) -> context1.execute(facade.getMavenProject(monitor1), callable, monitor1), monitor);
   }
 }