Author: bentmann
Date: Wed Feb 23 20:22:03 2011
New Revision: 1073926

URL: http://svn.apache.org/viewvc?rev=1073926&view=rev
Log:
o Refactored code

Modified:
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilder.java
    
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java?rev=1073926&r1=1073925&r2=1073926&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
 Wed Feb 23 20:22:03 2011
@@ -48,9 +48,10 @@ import org.codehaus.plexus.component.ann
 import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.Os;
 import org.codehaus.plexus.util.StringUtils;
-import org.sonatype.aether.impl.ArtifactResolver;
+import org.sonatype.aether.RepositorySystemSession;
 import org.sonatype.aether.impl.RemoteRepositoryManager;
 import org.sonatype.aether.repository.LocalRepositoryManager;
+import org.sonatype.aether.repository.RemoteRepository;
 import org.sonatype.aether.repository.WorkspaceRepository;
 import org.sonatype.aether.resolution.ArtifactRequest;
 import org.sonatype.aether.resolution.ArtifactResult;
@@ -59,7 +60,7 @@ import org.sonatype.aether.util.artifact
 /**
  * @version $Id$
  */
-@Component(role = ProjectBuilder.class)
+@Component( role = ProjectBuilder.class )
 public class DefaultProjectBuilder
     implements ProjectBuilder
 {
@@ -80,7 +81,7 @@ public class DefaultProjectBuilder
     private RepositorySystem repositorySystem;
 
     @Requirement
-    private ArtifactResolver artifactResolver;
+    private org.sonatype.aether.RepositorySystem repoSystem;
 
     @Requirement
     private RemoteRepositoryManager repositoryManager;
@@ -92,43 +93,45 @@ public class DefaultProjectBuilder
     // MavenProjectBuilder Implementation
     // ----------------------------------------------------------------------
 
-    public ProjectBuildingResult build( File pomFile, ProjectBuildingRequest 
configuration )
+    public ProjectBuildingResult build( File pomFile, ProjectBuildingRequest 
request )
         throws ProjectBuildingException
     {
-        return build( pomFile, new FileModelSource( pomFile ), configuration );
+        return build( pomFile, new FileModelSource( pomFile ), new 
InternalConfig( request, null, null ) );
     }
 
-    public ProjectBuildingResult build( ModelSource modelSource, 
ProjectBuildingRequest configuration )
+    public ProjectBuildingResult build( ModelSource modelSource, 
ProjectBuildingRequest request )
         throws ProjectBuildingException
     {
-        return build( null, modelSource, configuration );
+        return build( null, modelSource, new InternalConfig( request, null, 
null ) );
     }
 
-    private ProjectBuildingResult build( File pomFile, ModelSource 
modelSource, ProjectBuildingRequest configuration )
+    private ProjectBuildingResult build( File pomFile, ModelSource 
modelSource, InternalConfig config )
         throws ProjectBuildingException
     {
         ClassLoader oldContextClassLoader = 
Thread.currentThread().getContextClassLoader();
 
         try
         {
+            ProjectBuildingRequest configuration = config.request;
+
             MavenProject project = configuration.getProject();
 
             List<ModelProblem> modelProblems = null;
 
             if ( project == null )
             {
-                ModelBuildingRequest request = getModelBuildingRequest( 
configuration, null );
+                ModelBuildingRequest request = getModelBuildingRequest( config 
);
 
                 project = new MavenProject( repositorySystem, this, 
configuration, logger );
 
                 DefaultModelBuildingListener listener =
                     new DefaultModelBuildingListener( project, 
projectBuildingHelper, configuration );
                 request.setModelBuildingListener( listener );
-    
+
                 request.setPomFile( pomFile );
                 request.setModelSource( modelSource );
                 request.setLocationTracking( true );
-    
+
                 ModelBuildingResult result;
                 try
                 {
@@ -205,13 +208,13 @@ public class DefaultProjectBuilder
         return ids;
     }
 
-    private ModelBuildingRequest getModelBuildingRequest( 
ProjectBuildingRequest configuration,
-                                                          ReactorModelPool 
modelPool )
+    private ModelBuildingRequest getModelBuildingRequest( InternalConfig 
config )
     {
+        ProjectBuildingRequest configuration = config.request;
+
         ModelResolver resolver =
-            new ProjectModelResolver( configuration.getRepositorySession(), 
artifactResolver, repositoryManager,
-                                      RepositoryUtils.toRepos( 
configuration.getRemoteRepositories() ),
-                                      configuration.getRepositoryMerging(), 
modelPool );
+            new ProjectModelResolver( config.session, repoSystem, 
repositoryManager, config.repositories,
+                                      configuration.getRepositoryMerging(), 
config.modelPool );
 
         ModelBuildingRequest request = new DefaultModelBuildingRequest();
 
@@ -224,17 +227,18 @@ public class DefaultProjectBuilder
         request.setUserProperties( configuration.getUserProperties() );
         request.setBuildStartTime( configuration.getBuildStartTime() );
         request.setModelResolver( resolver );
+        request.setModelCache( config.modelCache );
 
         return request;
     }
 
-    public ProjectBuildingResult build( Artifact artifact, 
ProjectBuildingRequest configuration )
+    public ProjectBuildingResult build( Artifact artifact, 
ProjectBuildingRequest request )
         throws ProjectBuildingException
     {
-        return build( artifact, false, configuration );
+        return build( artifact, false, request );
     }
 
-    public ProjectBuildingResult build( Artifact artifact, boolean 
allowStubModel, ProjectBuildingRequest configuration )
+    public ProjectBuildingResult build( Artifact artifact, boolean 
allowStubModel, ProjectBuildingRequest request )
         throws ProjectBuildingException
     {
         org.sonatype.aether.artifact.Artifact pomArtifact = 
RepositoryUtils.toArtifact( artifact );
@@ -243,27 +247,30 @@ public class DefaultProjectBuilder
             pomArtifact = new SubArtifact( pomArtifact, "", "pom" );
         }
 
-        ArtifactResult result;
+        InternalConfig config = new InternalConfig( request, null, null );
+
+        boolean localProject;
+
         try
         {
-            ArtifactRequest request = new ArtifactRequest();
-            request.setArtifact( pomArtifact );
-            request.setRepositories( RepositoryUtils.toRepos( 
configuration.getRemoteRepositories() ) );
-            result = artifactResolver.resolveArtifact( 
configuration.getRepositorySession(), request );
-            pomArtifact = result.getArtifact();
+            ArtifactRequest pomRequest = new ArtifactRequest();
+            pomRequest.setArtifact( pomArtifact );
+            pomRequest.setRepositories( config.repositories );
+            ArtifactResult pomResult = repoSystem.resolveArtifact( 
config.session, pomRequest );
+
+            pomArtifact = pomResult.getArtifact();
+            localProject = pomResult.getRepository() instanceof 
WorkspaceRepository;
         }
         catch ( org.sonatype.aether.resolution.ArtifactResolutionException e )
         {
             if ( e.getResults().get( 0 ).isMissing() && allowStubModel )
             {
-                return build( null, createStubModelSource( artifact ), 
configuration );
+                return build( null, createStubModelSource( artifact ), config 
);
             }
             throw new ProjectBuildingException( artifact.getId(),
                                                 "Error resolving project 
artifact: " + e.getMessage(), e );
         }
 
-        boolean localProject = result.getRepository() instanceof 
WorkspaceRepository;
-
         File pomFile = pomArtifact.getFile();
 
         if ( "pom".equals( artifact.getType() ) )
@@ -273,7 +280,7 @@ public class DefaultProjectBuilder
             artifact.setResolved( true );
         }
 
-        return build( localProject ? pomFile : null, new FileModelSource( 
pomFile ), configuration );
+        return build( localProject ? pomFile : null, new FileModelSource( 
pomFile ), config );
     }
 
     private ModelSource createStubModelSource( Artifact artifact )
@@ -292,7 +299,7 @@ public class DefaultProjectBuilder
         return new StringModelSource( buffer, artifact.getId() );
     }
 
-    public List<ProjectBuildingResult> build( List<File> pomFiles, boolean 
recursive, ProjectBuildingRequest config )
+    public List<ProjectBuildingResult> build( List<File> pomFiles, boolean 
recursive, ProjectBuildingRequest request )
         throws ProjectBuildingException
     {
         List<ProjectBuildingResult> results = new 
ArrayList<ProjectBuildingResult>();
@@ -303,11 +310,12 @@ public class DefaultProjectBuilder
 
         ReactorModelCache modelCache = new ReactorModelCache();
 
+        InternalConfig config = new InternalConfig( request, modelPool, 
modelCache );
+
         Map<String, MavenProject> projectIndex = new HashMap<String, 
MavenProject>( 256 );
 
         boolean noErrors =
-            build( results, interimResults, projectIndex, pomFiles, new 
LinkedHashSet<File>(), true, recursive, config,
-                   modelPool, modelCache );
+            build( results, interimResults, projectIndex, pomFiles, new 
LinkedHashSet<File>(), true, recursive, config );
 
         populateReactorModelPool( modelPool, interimResults );
 
@@ -316,7 +324,7 @@ public class DefaultProjectBuilder
         try
         {
             noErrors =
-                build( results, new ArrayList<MavenProject>(), projectIndex, 
interimResults, config,
+                build( results, new ArrayList<MavenProject>(), projectIndex, 
interimResults, request,
                        new HashMap<File, Boolean>() ) && noErrors;
         }
         finally
@@ -334,8 +342,7 @@ public class DefaultProjectBuilder
 
     private boolean build( List<ProjectBuildingResult> results, 
List<InterimResult> interimResults,
                            Map<String, MavenProject> projectIndex, List<File> 
pomFiles, Set<File> aggregatorFiles,
-                           boolean isRoot, boolean recursive, 
ProjectBuildingRequest config,
-                           ReactorModelPool reactorModelPool, 
ReactorModelCache modelCache )
+                           boolean isRoot, boolean recursive, InternalConfig 
config )
     {
         boolean noErrors = true;
 
@@ -343,8 +350,7 @@ public class DefaultProjectBuilder
         {
             aggregatorFiles.add( pomFile );
 
-            if ( !build( results, interimResults, projectIndex, pomFile, 
aggregatorFiles, isRoot, recursive, config,
-                         reactorModelPool, modelCache ) )
+            if ( !build( results, interimResults, projectIndex, pomFile, 
aggregatorFiles, isRoot, recursive, config ) )
             {
                 noErrors = false;
             }
@@ -357,22 +363,20 @@ public class DefaultProjectBuilder
 
     private boolean build( List<ProjectBuildingResult> results, 
List<InterimResult> interimResults,
                            Map<String, MavenProject> projectIndex, File 
pomFile, Set<File> aggregatorFiles,
-                           boolean isRoot, boolean recursive, 
ProjectBuildingRequest config,
-                           ReactorModelPool reactorModelPool, 
ReactorModelCache modelCache )
+                           boolean isRoot, boolean recursive, InternalConfig 
config )
     {
         boolean noErrors = true;
 
-        ModelBuildingRequest request = getModelBuildingRequest( config, 
reactorModelPool );
+        ModelBuildingRequest request = getModelBuildingRequest( config );
 
-        MavenProject project = new MavenProject( repositorySystem, this, 
config, logger );
+        MavenProject project = new MavenProject( repositorySystem, this, 
config.request, logger );
 
         request.setPomFile( pomFile );
         request.setTwoPhaseBuilding( true );
         request.setLocationTracking( true );
-        request.setModelCache( modelCache );
 
         DefaultModelBuildingListener listener =
-            new DefaultModelBuildingListener( project, projectBuildingHelper, 
config );
+            new DefaultModelBuildingListener( project, projectBuildingHelper, 
config.request );
         request.setModelBuildingListener( listener );
 
         try
@@ -463,7 +467,7 @@ public class DefaultProjectBuilder
                 interimResult.modules = new ArrayList<InterimResult>();
 
                 if ( !build( results, interimResult.modules, projectIndex, 
moduleFiles, aggregatorFiles, false,
-                             recursive, config, reactorModelPool, modelCache ) 
)
+                             recursive, config ) )
                 {
                     noErrors = false;
                 }
@@ -519,7 +523,7 @@ public class DefaultProjectBuilder
 
     private boolean build( List<ProjectBuildingResult> results, 
List<MavenProject> projects,
                            Map<String, MavenProject> projectIndex, 
List<InterimResult> interimResults,
-                           ProjectBuildingRequest config, Map<File, Boolean> 
profilesXmls )
+                           ProjectBuildingRequest request, Map<File, Boolean> 
profilesXmls )
     {
         boolean noErrors = true;
 
@@ -534,7 +538,7 @@ public class DefaultProjectBuilder
 
                 List<MavenProject> modules = new ArrayList<MavenProject>();
                 noErrors =
-                    build( results, modules, projectIndex, 
interimResult.modules, config, profilesXmls ) && noErrors;
+                    build( results, modules, projectIndex, 
interimResult.modules, request, profilesXmls ) && noErrors;
 
                 projects.addAll( modules );
                 projects.add( project );
@@ -632,4 +636,28 @@ public class DefaultProjectBuilder
         return null;
     }
 
+    class InternalConfig
+    {
+
+        public final ProjectBuildingRequest request;
+
+        public final RepositorySystemSession session;
+
+        public final List<RemoteRepository> repositories;
+
+        public final ReactorModelPool modelPool;
+
+        public final ReactorModelCache modelCache;
+
+        public InternalConfig( ProjectBuildingRequest request, 
ReactorModelPool modelPool, ReactorModelCache modelCache )
+        {
+            this.request = request;
+            this.modelPool = modelPool;
+            this.modelCache = modelCache;
+            session = request.getRepositorySession();
+            repositories = RepositoryUtils.toRepos( 
request.getRemoteRepositories() );
+        }
+
+    }
+
 }

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilder.java?rev=1073926&r1=1073925&r2=1073926&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilder.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectBuilder.java
 Wed Feb 23 20:22:03 2011
@@ -33,7 +33,7 @@ public interface ProjectBuilder
 
     /**
      * Builds a project descriptor from the specified POM file.
-     *
+     * 
      * @param projectFile The POM file to build the project from, must not be 
{@code null}.
      * @param request The project building request that holds further 
parameters, must not be {@code null}.
      * @return The result of the project building, never {@code null}.
@@ -44,7 +44,7 @@ public interface ProjectBuilder
 
     /**
      * Builds a project descriptor for the specified artifact.
-     *
+     * 
      * @param projectArtifact The POM artifact to build the project from, must 
not be {@code null}.
      * @param request The project building request that holds further 
parameters, must not be {@code null}.
      * @return The result of the project building, never {@code null}.
@@ -55,7 +55,7 @@ public interface ProjectBuilder
 
     /**
      * Builds a project descriptor for the specified artifact.
-     *
+     * 
      * @param projectArtifact The POM artifact to build the project from, must 
not be {@code null}.
      * @param allowStubModel A flag controlling the case of a missing POM 
artifact. If {@code true} and the specified
      *            POM artifact does not exist, a simple stub model will be 
returned. If {@code false}, an exception will
@@ -69,7 +69,7 @@ public interface ProjectBuilder
 
     /**
      * Builds a project descriptor for the specified model source.
-     *
+     * 
      * @param modelSource The source of the model to built the project 
descriptor from, must not be {@code null}.
      * @param request The project building request that holds further 
parameters, must not be {@code null}.
      * @return The result of the project building, never {@code null}.
@@ -80,17 +80,17 @@ public interface ProjectBuilder
 
     /**
      * Builds the projects for the specified POM files and optionally their 
children.
-     *
+     * 
      * @param pomFiles The POM files to build, must not be {@code null}.
      * @param recursive {@code true} to recursively build sub modules 
referenced by the POM files, {@code false} to
      *            build only the specified POM files.
-     * @param config The project builder configuration that provides further 
parameters, must not be {@code null}.
+     * @param request The project builder configuration that provides further 
parameters, must not be {@code null}.
      * @return The results of the project builder where each result 
corresponds to one project that was built, never
      *         {@code null}.
      * @throws ProjectBuildingException If an error was encountered during 
building of any project.
      *             {@link ProjectBuildingException#getResults()} provides 
access to the details of the problems.
      */
-    List<ProjectBuildingResult> build( List<File> pomFiles, boolean recursive, 
ProjectBuildingRequest config )
+    List<ProjectBuildingResult> build( List<File> pomFiles, boolean recursive, 
ProjectBuildingRequest request )
         throws ProjectBuildingException;
 
 }

