You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2007/09/01 21:23:19 UTC

svn commit: r571862 - in /maven/components/trunk: ./ maven-core/src/main/java/org/apache/maven/ maven-core/src/main/java/org/apache/maven/execution/ maven-embedder/ maven-embedder/src/main/java/org/apache/maven/embedder/ maven-embedder/src/test/java/or...

Author: jvanzyl
Date: Sat Sep  1 12:23:17 2007
New Revision: 571862

URL: http://svn.apache.org/viewvc?rev=571862&view=rev
Log:
o integrate changes made in maven-artifact for non fail-fast and request/result usage in the embedder for
  use in IDE integration to provide as much feedback as possible.

Added:
    maven/components/trunk/maven-lifecycle/src/main/java/org/apache/maven/embedder/
    maven/components/trunk/maven-lifecycle/src/main/java/org/apache/maven/embedder/resolver/
Modified:
    maven/components/trunk/build.properties
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java
    maven/components/trunk/maven-embedder/pom.xml
    maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderBehaviorTest.java
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderCrappySettingsConfigurationTest.java
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java
    maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuildingResult.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
    maven/components/trunk/pom.xml

Modified: maven/components/trunk/build.properties
URL: http://svn.apache.org/viewvc/maven/components/trunk/build.properties?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/build.properties (original)
+++ maven/components/trunk/build.properties Sat Sep  1 12:23:17 2007
@@ -15,9 +15,9 @@
 # specific language governing permissions and limitations
 # under the License.
 
-classworlds.version=1.2-alpha-9
+classworlds.version=1.2-alpha-10
 plexus-active-collections.version=1.0-beta-1
-plexus.version=1.0-alpha-30
+plexus.version=1.0-alpha-32
 plexus-utils.version=1.4.5
 maven-artifact.version=3.0-SNAPSHOT
 commons-cli.version=1.0

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Sat Sep  1 12:23:17 2007
@@ -109,6 +109,10 @@
     // Project execution
     // ----------------------------------------------------------------------
 
