Author: sisbell
Date: Fri Aug 15 17:34:18 2008
New Revision: 686423

URL: http://svn.apache.org/viewvc?rev=686423&view=rev
Log:
More refactoring.

Modified:
    
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
    
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
    
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
    
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml
    
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
    
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml

Modified: 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=686423&r1=686422&r2=686423&view=diff
==============================================================================
--- 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 (original)
+++ 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
 Fri Aug 15 17:34:18 2008
@@ -139,7 +139,6 @@
 
     private Logger logger;
 
-
     //DO NOT USE, it is here only for backward compatibility reasons. The 
existing
     // maven-assembly-plugin (2.2-beta-1) is accessing it via reflection.
 
@@ -169,7 +168,7 @@
     public MavenProject build(File projectDescriptor,
                               ProjectBuilderConfiguration config)
             throws ProjectBuildingException {
-                MavenProject project = null;//projectWorkspace.getProject( 
projectDescriptor );
+        MavenProject project = null;//projectWorkspace.getProject( 
projectDescriptor );
 
         if (project == null) {
             Model model = readModelFromLocalPath("unknown", projectDescriptor, 
new PomArtifactResolver(config.getLocalRepository(),
@@ -261,7 +260,15 @@
             }
         }
 
-        MavenProject project = new MavenProject(superModel, artifactFactory);
+        MavenProject project;
+        try {
+            project = new MavenProject(superModel, artifactFactory, 
mavenTools, repositoryHelper);
+        } catch (InvalidRepositoryException e) {
+            throw new ProjectBuildingException(STANDALONE_SUPERPOM_GROUPID + 
":"
+                    + STANDALONE_SUPERPOM_ARTIFACTID,
+                    "Maven super-POM contains an invalid repository!",
+                    e);
+        }
 
         getLogger().debug("Activated the following profiles for standalone 
super-pom: " + activeProfiles);
         project.setActiveProfiles(activeProfiles);
@@ -365,7 +372,8 @@
 
         return new MavenProjectBuildingResult(project, result);
     }
-        public void calculateConcreteState(MavenProject project, 
ProjectBuilderConfiguration config)
+
+    public void calculateConcreteState(MavenProject project, 
ProjectBuilderConfiguration config)
             throws ModelInterpolationException {
         new MavenProjectRestorer(pathTranslator, modelInterpolator, 
getLogger()).calculateConcreteState(project, config);
     }
@@ -396,7 +404,15 @@
                                        boolean fromSourceTree)
             throws ProjectBuildingException {
 
-        MavenProject superProject = new MavenProject(getSuperModel(), 
artifactFactory);
+        MavenProject superProject = null;
+        try {
+            superProject = new MavenProject(getSuperModel(), artifactFactory, 
mavenTools, repositoryHelper);
+        } catch (InvalidRepositoryException e) {
+            throw new ProjectBuildingException(STANDALONE_SUPERPOM_GROUPID + 
":"
+                    + STANDALONE_SUPERPOM_ARTIFACTID,
+                    "Maven super-POM contains an invalid repository!",
+                    e);
+        }
 
         String projectId = safeVersionlessKey(model.getGroupId(), 
model.getArtifactId());
 
@@ -480,22 +496,6 @@
             previousProject = currentProject;
         }
 
-        // only add the super repository if it wasn't overridden by a profile 
or project
-        List repositories = new ArrayList(aggregatedRemoteWagonRepositories);
-
-        List superRepositories = 
repositoryHelper.buildArtifactRepositories(getSuperModel());
-
-        for (Iterator i = superRepositories.iterator(); i.hasNext();) {
-            ArtifactRepository repository = (ArtifactRepository) i.next();
-
-            if (!repositories.contains(repository)) {
-                repositories.add(repository);
-            }
-        }
-
-        // merge any duplicated plugin definitions together, using the first 
appearance as the dominant one.
-        
ModelUtils.mergeDuplicatePluginDefinitions(project.getModel().getBuild());
-
         try {
             project = processProjectLogic(project, projectDescriptor, config);
         }
@@ -567,7 +567,7 @@
         Artifact parentArtifact = project.getParentArtifact();
 
         // We will return a different project object using the new model 