Modified: 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
URL: 
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java?rev=1073926&r1=1073925&r2=1073926&view=diff
==============================================================================
--- 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
 (original)
+++ 
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
 Wed Feb 23 20:22:03 2011
@@ -32,9 +32,9 @@ import org.apache.maven.model.building.M
 import org.apache.maven.model.resolution.InvalidRepositoryException;
 import org.apache.maven.model.resolution.ModelResolver;
 import org.apache.maven.model.resolution.UnresolvableModelException;
+import org.sonatype.aether.RepositorySystem;
 import org.sonatype.aether.RepositorySystemSession;
 import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.impl.ArtifactResolver;
 import org.sonatype.aether.impl.RemoteRepositoryManager;
 import org.sonatype.aether.repository.RemoteRepository;
 import org.sonatype.aether.repository.RepositoryPolicy;
@@ -62,7 +62,7 @@ class ProjectModelResolver
 
     private final List<RemoteRepository> externalRepositories;
 
-    private final ArtifactResolver resolver;
+    private final RepositorySystem resolver;
 
     private final RemoteRepositoryManager remoteRepositoryManager;
 
@@ -72,7 +72,7 @@ class ProjectModelResolver
 
     private final ProjectBuildingRequest.RepositoryMerging repositoryMerging;
 
-    public ProjectModelResolver( RepositorySystemSession session, 
ArtifactResolver resolver,
+    public ProjectModelResolver( RepositorySystemSession session, 
RepositorySystem resolver,
                                  RemoteRepositoryManager 
remoteRepositoryManager, List<RemoteRepository> repositories,
                                  ProjectBuildingRequest.RepositoryMerging 
repositoryMerging, ReactorModelPool modelPool )
     {


Reply via email to