+    // project build
+    // artifact resolution
+    // lifecycle execution
+
     public MavenExecutionResult execute( MavenExecutionRequest request )
     {
         request.setStartTime( new Date() );
@@ -121,9 +125,88 @@
 
         dispatcher.dispatchStart( event, request.getBaseDirectory() );
 
-        MavenExecutionResult result;
+        MavenExecutionResult result = new DefaultMavenExecutionResult();
+
+        // old doExecute
+        
+        ProfileManager globalProfileManager = new DefaultProfileManager( container, request.getProperties() );
+
+        globalProfileManager.loadSettingsProfiles( request.getSettings() );
+
+        globalProfileManager.explicitlyActivate( request.getActiveProfiles() );
+
+        globalProfileManager.explicitlyDeactivate( request.getInactiveProfiles() );
+
+        getLogger().info( "Scanning for projects..." );
 
-        result = doExecute( request, dispatcher );
+        boolean foundProjects = true;
+
+        List projects;
+
+        try
+        {
+            projects = getProjects( request, globalProfileManager );
+
+            if ( projects.isEmpty() )
+            {
+                projects.add( getSuperProject( request ) );
+
+                foundProjects = false;
+            }
+        }
+        catch ( Exception e )
+        {
+            result.addException( e );
+
+            return result;
+        }
+
+        ReactorManager reactorManager;
+
+        try
+        {
+            reactorManager = new ReactorManager( projects, request.getReactorFailureBehavior() );
+        }
+        catch ( CycleDetectedException e )
+        {
+            result.addException( new BuildFailureException(
+                "The projects in the reactor contain a cyclic reference: " + e.getMessage(), e ) );
+
+            return result;
+        }
+        catch ( DuplicateProjectException e )
+        {
+            result.addException( new BuildFailureException( e.getMessage(), e ) );
+
+            return result;
+        }
+
+        if ( reactorManager.hasMultipleProjects() )
+        {
+            getLogger().info( "Reactor build order: " );
+
+            for ( Iterator i = reactorManager.getSortedProjects().iterator(); i.hasNext(); )
+            {
+                MavenProject project = (MavenProject) i.next();
+
+                getLogger().info( "  " + project.getName() );
+            }
+        }
+
+        MavenSession session = createSession( request, reactorManager, dispatcher );
+
+        session.setUsingPOMsFromFilesystem( foundProjects );
+
+        try
+        {
+            lifecycleExecutor.execute( session, reactorManager, dispatcher );
+        }
+        catch ( Exception e )
+        {
+            result.addException( new BuildFailureException( e.getMessage(), e ) );
+        }
+
+        // old doExecute
 
         if ( result.hasExceptions() )
         {
@@ -143,8 +226,6 @@
 
         // Either the build was successful, or it was a fail_at_end/fail_never reactor build
 
-        ReactorManager reactorManager = result.getReactorManager();
-
         // TODO: should all the logging be left to the CLI?
         logReactorSummary( reactorManager );
 
@@ -164,8 +245,9 @@
 
                 line();
 
-                return new DefaultMavenExecutionResult(
-                    Collections.singletonList( new MavenExecutionException( "Some builds failed" ) ) );
+                result.addException( new MavenExecutionException( "Some builds failed" ) );
+
+                return result;
             }
             else
             {
@@ -181,7 +263,11 @@
 
         dispatcher.dispatchEnd( event, request.getBaseDirectory() );
 
-        return new DefaultMavenExecutionResult( result.getReactorManager() );
+        result.setTopologicallySortedProjects( reactorManager.getSortedProjects() );
+
+        result.setProject( reactorManager.getTopLevelProject() );
+
+        return result;
     }
 
     /**
@@ -226,90 +312,6 @@
 
             line();
         }
-    }
-
-    private MavenExecutionResult doExecute( MavenExecutionRequest request, EventDispatcher dispatcher )
-    {
-        List executionExceptions = new ArrayList();
-
-        ProfileManager globalProfileManager = new DefaultProfileManager( container, request.getProperties() );
-
-        globalProfileManager.loadSettingsProfiles( request.getSettings() );
-
-        globalProfileManager.explicitlyActivate( request.getActiveProfiles() );
-
-        globalProfileManager.explicitlyDeactivate( request.getInactiveProfiles() );
-
-        getLogger().info( "Scanning for projects..." );
-
-        boolean foundProjects = true;
-
-        List projects;
-
-        try
-        {
-            projects = getProjects( request, globalProfileManager );
-
-            if ( projects.isEmpty() )
-            {
-                projects.add( getSuperProject( request ) );
-
-                foundProjects = false;
-            }
-        }
-        catch ( Exception e )
-        {
-            executionExceptions.add( e );
-
-            return new DefaultMavenExecutionResult( executionExceptions );
-        }
-
-        ReactorManager rm;
-
-        try
-        {
-            rm = new ReactorManager( projects, request.getReactorFailureBehavior() );
-        }
-        catch ( CycleDetectedException e )
-        {
-            executionExceptions.add( new BuildFailureException(
-                "The projects in the reactor contain a cyclic reference: " + e.getMessage(), e ) );
-
-            return new DefaultMavenExecutionResult( executionExceptions );
-        }
-        catch ( DuplicateProjectException e )
-        {
-            executionExceptions.add( new BuildFailureException( e.getMessage(), e ) );
-
-            return new DefaultMavenExecutionResult( executionExceptions );
-        }
-
-        if ( rm.hasMultipleProjects() )
-        {
-            getLogger().info( "Reactor build order: " );
-
-            for ( Iterator i = rm.getSortedProjects().iterator(); i.hasNext(); )
-            {
-                MavenProject project = (MavenProject) i.next();
-
-                getLogger().info( "  " + project.getName() );
-            }
-        }
-
-        MavenSession session = createSession( request, rm, dispatcher );
-
-        session.setUsingPOMsFromFilesystem( foundProjects );
-
-        try
-        {
-            lifecycleExecutor.execute( session, rm, dispatcher );
-        }
-        catch ( Exception e )
-        {
-            executionExceptions.add( new BuildFailureException( e.getMessage(), e ) );
-        }
-
-        return new DefaultMavenExecutionResult( executionExceptions, rm );
     }
 
     private MavenProject getSuperProject( MavenExecutionRequest request )

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java Sat Sep  1 12:23:17 2007
@@ -67,6 +67,8 @@
 
     private boolean useReactor = false;
 
+    private boolean recursive = true;
+    
     private String pomFile;
 
     private String reactorFailureBehavior = REACTOR_FAIL_FAST;
@@ -89,8 +91,6 @@
 
     private String globalChecksumPolicy = CHECKSUM_POLICY_WARN;
 
-    private boolean recursive = true;
-        
     private boolean updateSnapshots = false;
 
     /**

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java Sat Sep  1 12:23:17 2007
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.project.MavenProject;
 
 import java.util.ArrayList;
@@ -28,49 +29,48 @@
 public class DefaultMavenExecutionResult
     implements MavenExecutionResult
 {
-    private List exceptions;
+    private MavenProject project;
+
+    private List topologicallySortedProjects;
 
-    private MavenProject mavenProject;
+    private ArtifactResolutionResult artifactResolutionResult;
 
-    private ReactorManager reactorManager;
+    private List exceptions;
 
-    public DefaultMavenExecutionResult( List exceptions )
+    public MavenExecutionResult setProject( MavenProject project )
     {
-        this.exceptions = exceptions;
+        this.project = project;
+
+        return this;
     }
 
-    public DefaultMavenExecutionResult( ReactorManager reactorManager )
+    public MavenProject getProject()
     {
-        this.reactorManager = reactorManager;
+        return project;
     }
 
-    public DefaultMavenExecutionResult( List exceptions,
-                                        ReactorManager reactorManager )
+    public MavenExecutionResult setTopologicallySortedProjects( List topologicallySortedProjects )
     {
-        this.reactorManager = reactorManager;
-        this.exceptions = exceptions;
+        this.topologicallySortedProjects = topologicallySortedProjects;
+
+        return this;
     }
 
-    public DefaultMavenExecutionResult( MavenProject project,
-                                        List exceptions )
+    public List getTopologicallySortedProjects()
     {
-        this.mavenProject = project;
-        this.exceptions = exceptions;
+        return topologicallySortedProjects;
     }
 
-    public MavenProject getMavenProject()
+    public ArtifactResolutionResult getArtifactResolutionResult()
     {
-        if ( reactorManager != null )
-        {
-            return reactorManager.getTopLevelProject();
-        }
-
-        return mavenProject;
+        return artifactResolutionResult;
     }
 
-    public ReactorManager getReactorManager()
+    public MavenExecutionResult setArtifactResolutionResult( ArtifactResolutionResult artifactResolutionResult )
     {
-        return reactorManager;
+        this.artifactResolutionResult = artifactResolutionResult;
+
+        return this;
     }
 
     public List getExceptions()

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java Sat Sep  1 12:23:17 2007
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.project.MavenProject;
 
 import java.util.List;
@@ -28,9 +29,17 @@
  */
 public interface MavenExecutionResult
 {
-    MavenProject getMavenProject();
+    MavenExecutionResult setProject( MavenProject project );
 
-    ReactorManager getReactorManager();
+    MavenProject getProject();
+
+    MavenExecutionResult setTopologicallySortedProjects( List projects );
+
+    List getTopologicallySortedProjects();
+
+    MavenExecutionResult setArtifactResolutionResult( ArtifactResolutionResult result );
+
+    ArtifactResolutionResult getArtifactResolutionResult();
 
     // for each exception
     // - knowing what artifacts are missing

Modified: maven/components/trunk/maven-embedder/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/pom.xml?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/pom.xml (original)
+++ maven/components/trunk/maven-embedder/pom.xml Sat Sep  1 12:23:17 2007
@@ -29,76 +29,6 @@
   <modelVersion>4.0.0</modelVersion>
   <artifactId>maven-embedder</artifactId>
   <name>Maven Embedder</name>
-  <properties>
-    <bundleVersion>2.1.0.v20070728-1835</bundleVersion>
-  </properties>
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <filtering>true</filtering>
-      </resource>
-    </resources>
-    <plugins>
-      <plugin>
-        <artifactId>shade-maven-plugin</artifactId>
-        <groupId>org.codehaus.mojo</groupId>
-        <version>1.0-alpha-10</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <shadedArtifactAttached>true</shadedArtifactAttached>
-              <createDependencyReducedPom>false</createDependencyReducedPom>
-              <!-- this will work with shade plugin 1.0-alpha-11-SNAP -->
-              <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
-              <transformers>
-               <transformer implementation="org.codehaus.mojo.shade.resource.ComponentsXmlResourceTransformer"/>
-              </transformers>
-              <artifactSet>
-                <excludes>
-                  <exclude>org.codehaus.plexus:plexus-component-api</exclude>                
-                  <exclude>classworlds:classworlds</exclude>
-                  <exclude>junit:junit</exclude>
-                  <exclude>jmock:jmock</exclude>
-                  <exclude>xml-apis:xml-apis</exclude>
-                </excludes>
-              </artifactSet>
-              <relocations>
-                <relocation>
-                  <pattern>org.codehaus.plexus.util</pattern>
-                  <excludes>
-                    <exclude>org.codehaus.plexus.util.xml.Xpp3Dom</exclude>
-                    <exclude>org.codehaus.plexus.util.xml.pull.*</exclude>
-                  </excludes>
-                </relocation>
-              </relocations>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>      
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <version>2.2-beta-1</version>
-        <executions>
-          <execution>
-            <id>create-distro</id>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <configuration>
-              <descriptor>src/main/assembly/bin.xml</descriptor>
-              <finalName>maven-${version}</finalName>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>      
-    </plugins>
-  </build>
   <dependencies>
     <dependency>
       <groupId>org.apache.maven</groupId>
@@ -144,7 +74,7 @@
     <dependency>
       <groupId>org.apache.maven.wagon</groupId>
       <artifactId>wagon-file</artifactId>
-    </dependency>    
+    </dependency>
   </dependencies>
   <distributionManagement>
     <site>
@@ -167,7 +97,7 @@
           <plugin>
             <artifactId>shade-maven-plugin</artifactId>
             <groupId>org.codehaus.mojo</groupId>
-            <version>1.0-alpha-10</version>
+            <version>1.0-alpha-12-SNAPSHOT</version>
             <executions>
               <execution>
                 <phase>package</phase>
@@ -175,12 +105,78 @@
                   <goal>shade</goal>
                 </goals>
                 <configuration>
-                  <shadedArtifactAttached>true</shadedArtifactAttached>
+                  <!-- The IDEA folks don't want to put SNAPSHOT libs in their projects even though they are -->
+                  <finalName>maven-embedder-idea-2.1</finalName>
+                  <createDependencyReducedPom>false</createDependencyReducedPom>
+                  <!-- this will work with shade plugin 1.0-alpha-11-SNAP -->
+                  <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
+                  <transformers>
+                    <transformer implementation="org.codehaus.mojo.shade.resource.ComponentsXmlResourceTransformer"/>
+                  </transformers>
+                  <artifactSet>
+                    <excludes>
+                      <exclude>org.codehaus.plexus:plexus-component-api</exclude>
+                      <exclude>classworlds:classworlds</exclude>
+                      <exclude>junit:junit</exclude>
+                      <exclude>jmock:jmock</exclude>
+                      <exclude>xml-apis:xml-apis</exclude>
+                      <!-- So this is required for the IDEA embedder which already has its own copy of JDOM -->
+                      <exclude>jdom:jdom</exclude>
+                      <exclude>jtidy:jtidy</exclude>
+                    </excludes>
+                  </artifactSet>
+                  <relocations>
+                    <relocation>
+                      <pattern>org.codehaus.plexus.util</pattern>
+                      <excludes>
+                        <exclude>org.codehaus.plexus.util.xml.Xpp3Dom</exclude>
+                        <exclude>org.codehaus.plexus.util.xml.pull.*</exclude>
+                      </excludes>
+                    </relocation>
+                  </relocations>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <!--
+       |
+       | This profile is specifically for creating an embedder that can be used for Eclipse integration. We need to
+       | need a single embedder JAR that looks like an OSGi bundle.
+       |
+       -->
+      <id>tycho</id>
+      <properties>
+        <bundleVersion>2.1.0.v20070728-1835</bundleVersion>
+      </properties>
+      <build>
+        <resources>
+          <resource>
+            <directory>src/main/resources</directory>
+            <filtering>true</filtering>
+          </resource>
+        </resources>
+        <plugins>
+          <plugin>
+            <artifactId>shade-maven-plugin</artifactId>
+            <groupId>org.codehaus.mojo</groupId>
+            <version>1.0-alpha-11-SNAPSHOT</version>
+            <executions>
+              <execution>
+                <phase>package</phase>
+                <goals>
+                  <goal>shade</goal>
+                </goals>
+                <configuration>
+                  <shadedArtifactId>maven-embedder-idea</shadedArtifactId>
                   <createDependencyReducedPom>false</createDependencyReducedPom>
                   <!-- this will work with shade plugin 1.0-alpha-11-SNAP -->
                   <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
                   <transformers>
-                   <transformer implementation="org.codehaus.mojo.shade.resource.ComponentsXmlResourceTransformer"/>
+                    <transformer implementation="org.codehaus.mojo.shade.resource.ComponentsXmlResourceTransformer"/>
                   </transformers>
                   <artifactSet>
                     <excludes>
@@ -233,7 +229,7 @@
                   <!-- this will work with shade plugin 1.0-alpha-11-SNAP -->
                   <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
                   <transformers>
-                   <transformer implementation="org.codehaus.mojo.shade.resource.ComponentsXmlResourceTransformer"/>
+                    <transformer implementation="org.codehaus.mojo.shade.resource.ComponentsXmlResourceTransformer"/>
                   </transformers>
                   <artifactSet>
                     <excludes>
@@ -253,6 +249,23 @@
                       </excludes>
                     </relocation>
                   </relocations>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <version>2.2-beta-1</version>
+            <executions>
+              <execution>
+                <id>create-distro</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>single</goal>
+                </goals>
+                <configuration>
+                  <descriptor>src/main/assembly/bin.xml</descriptor>
+                  <finalName>maven-${version}</finalName>
                 </configuration>
               </execution>
             </executions>

Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Sat Sep  1 12:23:17 2007
@@ -57,6 +57,7 @@
 import org.apache.maven.profiles.ProfileManager;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.MavenProjectBuildingResult;
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.settings.MavenSettingsBuilder;
 import org.apache.maven.settings.Settings;
@@ -419,6 +420,8 @@
      */
     public MavenExecutionResult readProjectWithDependencies( MavenExecutionRequest request )
     {
+        MavenExecutionResult result = new DefaultMavenExecutionResult();
+
         MavenProject project = null;
 
         try
@@ -433,16 +436,37 @@
             //is this necessary in this context, I doubt it..mkleint
             artifactHandlerManager.addHandlers( handlers );
 
-            project = mavenProjectBuilder.buildWithDependencies( new File( request.getPomFile() ),
-                                                                 request.getLocalRepository(), profileManager,
-                                                                 request.getTransferListener() );
         }
         catch ( Exception e )
         {
-            return new DefaultMavenExecutionResult( project, Collections.singletonList( e ) );
+            // At this point real project building, and artifact resolution have not occured.
+
+            result.addException( e );
+
+            return result;
         }
 
-        return new DefaultMavenExecutionResult( project, Collections.EMPTY_LIST );
+        MavenProjectBuildingResult r = null;
+
+        try
+        {
+            r = mavenProjectBuilder.buildWithDependencies(
+                new File( request.getPomFile() ),
+                request.getLocalRepository(),
+                profileManager,
+                request.getTransferListener() );
+        }
+        catch ( ProjectBuildingException e )
+        {
+
+        }
+
+        result.setProject( r.getProject() );
+
+        result.setArtifactResolutionResult( r.getArtifactResolutionResult() );
+
+
+        return result;
     }
 
     // ----------------------------------------------------------------------
@@ -629,7 +653,7 @@
             try
             {
                 settings = settingsBuilder.buildSettings( configuration.getUserSettingsFile(),
-                                                          configuration.getGlobalSettingsFile() );
+                    configuration.getGlobalSettingsFile() );
             }
             catch ( Exception e )
             {
@@ -873,7 +897,7 @@
             new ArtifactRepositoryPolicy( true, updatePolicyFlag, checksumPolicyFlag );
 
         return artifactRepositoryFactory.createArtifactRepository( repositoryId, url, defaultArtifactRepositoryLayout,
-                                                                   snapshotsPolicy, releasesPolicy );
+            snapshotsPolicy, releasesPolicy );
     }
 
     // ----------------------------------------------------------------------------