(hence the need to return a project, not just modify the parameter)
-        project = new MavenProject(model, artifactFactory);
+        project = new MavenProject(model, artifactFactory, mavenTools, 
repositoryHelper);
 
         project.setOriginalModel(originalModel);
 
@@ -578,19 +578,6 @@
         Artifact projectArtifact = 
artifactFactory.createBuildArtifact(project.getGroupId(), 
project.getArtifactId(),
                 project.getVersion(), project.getPackaging());
         project.setArtifact(projectArtifact);
-
-        DistributionManagement dm = model.getDistributionManagement();
-
-        if (dm != null) {
-            ArtifactRepository repo = 
mavenTools.buildDeploymentArtifactRepository(dm.getRepository());
-            project.setReleaseArtifactRepository(repo);
-
-            if (dm.getSnapshotRepository() != null) {
-                repo = 
mavenTools.buildDeploymentArtifactRepository(dm.getSnapshotRepository());
-                project.setSnapshotArtifactRepository(repo);
-            }
-        }
-
         project.setParent(parentProject);
 
         if (parentProject != null) {
@@ -598,24 +585,6 @@
         }
 
         validateModel(model, pomFile);
-
-        try {
-            LinkedHashSet repoSet = new LinkedHashSet();
-            if ((model.getRepositories() != null) && 
!model.getRepositories().isEmpty()) {
-                repoSet.addAll(model.getRepositories());
-            }
-
-            if ((model.getPluginRepositories() != null) && 
!model.getPluginRepositories().isEmpty()) {
-                repoSet.addAll(model.getPluginRepositories());
-            }
-
-            project.setRemoteArtifactRepositories(
-                    mavenTools.buildArtifactRepositories(new 
ArrayList(repoSet)));
-        }
-        catch (Exception e) {
-            e.printStackTrace();
-        }
-
         return project;
     }
 
@@ -702,7 +671,7 @@
 
             File currentPom = it.getPOMFile();
 
