Package org.eclipse.maven.core

Source Code of org.eclipse.maven.core.MavenExecutor

package org.eclipse.maven.core;

import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;

public class MavenExecutor extends Job {
  private MavenCommand mavenCommand;
  private String pomLocation;
 
  public MavenExecutor(MavenCommand command, String pomLocation) {
    super("MavenExecutor");
    this.mavenCommand = command;
    this.pomLocation = pomLocation;
  }

  @Override
  protected IStatus run(IProgressMonitor monitor) {
    OutPutHandler outPutHandler = new OutPutHandler();
    Thread consoleThread = new Thread(outPutHandler);

    MavenCommandRunner runner = new MavenCommandRunner(mavenCommand, pomLocation,
        outPutHandler);
   
    setThread(new Thread(runner));

    try {
      consoleThread.start();
      getThread().start();
      getThread().join();
      outPutHandler.outPutEnd();
     
      IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
      try {
        root.refreshLocal(IWorkspaceRoot.DEPTH_INFINITE, null);
      } catch (CoreException e) {
        e.printStackTrace();
      }
    } catch (InterruptedException iex) {
    }

    return Status.OK_STATUS;
  }
 
  @Override
  protected void canceling() {
    getThread().interrupt();
    super.canceling();
  }
}
TOP

Related Classes of org.eclipse.maven.core.MavenExecutor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.