@@ -905,7 +929,11 @@
             }
             catch ( MavenEmbedderException e )
             {
-                return new DefaultMavenExecutionResult( Collections.singletonList( e ) );
+                MavenExecutionResult result = new DefaultMavenExecutionResult();
+
+                result.addException( e );
+
+                return result;
             }
 
             return maven.execute( request );

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderBehaviorTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderBehaviorTest.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderBehaviorTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderBehaviorTest.java Sat Sep  1 12:23:17 2007
@@ -40,7 +40,7 @@
 
         ConfigurationValidationResult result = MavenEmbedder.validateConfiguration( configuration );
 
-        assertTrue( result.isValid() );
+         assertTrue( result.isValid() );
 
         MavenEmbedder maven = new MavenEmbedder( configuration );
 

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderCrappySettingsConfigurationTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderCrappySettingsConfigurationTest.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderCrappySettingsConfigurationTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderCrappySettingsConfigurationTest.java Sat Sep  1 12:23:17 2007
@@ -58,9 +58,9 @@
 
         MavenExecutionResult result = embedder.execute( request );
 
-        assertNotNull( result.getMavenProject() );
+        assertNotNull( result.getProject() );
 
-        MavenProject project = result.getMavenProject();
+        MavenProject project = result.getProject();
 
         String environment = project.getProperties().getProperty( "environment" );
 

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java Sat Sep  1 12:23:17 2007
@@ -66,7 +66,7 @@
             // You may want to inspect the project after the execution.
             // ----------------------------------------------------------------------------
 
