Author: brett
Date: Fri Apr 22 02:01:47 2005
New Revision: 164205

URL: http://svn.apache.org/viewcvs?rev=164205&view=rev
Log:
decouple project stuff from maven-core

Modified:
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
    
maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenTestCase.java

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=164205&r1=164204&r2=164205&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 Fri Apr 22 02:01:47 2005
@@ -17,8 +17,8 @@
  */
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.MavenMetadataSource;
 import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
@@ -109,20 +109,40 @@
     // MavenProjectBuilder Implementation
     // ----------------------------------------------------------------------
 
-    public MavenProject buildWithDependencies( File projectDescriptor, 
ArtifactRepository localRepository )
-        throws ProjectBuildingException
+    public MavenProject buildWithDependencies( File projectDescriptor, 
ArtifactRepository localRepository,
+                                               ArtifactMetadataSource 
artifactMetadataSource )
+        throws ProjectBuildingException, ArtifactResolutionException
     {
-        return buildFromSourceFile( projectDescriptor, localRepository, true );
+        MavenProject project = buildFromSourceFile( projectDescriptor, 
localRepository );
+
+        // 
----------------------------------------------------------------------
+        // Typically when the project builder is being used from maven proper
+        // the transitive dependencies will not be resolved here because this
+        // requires a lot of work when we may only be interested in running
+        // something simple like 'm2 clean'. So the artifact collector is used
+        // in the dependency resolution phase if it is required by any of the
+        // goals being executed. But when used as a component in another piece
+        // of code people may just want to build maven projects and have the
+        // dependencies resolved for whatever reason: this is why we keep
+        // this snippet of code here.
+        // 
----------------------------------------------------------------------
+
+        ArtifactResolutionResult result = 
artifactResolver.resolveTransitively( project.getArtifacts(),
+                                                                               
 project.getRemoteArtifactRepositories(),
+                                                                               
 localRepository,
+                                                                               
 artifactMetadataSource );
+
+        project.addArtifacts( result.getArtifacts().values(), artifactFactory 
);
+        return project;
     }
 
     public MavenProject build( File projectDescriptor, ArtifactRepository 
localRepository )
         throws ProjectBuildingException
     {
-        return buildFromSourceFile( projectDescriptor, localRepository, false 
);
+        return buildFromSourceFile( projectDescriptor, localRepository );
     }
 
-    private MavenProject buildFromSourceFile( File projectDescriptor, 
ArtifactRepository localRepository,
-                                              boolean resolveDependencies )
+    private MavenProject buildFromSourceFile( File projectDescriptor, 
ArtifactRepository localRepository )
         throws ProjectBuildingException
     {
         Model model = readModel( projectDescriptor );
@@ -130,7 +150,7 @@
         // Always cache files in the source tree over those in the repository
         modelCache.put( createCacheKey( model.getGroupId(), 
model.getArtifactId(), model.getVersion() ), model );
 
-        MavenProject project = build( model, localRepository, 
resolveDependencies );
+        MavenProject project = build( model, localRepository );
 
         // Only translate the base directory for files in the source tree
         pathTranslator.alignToBaseDirectory( project.getModel(), 
projectDescriptor );
@@ -153,7 +173,7 @@
 
         Model model = findModelFromRepository( artifact, 
remoteArtifactRepositories, localRepository );
 
-        return build( model, localRepository, false );
+        return build( model, localRepository );
     }
 
     private Model findModelFromRepository( Artifact artifact, List 
remoteArtifactRepositories,
@@ -176,7 +196,7 @@
         return model;
     }
 
-    private MavenProject build( Model model, ArtifactRepository 
localRepository, boolean resolveDependencies )
+    private MavenProject build( Model model, ArtifactRepository 
localRepository )
         throws ProjectBuildingException
     {
         Model superModel = getSuperModel();
@@ -200,18 +220,12 @@
 
         try
         {
-            project = processProjectLogic( project, localRepository, 
aggregatedRemoteWagonRepositories,
-                                           resolveDependencies );
+            project = processProjectLogic( project, 
aggregatedRemoteWagonRepositories );
         }
         catch ( ModelInterpolationException e )
         {
             throw new ProjectBuildingException( "Error building project: " + 
model.getId(), e );
         }
-        catch ( ArtifactResolutionException e )
-        {
-            throw new ProjectBuildingException( "Error building project: " + 
model.getId(), e );
-        }
-
         return project;
     }
 
@@ -222,9 +236,8 @@
      * the resolved source roots, etc for the parent - that occurs for the 
parent when it is constructed independently
      * and projects are not cached or reused
      */
