Index: /home/jwi/workspace/org.maven.ide.eclipse/src/org/maven/ide/eclipse/Maven2Executor.java
===================================================================
--- /home/jwi/workspace/org.maven.ide.eclipse/src/org/maven/ide/eclipse/Maven2Executor.java	(revision 81)
+++ /home/jwi/workspace/org.maven.ide.eclipse/src/org/maven/ide/eclipse/Maven2Executor.java	(working copy)
@@ -7,10 +7,8 @@
 import java.util.List;
 import java.util.Properties;
 
-import org.apache.maven.embedder.MavenEmbedder;
-import org.apache.maven.embedder.MavenEmbedderException;
+import org.apache.maven.embedder.MavenEmbedder2;
 import org.apache.maven.embedder.MavenEmbedderLogger;
-import org.apache.maven.project.MavenProject;
 import org.apache.maven.wagon.events.TransferListener;
 
 import org.maven.ide.eclipse.launch.Maven2LaunchConstants;
@@ -25,7 +23,15 @@
     }
     //final long start = System.currentTimeMillis();
     
-    MavenEmbedder embedder = new MavenEmbedder();
+    ConsoleMavenEmbeddedLogger logger = new ConsoleMavenEmbeddedLogger();
+    if (enableDebug(Maven2PreferenceConstants.P_DEBUG_OUTPUT)) {
+      logger.setThreshold(MavenEmbedderLogger.LEVEL_DEBUG);
+    }
+    else {
+      logger.setThreshold(MavenEmbedderLogger.LEVEL_INFO);
+    }
+
+    MavenEmbedder2 embedder = new MavenEmbedder2(logger);
     try {
       
       ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
@@ -30,20 +36,9 @@
       
       ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
       
-      embedder.setClassLoader(classLoader);
-      embedder.setInteractiveMode( false );
-      
-      ConsoleMavenEmbeddedLogger logger = new ConsoleMavenEmbeddedLogger();
-      if (enableDebug()) {
-        logger.setThreshold(MavenEmbedderLogger.LEVEL_DEBUG);
-      }
-      else {
-        logger.setThreshold(MavenEmbedderLogger.LEVEL_INFO);
-      }
-      embedder.setLogger(logger);
+      embedder.setBatchMode( false );
 
       setPreferences(embedder);
-      embedder.start();
 
       String pomFileName = args[0];
       //System.out.println( "POM: " + pomFileName );
@@ -50,9 +45,6 @@
 
       File pomFile = new File( pomFileName );
 
-      MavenProject mavenProject = embedder.readProjectWithDependencies( pomFile );
-      // mavenProject.getProperties().setProperty("compilerId", "javac");
-
       List goals = new ArrayList();
       for (int i = 1; i < args.length; i++) {
         goals.add(args[i]);
@@ -64,29 +56,25 @@
       
       ConsoleEventMonitor consoleEventMonitor = new ConsoleEventMonitor();
       TransferListener transferListener = new ConsoleTransferMonitor();
+      embedder.setExecutionProperties(properties);
+      embedder.setTransferListener(transferListener);
+      embedder.setEventMonitor(consoleEventMonitor);
 
-      embedder.execute(mavenProject, goals, consoleEventMonitor, transferListener, properties, pomFile.getParentFile() );
+      String[] goalArray = (String[]) goals.toArray(new String[goals.size()]);
+      embedder.execute(goalArray, pomFile.getParentFile());
     } catch (Throwable e) {
       e.printStackTrace(System.out);
     }
-    finally {
-        try {
-          embedder.stop();
-        } 
-        catch(MavenEmbedderException e) {
-          e.printStackTrace(System.out);
-        }
-    }
   }
 
-  private static boolean enableDebug() {
-    return Boolean.valueOf(System.getProperty(Maven2PreferenceConstants.P_DEBUG_OUTPUT)).booleanValue();
+  private static boolean enableDebug(String param) {
+    return Boolean.parseBoolean(System.getProperty(param));
   }
   
-  private static void setPreferences( MavenEmbedder embedder ) {
+  private static void setPreferences( MavenEmbedder2 embedder ) {
     String s = System.getProperty(Maven2PreferenceConstants.P_LOCAL_REPOSITORY_DIR);
     if(s!=null && s.trim().length()>0) {
-      embedder.setLocalRepositoryDirectory(new File(s));
+      embedder.setLocalRepositoryDir(new File(s));
     }
     // TODO what is that?
 //    File f = new File("C:\\Documents and Settings\\maxim\\.m2\\repository");
@@ -94,16 +82,19 @@
 //    embedder.setLocalRepositoryDirectory(f);
     
     s = System.getProperty(Maven2PreferenceConstants.P_GLOBAL_CHECKSUM_POLICY);
-    if(s!=null && s.trim().length()>0) {
-      embedder.setGlobalChecksumPolicy(s);
+    if ("fail".equals(s)) {
+        embedder.setChecksumFailurePolicy(true);
+    } else if ("warn".equals(s)) {
+        embedder.setChecksumWarningPolicy(true);
     }
  
-    embedder.setCheckLatestPluginVersion(
-        Boolean.valueOf(System.getProperty(Maven2PreferenceConstants.P_CHECK_LATEST_PLUGIN_VERSION)).booleanValue());
-    embedder.setOffline(
-        Boolean.valueOf(System.getProperty(Maven2PreferenceConstants.P_OFFLINE)).booleanValue());
-    embedder.setUpdateSnapshots(
-        Boolean.valueOf(System.getProperty(Maven2PreferenceConstants.P_UPDATE_SNAPSHOTS)).booleanValue());
+    embedder.setForcePluginUpdates(asBool(Maven2PreferenceConstants.P_CHECK_LATEST_PLUGIN_VERSION));
+    embedder.setOffline(asBool(Maven2PreferenceConstants.P_OFFLINE));
+    embedder.setUpdateSnapshots(asBool(Maven2PreferenceConstants.P_UPDATE_SNAPSHOTS));
+  }
+
+  private static boolean asBool(String param)
+  {
+    return Boolean.parseBoolean(System.getProperty(param));
   }
-  
 }