-            MavenProject project = result.getMavenProject();
+            MavenProject project = result.getProject();
 
             // Do something with the project
 

Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java Sat Sep  1 12:23:17 2007
@@ -126,7 +126,7 @@
 
         assertNoExceptions( result );
 
-        MavenProject project = result.getMavenProject();
+        MavenProject project = result.getProject();
 
         assertEquals( "embedder-test-project", project.getArtifactId() );
 
@@ -153,7 +153,7 @@
 
         assertNoExceptions( result );
 
-        MavenProject project = result.getMavenProject();
+        MavenProject project = result.getProject();
 
         assertEquals( "embedder-test-project", project.getArtifactId() );
 
@@ -181,7 +181,7 @@
 
         assertNoExceptions( r0 );
 
-        MavenProject p0 = r0.getMavenProject();
+        MavenProject p0 = r0.getProject();
 
         assertNull( p0.getProperties().getProperty( "embedderProfile" ) );
 
@@ -199,7 +199,7 @@
 
         MavenExecutionResult r1 = maven.execute( request );
 
-        MavenProject p1 = r1.getMavenProject();
+        MavenProject p1 = r1.getProject();
 
         assertEquals( "true", p1.getProperties().getProperty( "embedderProfile" ) );
 
@@ -245,7 +245,7 @@
 
         assertNoExceptions( result );
 
