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>