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 05:02:00 UTC
svn commit: r727267 - in /maven/components/trunk:
maven-embedder/src/main/java/org/apache/maven/cli/
maven-project/src/main/java/org/apache/maven/project/
maven-project/src/main/java/org/apache/maven/project/builder/
maven-project/src/main/java/org/apa...
Author: jvanzyl
Date: Tue Dec 16 20:01:59 2008
New Revision: 727267
URL: http://svn.apache.org/viewvc?rev=727267&view=rev
Log:
o remove some superfluous reader creation in the project builder
o remove profile handling from the construction of the super project, there are no profiles in it anymore (and shouldn't be in the future)
Modified:
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java
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/builder/ProjectBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java
Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java?rev=727267&r1=727266&r2=727267&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java Tue Dec 16 20:01:59 2008
@@ -298,8 +298,7 @@
executionProperties.putAll( System.getProperties() );
}
- private static void setCliProperty( String property,
- Properties executionProperties )
+ private static void setCliProperty( String property, Properties executionProperties )
{
String name;
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=727267&r1=727266&r2=727267&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 Tue Dec 16 20:01:59 2008
@@ -22,7 +22,6 @@
import java.io.File;
import java.io.IOException;
import java.io.Reader;
-import java.io.StringReader;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -52,8 +51,9 @@
import org.apache.maven.profiles.activation.ProfileActivationException;
import org.apache.maven.profiles.build.ProfileAdvisor;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
-import org.apache.maven.project.builder.Interpolator;
import org.apache.maven.project.builder.DefaultPomArtifactResolver;
+import org.apache.maven.project.builder.Interpolator;
+import org.apache.maven.project.builder.PomArtifactResolver;
import org.apache.maven.project.builder.PomInterpolatorTag;
import org.apache.maven.project.builder.ProjectBuilder;
import org.apache.maven.project.validation.ModelValidationResult;
@@ -67,7 +67,6 @@
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.StringUtils;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
/**
@@ -139,9 +138,10 @@
throws ProjectBuildingException
{
MavenProject project = readModelFromLocalPath( "unknown", projectDescriptor, new DefaultPomArtifactResolver( config.getLocalRepository(), mavenTools
- .buildArtifactRepositories( getSuperProject( config, projectDescriptor, true ).getModel() ), artifactResolver ), config );
+ .buildArtifactRepositories( getSuperModel() ), artifactResolver ), config );
project.setFile( projectDescriptor );
+
project = buildWithProfiles( project.getModel(), config, projectDescriptor, project.getParentFile(), true );
Build build = project.getBuild();
@@ -174,7 +174,7 @@
}
}
- // This is used by the RR plugin
+ //!! This is used by the RR plugin
public MavenProject buildFromRepository( Artifact artifact, List remoteArtifactRepositories, ArtifactRepository localRepository, boolean allowStubs )
throws ProjectBuildingException
{
@@ -197,7 +197,7 @@
ProjectBuilderConfiguration config = new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
List<ArtifactRepository> artifactRepositories = new ArrayList<ArtifactRepository>( remoteArtifactRepositories );
- artifactRepositories.addAll( mavenTools.buildArtifactRepositories( getSuperProject( config, artifact.getFile(), false ).getModel() ) );
+ artifactRepositories.addAll( mavenTools.buildArtifactRepositories( getSuperModel() ) );
project = readModelFromLocalPath( "unknown", artifact.getFile(), new DefaultPomArtifactResolver( config.getLocalRepository(), artifactRepositories, artifactResolver ), config );
project = buildWithProfiles( project.getModel(), config, artifact.getFile(), project.getParentFile(), false );
@@ -281,8 +281,7 @@
}
catch (IOException e)
{
- throw new ProjectBuildingException(STANDALONE_SUPERPOM_GROUPID + ":" + STANDALONE_SUPERPOM_ARTIFACTID,
- "Interpolation failure:", e);
+ throw new ProjectBuildingException(STANDALONE_SUPERPOM_GROUPID + ":" + STANDALONE_SUPERPOM_ARTIFACTID, "Interpolation failure:", e);
}
MavenProject project;
@@ -364,7 +363,9 @@
String projectId = safeVersionlessKey( model.getGroupId(), model.getArtifactId() );
ProfileActivationContext profileActivationContext;
+
ProfileManager externalProfileManager = config.getGlobalProfileManager();
+
if ( externalProfileManager != null )
{
// used to trigger the caching of SystemProperties in the container context...
@@ -385,6 +386,7 @@
}
MavenProject project;
+
try
{
project = constructMavenProjectFromModel( model, projectDescriptor, parentDescriptor, config );
@@ -395,10 +397,11 @@
}
List<Profile> projectProfiles = new ArrayList<Profile>();
- projectProfiles.addAll( profileAdvisor.applyActivatedProfiles( project.getModel(), project.getFile(),
- isReactorProject, profileActivationContext ) );
- projectProfiles.addAll( profileAdvisor.applyActivatedExternalProfiles( project.getModel(), project.getFile(),
- externalProfileManager ) );
+
+ projectProfiles.addAll( profileAdvisor.applyActivatedProfiles( project.getModel(), project.getFile(), isReactorProject, profileActivationContext ) );
+
+ projectProfiles.addAll( profileAdvisor.applyActivatedExternalProfiles( project.getModel(), project.getFile(), externalProfileManager ) );
+
project.setActiveProfiles( projectProfiles );
return project;
@@ -420,105 +423,60 @@
return project;
}
- private MavenProject getSuperProject( ProjectBuilderConfiguration config, File projectDescriptor,
- boolean isReactorProject )
- throws ProjectBuildingException
+ private MavenProject superProject;
+
+ private MavenProject getSuperProject( ProjectBuilderConfiguration config, File projectDescriptor )
{
-
- MavenProject superProject;
+ if ( superProject != null )
+ {
+ return superProject;
+ }
+
Model model = getSuperModel();
+
try
{
superProject = new MavenProject( model, artifactFactory, mavenTools, this, config );
}
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() );
-
- ProfileActivationContext profileActivationContext;
- ProfileManager externalProfileManager = config.getGlobalProfileManager();
- if ( externalProfileManager != null )
- {
- // used to trigger the caching of SystemProperties in the container context...
- try
- {
- externalProfileManager.getActiveProfiles();
- }
- catch ( ProfileActivationException e )
- {
- throw new ProjectBuildingException( projectId, "Failed to activate external profiles.",
- projectDescriptor, e );
- }
- profileActivationContext = externalProfileManager.getProfileActivationContext();
- }
- else
- {
- profileActivationContext = new DefaultProfileActivationContext( config.getExecutionProperties(), false );
+ // Not going to happen as this exception is thrown when checking distributionManagement and the super pom
+ // doesn't have a distributionManagement section.
}
- List<Profile> superProjectProfiles = new ArrayList<Profile>();
- superProjectProfiles.addAll( profileAdvisor.applyActivatedProfiles( model, projectDescriptor, isReactorProject,
- profileActivationContext ) );
- superProjectProfiles.addAll(
- profileAdvisor.applyActivatedExternalProfiles( model, projectDescriptor, externalProfileManager ) );
- superProject.setActiveProfiles( superProjectProfiles );
-
return superProject;
- }
+ }
private Model superModel;
private Model getSuperModel()
- throws ProjectBuildingException
{
if ( superModel != null )
{
return superModel;
}
- URL url = DefaultMavenProjectBuilder.class.getResource( "pom-" + MAVEN_MODEL_VERSION + ".xml" );
-
- String projectId = safeVersionlessKey( STANDALONE_SUPERPOM_GROUPID, STANDALONE_SUPERPOM_ARTIFACTID );
-
Reader reader = null;
+
try
{
- reader = ReaderFactory.newXmlReader( url.openStream() );
- String modelSource = IOUtil.toString( reader );
-
- if ( modelSource.indexOf( "<modelVersion>" + MAVEN_MODEL_VERSION ) < 0 )
- {
- throw new InvalidProjectModelException( projectId, "Not a v" + MAVEN_MODEL_VERSION + " POM.", new File( "." ) );
- }
-
- StringReader sReader = new StringReader( modelSource );
-
- superModel = modelReader.read( sReader, STRICT_MODEL_PARSING );
+ reader = ReaderFactory.newXmlReader( getClass().getResource( "pom-" + MAVEN_MODEL_VERSION + ".xml" ) );
- return superModel;
+ superModel = modelReader.read( reader, STRICT_MODEL_PARSING );
}
- catch ( XmlPullParserException e )
+ catch ( Exception e )
{
- throw new InvalidProjectModelException( projectId, "Parse error reading POM. Reason: " + e.getMessage(),
- e );
- }
- catch ( IOException e )
- {
- throw new ProjectBuildingException( projectId, "Failed build model from URL \'" + url.toExternalForm() +
- "\'\nError: \'" + e.getLocalizedMessage() + "\'", e );
+ // Not going to happen we're reading the super pom embedded in the JAR
}
finally
{
- IOUtil.close( reader );
+ IOUtil.close( reader );
}
+
+ return superModel;
}
- private MavenProject readModelFromLocalPath( String projectId, File projectDescriptor, DefaultPomArtifactResolver resolver,
- ProjectBuilderConfiguration config )
+ private MavenProject readModelFromLocalPath( String projectId, File projectDescriptor, PomArtifactResolver resolver, ProjectBuilderConfiguration config )
throws ProjectBuildingException
{
if ( projectDescriptor == null )
@@ -548,7 +506,7 @@
try
{
mavenProject = projectBuilder.buildFromLocalPath( projectDescriptor,
- Arrays.asList( getSuperProject( config, projectDescriptor, true ).getModel() ),
+ Arrays.asList( getSuperProject( config, projectDescriptor ).getModel() ),
interpolatorProperties,
resolver,
config );
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=727267&r1=727266&r2=727267&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 Tue Dec 16 20:01:59 2008
@@ -35,7 +35,7 @@
public interface ProjectBuilder
{
public PomClassicDomainModel buildModel( File pom,
- List<Model> inheritedModels,
+ List<Model> mixins,
Collection<InterpolatorProperty> interpolatorProperties,
PomArtifactResolver resolver )
throws IOException;
@@ -53,7 +53,7 @@
* @throws IOException if there is a problem in the construction of the maven project
*/
MavenProject buildFromLocalPath( File pom,
- List<Model> inheritedModels,
+ List<Model> mixins,
Collection<InterpolatorProperty> interpolatorProperties,
PomArtifactResolver resolver,
ProjectBuilderConfiguration projectBuilderConfiguration )
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=727267&r1=727266&r2=727267&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 Tue Dec 16 20:01:59 2008
@@ -37,15 +37,12 @@
import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.builder.ArtifactModelContainerFactory;
import org.apache.maven.project.builder.IdModelContainerFactory;
-import org.apache.maven.project.builder.DefaultPomArtifactResolver;
import org.apache.maven.project.builder.PomArtifactResolver;
import org.apache.maven.project.builder.PomClassicDomainModel;
import org.apache.maven.project.builder.PomClassicDomainModelFactory;
import org.apache.maven.project.builder.PomClassicTransformer;
import org.apache.maven.project.builder.ProjectBuilder;
-import org.apache.maven.project.validation.ModelValidator;
import org.apache.maven.shared.model.DomainModel;
-import org.apache.maven.shared.model.ImportModel;
import org.apache.maven.shared.model.InterpolatorProperty;
import org.apache.maven.shared.model.ModelEventListener;
import org.apache.maven.shared.model.ModelTransformerContext;
@@ -65,9 +62,6 @@
private ArtifactFactory artifactFactory;
@Requirement
- private ModelValidator validator;
-
- @Requirement
private MavenTools mavenTools;
@Requirement
@@ -75,7 +69,7 @@
private Logger logger;
- public PomClassicDomainModel buildModel( File pom, List<Model> inheritedModels,
+ public PomClassicDomainModel buildModel( File pom, List<Model> mixins,
Collection<InterpolatorProperty> interpolatorProperties,
PomArtifactResolver resolver )
throws IOException
@@ -90,14 +84,14 @@
throw new IllegalArgumentException( "resolver: null" );
}
- if ( inheritedModels == null )
+ if ( mixins == null )
{
- inheritedModels = new ArrayList<Model>();
+ mixins = new ArrayList<Model>();
}
else
{
- inheritedModels = new ArrayList<Model>( inheritedModels );
- Collections.reverse( inheritedModels );
+ mixins = new ArrayList<Model>( mixins );
+ Collections.reverse( mixins );
}
List<InterpolatorProperty> properties;
@@ -139,7 +133,7 @@
domainModels.addAll( mavenParents );
}
- for ( Model model : inheritedModels )
+ for ( Model model : mixins )
{
domainModels.add( new PomClassicDomainModel( model ) );
}
@@ -209,7 +203,6 @@
}
catch ( IOException e )
{
- e.printStackTrace();
return false;
}
}
Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java?rev=727267&r1=727266&r2=727267&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java Tue Dec 16 20:01:59 2008
@@ -19,11 +19,11 @@
* under the License.
*/
-import org.apache.maven.artifact.Artifact;
-
import java.io.File;
import java.util.Iterator;
+import org.apache.maven.artifact.Artifact;
+
/**
* @todo relocate to maven-artifact in entirety
*/