-        MavenProject project = result.getMavenProject();
+        MavenProject project = result.getProject();
 
         Artifact p = (Artifact) project.getPluginArtifactMap().get( plugin.getKey() );
         assertEquals( "2.2", p.getVersion() );
@@ -263,7 +263,7 @@
 
         assertNoExceptions( result );
 
-        project = result.getMavenProject();
+        project = result.getProject();
 
         p = (Artifact) project.getPluginArtifactMap().get( plugin.getKey() );
         assertEquals( "2.3", p.getVersion() );
@@ -321,9 +321,9 @@
 
         assertNoExceptions( result );
 
-        assertEquals( "org.apache.maven", result.getMavenProject().getGroupId() );
+        assertEquals( "org.apache.maven", result.getProject().getGroupId() );
 
-        Set artifacts = result.getMavenProject().getArtifacts();
+        Set artifacts = result.getProject().getArtifacts();
 
         assertEquals( 1, artifacts.size() );
 
@@ -343,7 +343,7 @@
         assertNoExceptions( result );
 
         // sources, test sources, and the junit jar..
-        assertEquals( 3, result.getMavenProject().getTestClasspathElements().size() );
+        assertEquals( 3, result.getProject().getTestClasspathElements().size() );
     }
 
     public void testProjectReadingWithDistributionStatus()
@@ -361,9 +361,9 @@
 
         assertNoExceptions( result );
 
-        assertEquals( "org.apache.maven", result.getMavenProject().getGroupId() );
+        assertEquals( "org.apache.maven", result.getProject().getGroupId() );
 
-        assertEquals( "deployed", result.getMavenProject().getDistributionManagement().getStatus() );
+        assertEquals( "deployed", result.getProject().getDistributionManagement().getStatus() );
     }
 
     // ----------------------------------------------------------------------------

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Sat Sep  1 12:23:17 2007
@@ -24,13 +24,14 @@
 import org.apache.maven.artifact.ArtifactStatus;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.InvalidRepositoryException;
-import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.manager.WagonManager;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter;
@@ -195,7 +196,9 @@
     // MavenProjectBuilder Implementation
     // ----------------------------------------------------------------------
 
-    public MavenProject build( File projectDescriptor, ArtifactRepository localRepository, ProfileManager profileManager )
+    public MavenProject build( File projectDescriptor,
+                               ArtifactRepository localRepository,
+                               ProfileManager profileManager )
         throws ProjectBuildingException
     {
         return buildFromSourceFileInternal( projectDescriptor, localRepository, profileManager, true );
@@ -253,7 +256,8 @@
         return buildStandaloneSuperProject( localRepository, profileManager );
     }
 
-    public MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository, ProfileManager profileManager )
+    public MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository,
+                                                     ProfileManager profileManager )
         throws ProjectBuildingException
     {
         Model superModel = getSuperModel();
@@ -273,7 +277,7 @@
 
         String projectId = safeVersionlessKey( STANDALONE_SUPERPOM_GROUPID, STANDALONE_SUPERPOM_ARTIFACTID );
 
-        project.setManagedVersionMap(createManagedVersionMap(projectId, superModel.getDependencyManagement(), null));
+        project.setManagedVersionMap( createManagedVersionMap( projectId, superModel.getDependencyManagement(), null ) );
 
         List activeProfiles = profileAdvisor.applyActivatedProfiles( superModel, null, profileManager.getExplicitlyActivatedIds(), profileManager.getExplicitlyDeactivatedIds() );
         List activeExternalProfiles = profileAdvisor.applyActivatedExternalProfiles( superModel, null, profileManager );
@@ -313,24 +317,22 @@
     }
 
 
-    public MavenProject buildWithDependencies( File projectDescriptor,
-                                               ArtifactRepository localRepository,
-                                               ProfileManager profileManager )
-        throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException
+    public MavenProjectBuildingResult buildWithDependencies( File projectDescriptor,
+                                                             ArtifactRepository localRepository,
+                                                             ProfileManager profileManager )
+        throws ProjectBuildingException
     {
         return buildWithDependencies( projectDescriptor, localRepository, profileManager, null );
     }
 
     // note:jvz This was added for the embedder.
 
-    /**
-     * @todo move to metadatasource itself?
-     */
-    public MavenProject buildWithDependencies( File projectDescriptor,
-                                               ArtifactRepository localRepository,
-                                               ProfileManager profileManager,
-                                               TransferListener transferListener )
-        throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException
+    /** @todo move to metadatasource itself? */
+    public MavenProjectBuildingResult buildWithDependencies( File projectDescriptor,
+                                                             ArtifactRepository localRepository,
+                                                             ProfileManager profileManager,
+                                                             TransferListener transferListener )
+        throws ProjectBuildingException
     {
         MavenProject project = build( projectDescriptor, localRepository, profileManager, false );
 
@@ -362,8 +364,8 @@
         catch ( InvalidDependencyVersionException e )
         {
             throw new ProjectBuildingException( projectId,
-                                                "Unable to build project due to an invalid dependency version: " +
-                                                    e.getMessage(), e );
+                "Unable to build project due to an invalid dependency version: " +
+                    e.getMessage(), e );
         }
 
         if ( transferListener != null )
