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 2008/12/17 09:08:56 UTC
svn commit: r727311 - in
/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project:
DefaultMavenProjectBuilder.java MavenProjectBuilder.java
builder/ProjectBuilder.java builder/impl/DefaultProjectBuilder.java
Author: jvanzyl
Date: Wed Dec 17 00:08:56 2008
New Revision: 727311
URL: http://svn.apache.org/viewvc?rev=727311&view=rev
Log:
o super model construction moved into the project builder so that all pure inheritance can be handled therein. Then the only thing we're left with is the mixins
Modified:
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/builder/ProjectBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
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=727311&r1=727310&r2=727311&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 Wed Dec 17 00:08:56 2008
@@ -21,7 +21,6 @@
import java.io.File;
import java.io.IOException;
-import java.io.Reader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -42,7 +41,6 @@
import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.profiles.MavenProfilesBuilder;
import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.profiles.activation.DefaultProfileActivationContext;
@@ -61,9 +59,6 @@
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.LogEnabled;
import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.StringUtils;
@@ -72,7 +67,7 @@
*/
@Component(role = MavenProjectBuilder.class)
public class DefaultMavenProjectBuilder
- implements MavenProjectBuilder, Initializable, LogEnabled
+ implements MavenProjectBuilder, LogEnabled
{
@Requirement
protected MavenProfilesBuilder profilesBuilder;
@@ -89,8 +84,6 @@
@Requirement
private ProjectBuilder projectBuilder;
- private MavenXpp3Reader modelReader;
-
private Logger logger;
@Requirement
@@ -109,15 +102,8 @@
private Map processedProjectCache = new HashMap();
- private static final String MAVEN_MODEL_VERSION = "4.0.0";
-
private static HashMap<String, MavenProject> hm = new HashMap<String, MavenProject>();
- public void initialize()
- {
- modelReader = new MavenXpp3Reader();
- }
-
// ----------------------------------------------------------------------
// MavenProjectBuilder Implementation
// ----------------------------------------------------------------------
@@ -134,8 +120,8 @@
public MavenProject build( File projectDescriptor, ProjectBuilderConfiguration config )
throws ProjectBuildingException
- {
- List repositories = mavenTools.buildArtifactRepositories( getSuperModel() );
+ {
+ List repositories = mavenTools.buildArtifactRepositories( projectBuilder.getSuperModel() );
MavenProject project = readModelFromLocalPath( "unknown",
projectDescriptor,
@@ -199,7 +185,7 @@
ProjectBuilderConfiguration config = new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
List<ArtifactRepository> artifactRepositories = new ArrayList<ArtifactRepository>( remoteArtifactRepositories );
- artifactRepositories.addAll( mavenTools.buildArtifactRepositories( getSuperModel() ) );
+ artifactRepositories.addAll( mavenTools.buildArtifactRepositories( projectBuilder.getSuperModel() ) );
project = readModelFromLocalPath( "unknown", artifact.getFile(), new DefaultPomArtifactResolver( config.getLocalRepository(), artifactRepositories, artifactResolver ), config );
project = buildWithProfiles( project.getModel(), config, artifact.getFile(), project.getParentFile(), false );
@@ -220,7 +206,7 @@
public MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration config )
throws ProjectBuildingException
{
- Model superModel = getSuperModel();
+ Model superModel = projectBuilder.getSuperModel();
MavenProject project = null;
@@ -358,7 +344,7 @@
return superProject;
}
- Model model = getSuperModel();
+ Model model = projectBuilder.getSuperModel();
try
{
@@ -373,35 +359,6 @@
return superProject;
}
- private Model superModel;
-
- private Model getSuperModel()
- {
- if ( superModel != null )
- {
- return superModel;
- }
-
- Reader reader = null;
-
- try
- {
- reader = ReaderFactory.newXmlReader( getClass().getResource( "pom-" + MAVEN_MODEL_VERSION + ".xml" ) );
-
- superModel = modelReader.read( reader, STRICT_MODEL_PARSING );
- }
- catch ( Exception e )
- {
- // Not going to happen we're reading the super pom embedded in the JAR
- }
- finally
- {
- IOUtil.close( reader );
- }
-
- return superModel;
- }
-
private MavenProject readModelFromLocalPath( String projectId, File projectDescriptor, PomArtifactResolver resolver, ProjectBuilderConfiguration config )
throws ProjectBuildingException
{
@@ -424,15 +381,13 @@
new SimpleDateFormat("yyyyMMdd-hhmm").format( config.getBuildStartTime() ),
PomInterpolatorTag.PROJECT_PROPERTIES.name()));
}
-
- interpolatorProperties.add(new InterpolatorProperty("${mavenVersion}", MavenProjectBuilder.STANDALONE_SUPERPOM_VERSION, PomInterpolatorTag.EXECUTION_PROPERTIES.name()));
MavenProject mavenProject;
try
{
mavenProject = projectBuilder.buildFromLocalPath( projectDescriptor,
- Arrays.asList( getSuperModel() ),
+ Arrays.asList( projectBuilder.getSuperModel() ),
interpolatorProperties,
resolver,
config );
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=727311&r1=727310&r2=727311&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 Wed Dec 17 00:08:56 2008
@@ -24,12 +24,6 @@
public interface MavenProjectBuilder
{
- String STANDALONE_SUPERPOM_GROUPID = "org.apache.maven";
-
- String STANDALONE_SUPERPOM_ARTIFACTID = "super-pom";
-
- String STANDALONE_SUPERPOM_VERSION = "3.0-SNAPSHOT";
-
boolean STRICT_MODEL_PARSING = true;
// Used directly by plugins
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java?rev=727311&r1=727310&r2=727311&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java Wed Dec 17 00:08:56 2008
@@ -59,4 +59,5 @@
ProjectBuilderConfiguration projectBuilderConfiguration )
throws IOException;
+ Model getSuperModel();
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=727311&r1=727310&r2=727311&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java Wed Dec 17 00:08:56 2008
@@ -21,6 +21,7 @@
import java.io.File;
import java.io.IOException;
+import java.io.Reader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -33,6 +34,7 @@
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.builder.ArtifactModelContainerFactory;
@@ -50,6 +52,8 @@
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.LogEnabled;
import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
/**
* Default implementation of the project builder.
@@ -69,7 +73,8 @@
private Logger logger;
- public PomClassicDomainModel buildModel( File pom, List<Model> mixins,
+ public PomClassicDomainModel buildModel( File pom,
+ List<Model> mixins,
Collection<InterpolatorProperty> interpolatorProperties,
PomArtifactResolver resolver )
throws IOException
@@ -154,14 +159,15 @@
return transformedDomainModel;
}
- public MavenProject buildFromLocalPath( File pom, List<Model> inheritedModels,
+ public MavenProject buildFromLocalPath( File pom,
+ List<Model> mixins,
Collection<InterpolatorProperty> interpolatorProperties,
PomArtifactResolver resolver,
ProjectBuilderConfiguration projectBuilderConfiguration )
throws IOException
{
PomClassicDomainModel domainModel = buildModel( pom,
- inheritedModels,
+ mixins,
interpolatorProperties,
resolver );
@@ -310,9 +316,43 @@
return domainModels;
}
-
public void enableLogging( Logger logger )
{
this.logger = logger;
}
+
+ // Super Model Handling
+
+ private static final String MAVEN_MODEL_VERSION = "4.0.0";
+
+ private MavenXpp3Reader modelReader = new MavenXpp3Reader();
+
+ private Model superModel;
+
+ public Model getSuperModel()
+ {
+ if ( superModel != null )
+ {
+ return superModel;
+ }
+
+ Reader reader = null;
+
+ try
+ {
+ reader = ReaderFactory.newXmlReader( getClass().getClassLoader().getResource( "org/apache/maven/project/pom-" + MAVEN_MODEL_VERSION + ".xml" ) );
+
+ superModel = modelReader.read( reader, true );
+ }
+ catch ( Exception e )
+ {
+ // Not going to happen we're reading the super pom embedded in the JAR
+ }
+ finally
+ {
+ IOUtil.close( reader );
+ }
+
+ return superModel;
+ }
}