-            MavenProject project = new MavenProject(currentModel, 
artifactFactory);
+            MavenProject project = new MavenProject(currentModel, 
artifactFactory, mavenTools, repositoryHelper);
             project.setFile(currentPom);
 
             if (lastProject != null) {
@@ -818,7 +787,7 @@
     }
 
     private static String safeVersionlessKey(String groupId,
-                                      String artifactId) {
+                                             String artifactId) {
         String gid = groupId;
 
         if (StringUtils.isEmpty(gid)) {

Modified: 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=686423&r1=686422&r2=686423&view=diff
==============================================================================
--- 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
 (original)
+++ 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
 Fri Aug 15 17:34:18 2008
@@ -22,6 +22,7 @@
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
@@ -34,6 +35,7 @@
 import org.apache.maven.project.artifact.ActiveProjectArtifact;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.project.artifact.MavenMetadataSource;
+import org.apache.maven.MavenTools;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -131,6 +133,10 @@
 
     private ArtifactFactory artifactFactory;
 
+    private MavenTools mavenTools;
+
+    private RepositoryHelper repositoryHelper;
+
     public MavenProject()
     {
         Model model = new Model();
@@ -147,9 +153,41 @@
         setModel( model );
     }
 
-    public MavenProject(Model model, ArtifactFactory artifactFactory) {
+    public MavenProject(Model model, ArtifactFactory artifactFactory, 
MavenTools mavenTools, RepositoryHelper repositoryHelper) 
+            throws InvalidRepositoryException {
         setModel( model );
         this.artifactFactory = artifactFactory;
+        this.mavenTools = mavenTools;
+        this.repositoryHelper = repositoryHelper;
+
+        DistributionManagement dm = model.getDistributionManagement();
+
+        if (dm != null) {
+            ArtifactRepository repo = 
mavenTools.buildDeploymentArtifactRepository(dm.getRepository());
+            setReleaseArtifactRepository(repo);
+
+            if (dm.getSnapshotRepository() != null) {
+                repo = 
mavenTools.buildDeploymentArtifactRepository(dm.getSnapshotRepository());
+                setSnapshotArtifactRepository(repo);
+            }
+        }
+
+        try {
+            LinkedHashSet repoSet = new LinkedHashSet();
+            if ((model.getRepositories() != null) && 
!model.getRepositories().isEmpty()) {
+                repoSet.addAll(model.getRepositories());
+            }
+
+            if ((model.getPluginRepositories() != null) && 
!model.getPluginRepositories().isEmpty()) {
+                repoSet.addAll(model.getPluginRepositories());
+            }
+
+            setRemoteArtifactRepositories(
+                    mavenTools.buildArtifactRepositories(new 
ArrayList(repoSet)));
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
     /**

Modified: 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
URL: 
http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=686423&r1=686422&r2=686423&view=diff
==============================================================================
--- 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
 (original)
+++ 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
 Fri Aug 15 17:34:18 2008
@@ -20,10 +20,12 @@
  */
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Parent;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.RepositoryHelper;
 import org.apache.maven.project.builder.ArtifactModelContainerFactory;
 import org.apache.maven.project.builder.IdModelContainerFactory;
 import org.apache.maven.project.builder.PomArtifactResolver;
@@ -36,6 +38,7 @@
 import org.apache.maven.shared.model.InterpolatorProperty;
 import org.apache.maven.shared.model.ModelTransformerContext;
 import org.apache.maven.shared.model.ImportModel;
+import org.apache.maven.MavenTools;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 
@@ -65,6 +68,10 @@
 
     private ModelValidator validator;
 
+    private MavenTools mavenTools;
+
+    private RepositoryHelper repositoryHelper;
+
     /**
      * Default constructor
      */
@@ -158,9 +165,12 @@
         PomClassicDomainModel transformedDomainModel =
             ( (PomClassicDomainModel) ctx.transform( domainModels, 
transformer, transformer, importModels, properties ) );
 
-
         Model model = transformedDomainModel.getModel();
-        return new MavenProject( model, artifactFactory );
+        try {
+            return new MavenProject( model, artifactFactory, mavenTools, 
repositoryHelper);
+        } catch (InvalidRepositoryException e) {
+            throw new IOException(e.getMessage());
+        }
     }
 
     private boolean isParentLocal( Parent parent, File projectDirectory )

Modified: 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=686423&r1=686422&r2=686423&view=diff
==============================================================================
--- 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml
 (original)
+++ 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/resources/META-INF/plexus/components.xml
 Fri Aug 15 17:34:18 2008
@@ -118,6 +118,12 @@
             <requirement>
                 <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
             </requirement>
+            <requirement>
+              <role>org.apache.maven.MavenTools</role>
+            </requirement>
+            <requirement>
+                 <role>org.apache.maven.project.RepositoryHelper</role>
+            </requirement>
         </requirements>
     </component>
     <component>

Modified: 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml?rev=686423&r1=686422&r2=686423&view=diff
==============================================================================
--- 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
 (original)
+++ 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml
 Fri Aug 15 17:34:18 2008
@@ -104,6 +104,12 @@
             <requirement>
                 <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
             </requirement>
+            <requirement>
+              <role>org.apache.maven.MavenTools</role>
+            </requirement>
+            <requirement>
+                 <role>org.apache.maven.project.RepositoryHelper</role>
+            </requirement>             
         </requirements>
     </component>
     <component>
@@ -113,7 +119,7 @@
       <requirements>
         <requirement>
              <role>org.apache.maven.project.RepositoryHelper</role>
-        </requirement>          
+        </requirement>
         <requirement>
              <role>org.apache.maven.project.builder.ProjectBuilder</role>
         </requirement>

Modified: 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
URL: 
http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml?rev=686423&r1=686422&r2=686423&view=diff
==============================================================================
--- 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
 (original)
+++ 
maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/test/resources/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.xml
 Fri Aug 15 17:34:18 2008
@@ -101,6 +101,12 @@
             <requirement>
                 <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
             </requirement>
+            <requirement>
+              <role>org.apache.maven.MavenTools</role>
+            </requirement>
+            <requirement>
+                 <role>org.apache.maven.project.RepositoryHelper</role>
+            </requirement>             
         </requirements>
     </component>      
     <component>


Reply via email to