@@ -371,15 +373,19 @@
             wagonManager.setDownloadMonitor( transferListener );
         }
 
-        ArtifactResolutionResult result = artifactResolver.resolveTransitively( project.getDependencyArtifacts(),
-                                                                                projectArtifact, managedVersions,
-                                                                                localRepository,
-                                                                                project.getRemoteArtifactRepositories(),
-                                                                                artifactMetadataSource );
+        ArtifactResolutionRequest request = new ArtifactResolutionRequest()
+            .setArtifact( projectArtifact )
+            .setArtifactDependencies( project.getDependencyArtifacts() )
+            .setLocalRepository( localRepository )
+            .setRemoteRepostories( project.getRemoteArtifactRepositories() )
+            .setManagedVersionMap( managedVersions )
+            .setMetadataSource( artifactMetadataSource );
+
+        ArtifactResolutionResult result = artifactResolver.resolve( request );
 
         project.setArtifacts( result.getArtifacts() );
 
-        return project;
+        return new MavenProjectBuildingResult( project, result );
     }
 
     // ----------------------------------------------------------------------
@@ -398,17 +404,19 @@
             catch ( ComponentLookupException e )
             {
                 throw new ProjectBuildingException( "all", "Cannot lookup metadata source for building the project.",
-                                                    e );
+                    e );
             }
         }
     }
 
-    private Map createManagedVersionMap( String projectId, DependencyManagement dependencyManagement, MavenProject parent )
+    private Map createManagedVersionMap( String projectId,
+                                         DependencyManagement dependencyManagement,
+                                         MavenProject parent )
         throws ProjectBuildingException
     {
         Map map = null;
         List deps;
-        if ( ( dependencyManagement != null ) && ( (deps = dependencyManagement.getDependencies()) != null ) && ( deps.size() > 0 ))
+        if ( ( dependencyManagement != null ) && ( ( deps = dependencyManagement.getDependencies() ) != null ) && ( deps.size() > 0 ) )
         {
             map = new ManagedVersionMap( map );
 
@@ -425,9 +433,9 @@
                 {
                     VersionRange versionRange = VersionRange.createFromVersionSpec( d.getVersion() );
                     Artifact artifact = artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(),
-                                                                                  versionRange, d.getType(),
-                                                                                  d.getClassifier(), d.getScope(),
-                                                                                  d.isOptional() );
+                        versionRange, d.getType(),
+                        d.getClassifier(), d.getScope(),
+                        d.isOptional() );
                     if ( getLogger().isDebugEnabled() )
                     {
                         getLogger().debug( "  " + artifact );
@@ -477,18 +485,18 @@
         // TODO: Remove this once we have build-context stuff working...
         if ( !container.getContext().contains( "SystemProperties" ) )
         {
-            container.addContextValue("SystemProperties", System.getProperties());
+            container.addContextValue( "SystemProperties", System.getProperties() );
         }
 
         Model model = readModel( "unknown", projectDescriptor, STRICT_MODEL_PARSING );
 
         MavenProject project = buildInternal( projectDescriptor.getAbsolutePath(),
-                                              model,
-                                              localRepository,
-                                              buildArtifactRepositories( getSuperModel() ),
-                                              projectDescriptor,
-                                              profileManager,
-                                              STRICT_MODEL_PARSING );
+            model,
+            localRepository,
+            buildArtifactRepositories( getSuperModel() ),
+            projectDescriptor,
+            profileManager,
+            STRICT_MODEL_PARSING );
 
         if ( checkDistributionManagementStatus )
         {
@@ -497,7 +505,7 @@
                 String projectId = safeVersionlessKey( project.getGroupId(), project.getArtifactId() );
 
                 throw new ProjectBuildingException( projectId,
-                                                    "Invalid project file: distribution status must not be specified for a project outside of the repository" );
+                    "Invalid project file: distribution status must not be specified for a project outside of the repository" );
             }
         }
 
@@ -520,13 +528,13 @@
         else
         {
             getLogger().warn( "Attempting to build MavenProject instance for Artifact (" + artifact.getGroupId() + ":"
-                              + artifact.getArtifactId() + ":" + artifact.getVersion() + ") of type: "
-                              + artifact.getType() + "; constructing POM artifact instead." );
+                + artifact.getArtifactId() + ":" + artifact.getVersion() + ") of type: "
+                + artifact.getType() + "; constructing POM artifact instead." );
 
             projectArtifact = artifactFactory.createProjectArtifact( artifact.getGroupId(),
-                                                                     artifact.getArtifactId(),
-                                                                     artifact.getVersion(),
-                                                                     artifact.getScope() );
+                artifact.getArtifactId(),
+                artifact.getVersion(),
+                artifact.getScope() );
         }
 
         Model model;
@@ -589,7 +597,8 @@
     }
 
     private void checkStatusAndUpdate( Artifact projectArtifact,
-                                       ArtifactStatus status, File file,
+                                       ArtifactStatus status,
+                                       File file,
                                        List remoteArtifactRepositories,
                                        ArtifactRepository localRepository )
         throws ArtifactNotFoundException