-    private MavenProject processProjectLogic( MavenProject project, 
ArtifactRepository localRepository,
-                                              List remoteRepositories, boolean 
resolveDependencies )
-        throws ProjectBuildingException, ModelInterpolationException, 
ArtifactResolutionException
+    private MavenProject processProjectLogic( MavenProject project, List 
remoteRepositories )
+        throws ProjectBuildingException, ModelInterpolationException
     {
         Model model = project.getModel();
         String key = createCacheKey( model.getGroupId(), 
model.getArtifactId(), model.getVersion() );
@@ -255,30 +268,6 @@
         project.setRemoteArtifactRepositories( remoteRepositories );
         project.setArtifacts( createArtifacts( project.getDependencies() ) );
 
-        // 
----------------------------------------------------------------------
-        // Typically when the project builder is being used from maven proper
-        // the transitive dependencies will not be resolved here because this
-        // requires a lot of work when we may only be interested in running
-        // something simple like 'm2 clean'. So the artifact collector is used
-        // in the dependency resolution phase if it is required by any of the
-        // goals being executed. But when used as a component in another piece
-        // of code people may just want to build maven projects and have the
-        // dependencies resolved for whatever reason: this is why we keep
-        // this snippet of code here.
-        // 
----------------------------------------------------------------------
-
-        if ( resolveDependencies )
-        {
-            // TODO: comes from Maven CORE
-            MavenMetadataSource sourceReader = new MavenMetadataSource( 
artifactResolver, this );
-
-            ArtifactResolutionResult result = 
artifactResolver.resolveTransitively( project.getArtifacts(),
-                                                                               
     remoteRepositories,
-                                                                               
     localRepository, sourceReader );
-
-            project.addArtifacts( result.getArtifacts().values(), 
artifactFactory );
-        }
-
         ModelValidationResult validationResult = validator.validate( model );
 
         if ( validationResult.getMessageCount() > 0 )
@@ -495,7 +484,7 @@
 
             List remoteRepositories = buildArtifactRepositories( 
superModel.getRepositories() );
 
-            project = processProjectLogic( project, localRepository, 
remoteRepositories, false );
+            project = processProjectLogic( project, remoteRepositories );
 
             return project;
         }
@@ -503,10 +492,15 @@
         {
             throw new ProjectBuildingException( "Error building 
super-project", e );
         }
-        catch ( ArtifactResolutionException e )
-        {
-            throw new ProjectBuildingException( "Error building 
super-project", e );
-        }
+    }
+
+    /**
+     * @return
+     * @todo remove
+     */
+    public ArtifactResolver getArtifactResolver()
+    {
+        return artifactResolver;
     }
 
     // ----------------------------------------------------------------------

Modified: 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProjectBuilder.java?rev=164205&r1=164204&r2=164205&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
 (original)
+++ 
maven/components/trunk/maven-core/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
 Fri Apr 22 02:01:47 2005
@@ -18,6 +18,10 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.MavenMetadataSource;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.settings.Settings;
 
@@ -37,8 +41,9 @@
     MavenProject build( File project, ArtifactRepository localRepository )
         throws ProjectBuildingException;
 
-    MavenProject buildWithDependencies( File project, ArtifactRepository 
localRepository )
-        throws ProjectBuildingException;
+    MavenProject buildWithDependencies( File project, ArtifactRepository 
localRepository,
+                                        ArtifactMetadataSource 
artifactMetadataSource )
+        throws ProjectBuildingException, ArtifactResolutionException;
 
     /**
      * Build the artifact from the local repository, resolving it if necessary.
@@ -55,4 +60,6 @@
 
     MavenProject buildStandaloneSuperProject( ArtifactRepository 
localRepository )
         throws ProjectBuildingException;
+
+    ArtifactResolver getArtifactResolver();
 }

Modified: 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenTestCase.java
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenTestCase.java?rev=164205&r1=164204&r2=164205&view=diff
==============================================================================
--- 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenTestCase.java
 (original)
+++ 
maven/components/trunk/maven-core/src/test/java/org/apache/maven/MavenTestCase.java
 Fri Apr 22 02:01:47 2005
@@ -16,12 +16,12 @@
  * limitations under the License.
  */
 
+import org.apache.maven.artifact.MavenMetadataSource;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
 import org.apache.maven.plugin.PluginManager;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectBuilder;
-import org.apache.maven.settings.MavenSettingsBuilder;
 import org.codehaus.plexus.ArtifactEnabledPlexusTestCase;
 
 import java.io.File;
@@ -54,8 +54,8 @@
 
     protected File getLocalRepositoryPath()
     {
-        File markerFile =  getFileForClasspathResource( 
"local-repo/marker.txt" );
-        
+        File markerFile = getFileForClasspathResource( "local-repo/marker.txt" 
);
+
         return markerFile.getAbsoluteFile().getParentFile();
     }
 
@@ -93,7 +93,9 @@
     protected MavenProject getProjectWithDependencies( File pom )
         throws Exception
     {
-        return projectBuilder.buildWithDependencies( pom, getLocalRepository() 
);
+        return projectBuilder.buildWithDependencies( pom, getLocalRepository(),
+                                                     new MavenMetadataSource( 
projectBuilder.getArtifactResolver(),
+                                                                              
projectBuilder ) );
     }
 
     protected MavenProject getProject( File pom )



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to