@@ -709,9 +718,9 @@
         LinkedList lineage = new LinkedList();
 
         LinkedHashSet aggregatedRemoteWagonRepositories = collectInitialRepositories( model, superModel,
-                                                                                      parentSearchRepositories,
-                                                                                      projectDir, explicitlyActive,
-                                                                                      explicitlyInactive );
+            parentSearchRepositories,
+            projectDir, explicitlyActive,
+            explicitlyInactive );
 
         Model originalModel = ModelUtils.cloneModel( model );
 
@@ -719,13 +728,13 @@
         try
         {
             project = assembleLineage( model,
-                                       lineage,
-                                       localRepository,
-                                       projectDir,
-                                       parentSearchRepositories,
-                                       aggregatedRemoteWagonRepositories,
-                                       externalProfileManager,
-                                       strict );
+                lineage,
+                localRepository,
+                projectDir,
+                parentSearchRepositories,
+                aggregatedRemoteWagonRepositories,
+                externalProfileManager,
+                strict );
         }
         catch ( InvalidRepositoryException e )
         {
@@ -827,7 +836,7 @@
         }
 
         project.setManagedVersionMap( createManagedVersionMap( projectId, project.getDependencyManagement(),
-                                                               project.getParent() ) );
+            project.getParent() ) );
 
         return project;
     }
@@ -841,8 +850,12 @@
      * 4. superModel repositories
      * 5. parentSearchRepositories
      */
-    private LinkedHashSet collectInitialRepositories( Model model, Model superModel, List parentSearchRepositories,
-                                                      File projectDir, List explicitlyActive, List explicitlyInactive )
+    private LinkedHashSet collectInitialRepositories( Model model,
+                                                      Model superModel,
+                                                      List parentSearchRepositories,
+                                                      File projectDir,
+                                                      List explicitlyActive,
+                                                      List explicitlyInactive )
         throws ProjectBuildingException
     {
         LinkedHashSet collected = new LinkedHashSet();
@@ -859,13 +872,16 @@
         return collected;
     }
 
-    private void collectInitialRepositoriesFromModel( LinkedHashSet collected, Model model, File projectDir,
-                                                      List explicitlyActive, List explicitlyInactive )
+    private void collectInitialRepositoriesFromModel( LinkedHashSet collected,
+                                                      Model model,
+                                                      File projectDir,
+                                                      List explicitlyActive,
+                                                      List explicitlyInactive )
         throws ProjectBuildingException
     {
         Set reposFromProfiles = profileAdvisor.getArtifactRepositoriesFromActiveProfiles( model, projectDir,
-                                                                                          explicitlyActive,
-                                                                                          explicitlyInactive );
+            explicitlyActive,
+            explicitlyInactive );
 
         if ( ( reposFromProfiles != null ) && !reposFromProfiles.isEmpty() )
         {
@@ -882,13 +898,14 @@
             catch ( InvalidRepositoryException e )
             {
                 throw new ProjectBuildingException( safeVersionlessKey( model.getGroupId(), model.getArtifactId() ),
-                                                    "Failed to construct ArtifactRepository instances for repositories declared in: "
-                                                        + model.getId(), e );
+                    "Failed to construct ArtifactRepository instances for repositories declared in: "
+                        + model.getId(), e );
             }
         }
     }
 
-    private String safeVersionlessKey( String groupId, String artifactId )
+    private String safeVersionlessKey( String groupId,
+                                       String artifactId )
     {
         String gid = groupId;
 
@@ -981,7 +998,7 @@
 
         // TODO: maybe not strictly correct, while we should enfore that packaging has a type handler of the same id, we don't
         Artifact projectArtifact = artifactFactory.createBuildArtifact( project.getGroupId(), project.getArtifactId(),
-                                                                        project.getVersion(), project.getPackaging() );
+            project.getVersion(), project.getPackaging() );
         project.setArtifact( projectArtifact );
 
         project.setPluginArtifactRepositories( mavenTools.buildArtifactRepositories( model.getPluginRepositories() ) );
@@ -1018,7 +1035,7 @@
         if ( validationResult.getMessageCount() > 0 )
         {
             throw new InvalidProjectModelException( projectId, pomLocation, "Failed to validate POM",
-                                                    validationResult );
+                validationResult );
         }
 
         project.setRemoteArtifactRepositories(
@@ -1088,7 +1105,7 @@
             projectContext.store( buildContextManager );
 
             project.setActiveProfiles( profileAdvisor.applyActivatedProfiles( currentModel, projectDir, explicitlyActive,
-                                                                              explicitlyInactive ) );
+                explicitlyInactive ) );
 
             if ( lastProject != null )
             {
@@ -1121,7 +1138,9 @@
         return result;
     }
 
-    private Model readModel( String projectId, File file, boolean strict )
+    private Model readModel( String projectId,
+                             File file,
+                             boolean strict )
         throws ProjectBuildingException
     {
         Reader reader = null;
@@ -1133,7 +1152,7 @@
         catch ( FileNotFoundException e )
         {
             throw new ProjectBuildingException( projectId,
-                                                "Could not find the model file '" + file.getAbsolutePath() + "'.", e );
+                "Could not find the model file '" + file.getAbsolutePath() + "'.", e );
         }
         catch ( IOException e )
         {
@@ -1146,7 +1165,10 @@
         }
     }
 
-    private Model readModel( String projectId, String pomLocation, Reader reader, boolean strict )
+    private Model readModel( String projectId,
+                             String pomLocation,
+                             Reader reader,
+                             boolean strict )
         throws IOException, InvalidProjectModelException
     {
         StringWriter sw = new StringWriter();
@@ -1169,11 +1191,13 @@
         catch ( XmlPullParserException e )
         {
             throw new InvalidProjectModelException( projectId, pomLocation,
-                                                    "Parse error reading POM. Reason: " + e.getMessage(), e );
+                "Parse error reading POM. Reason: " + e.getMessage(), e );
         }
     }
 
-    private Model readModel( String projectId, URL url, boolean strict )
+    private Model readModel( String projectId,
+                             URL url,
+                             boolean strict )
         throws ProjectBuildingException
     {
         InputStreamReader reader = null;
@@ -1193,12 +1217,15 @@
         }
     }
 
-    private static String createCacheKey( String groupId, String artifactId, String version )
+    private static String createCacheKey( String groupId,
+                                          String artifactId,
+                                          String version )
     {
         return groupId + ":" + artifactId + ":" + version;
     }
 
-    protected Set createPluginArtifacts( String projectId, List plugins )
+    protected Set createPluginArtifacts( String projectId,
+                                         List plugins )
         throws ProjectBuildingException
     {
         Set pluginArtifacts = new HashSet();
@@ -1221,7 +1248,7 @@
             try
             {
                 artifact = artifactFactory.createPluginArtifact( p.getGroupId(), p.getArtifactId(),
-                                                                 VersionRange.createFromVersionSpec( version ) );
+                    VersionRange.createFromVersionSpec( version ) );
             }
             catch ( InvalidVersionSpecificationException e )
             {
@@ -1240,7 +1267,8 @@
     }
 
     // TODO: share with createPluginArtifacts?
-    protected Set createReportArtifacts( String projectId, List reports )
+    protected Set createReportArtifacts( String projectId,
+                                         List reports )
         throws ProjectBuildingException
     {
         Set pluginArtifacts = new HashSet();
@@ -1265,7 +1293,7 @@
                 try
                 {
                     artifact = artifactFactory.createPluginArtifact( p.getGroupId(), p.getArtifactId(),
-                                                                     VersionRange.createFromVersionSpec( version ) );
+                        VersionRange.createFromVersionSpec( version ) );
                 }
                 catch ( InvalidVersionSpecificationException e )
                 {
@@ -1285,7 +1313,8 @@
     }
 
     // TODO: share with createPluginArtifacts?
-    protected Set createExtensionArtifacts( String projectId, List extensions )
+    protected Set createExtensionArtifacts( String projectId,
+                                            List extensions )
         throws ProjectBuildingException
     {
         Set extensionArtifacts = new HashSet();

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java Sat Sep  1 12:23:17 2007
@@ -71,13 +71,13 @@
     // These methods are used by the MavenEmbedder
     // ----------------------------------------------------------------------
 
-    MavenProject buildWithDependencies( File project, ArtifactRepository localRepository,
+    MavenProjectBuildingResult buildWithDependencies( File project, ArtifactRepository localRepository,
                                         ProfileManager globalProfileManager, TransferListener transferListener )
-        throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException;
+        throws ProjectBuildingException;
 
-    MavenProject buildWithDependencies( File project, ArtifactRepository localRepository,
+    MavenProjectBuildingResult buildWithDependencies( File project, ArtifactRepository localRepository,
                                         ProfileManager globalProfileManager )
-        throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException;
+        throws ProjectBuildingException;
 
     // ----------------------------------------------------------------------
     //

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuildingResult.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuildingResult.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuildingResult.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuildingResult.java Sat Sep  1 12:23:17 2007
@@ -19,63 +19,34 @@
  * under the License.
  */
 
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.project.validation.ModelValidationResult;
 
 /**
- * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @author Jason van Zyl
  * @version $Id$
  */
 public class MavenProjectBuildingResult
 {
-    /** */
     private MavenProject project;
 
-    /** */
-    private ModelValidationResult modelValidationResult;
+    private ArtifactResolutionResult artifactResolutionResult;
 
-    /** */
-    private boolean successful;
-
-    /**
-     * @param project
-     */
-    public MavenProjectBuildingResult( MavenProject project )
+    public MavenProjectBuildingResult( MavenProject project,
+                                       ArtifactResolutionResult artifactResolutionResult )
     {
         this.project = project;
 
-        successful = true;
-    }
-
-    public MavenProjectBuildingResult( ModelValidationResult modelValidationResult )
-    {
-        this.modelValidationResult = modelValidationResult;
-
-        successful = modelValidationResult.getMessageCount() == 0;
-    }
-
-    /**
-     * @return Returns the modelValidationResult.
-     */
-    public ModelValidationResult getModelValidationResult()
-    {
-        return modelValidationResult;
+        this.artifactResolutionResult = artifactResolutionResult;
     }
 
-    /**
-     * @return Returns the project.
-     */
     public MavenProject getProject()
     {
         return project;
     }
 
-    /**
-     * Returns true if the project is valid.
-     *
-     * @return Returns true if the project is valid.
-     */
-    public boolean isSuccessful()
+    public ArtifactResolutionResult getArtifactResolutionResult()
     {
-        return successful;
+        return artifactResolutionResult;
     }
 }

Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java Sat Sep  1 12:23:17 2007
@@ -103,7 +103,7 @@
     protected MavenProject getProjectWithDependencies( File pom )
         throws Exception
     {
-        return projectBuilder.buildWithDependencies( pom, getLocalRepository(), null );
+        return projectBuilder.buildWithDependencies( pom, getLocalRepository(), null ).getProject();
     }
 
     protected MavenProject getProject( File pom )

Modified: maven/components/trunk/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/pom.xml?rev=571862&r1=571861&r2=571862&view=diff
==============================================================================
--- maven/components/trunk/pom.xml (original)
+++ maven/components/trunk/pom.xml Sat Sep  1 12:23:17 2007
@@ -148,7 +148,7 @@
       <dependency>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-classworlds</artifactId>
-        <version>[1.2-alpha-9]</version>
+        <version>1.2-alpha-10</version>
       </dependency>
       <dependency>
         <groupId>org.codehaus.plexus</groupId>