You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/04/03 17:18:30 UTC
svn commit: r644354 [1/2] - in /maven/components/trunk:
maven-core/src/main/aspect/org/apache/maven/errors/
maven-core/src/main/java/org/apache/maven/
maven-core/src/main/java/org/apache/maven/execution/
maven-core/src/main/java/org/apache/maven/extens...
Author: jdcasey
Date: Thu Apr 3 08:18:18 2008
New Revision: 644354
URL: http://svn.apache.org/viewvc?rev=644354&view=rev
Log:
Fixing MNG-3355 and MNG-2339.
This commit introduces three changes: user-level properties that are separated from the execution properties, where execution properties contain envars, sysprops, and user-level properties...user-level properties are useful for POM interpolation for 2339 and 3355.
Second, a ProjectBuilderConfiguration interface and default implementation, to stem the proliferation of method parameters to projectBuilder methods. This was a natural place to introduce it, as user-level properties had to be passed in separately from the execution properties, for interpolation.
Finally, interpolation has been switched to use the new plexus-interpolation project, which is based on the classes in plexus-utils.
Added:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
- copied, changed from r642024, maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingValueSource.java (with props)
Modified:
maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/MavenExecErrorReporterAspect.aj
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIRequestUtils.java
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java
maven/components/trunk/maven-project/pom.xml
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj
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/build/model/DefaultModelLineageBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/build/model/DefaultModelLineageBuilderTest.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/workspace/ModelAndFileCachingTest.java
Modified: maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/MavenExecErrorReporterAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/MavenExecErrorReporterAspect.aj?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/MavenExecErrorReporterAspect.aj (original)
+++ maven/components/trunk/maven-core/src/main/aspect/org/apache/maven/errors/MavenExecErrorReporterAspect.aj Thu Apr 3 08:18:18 2008
@@ -23,9 +23,9 @@
execution( List DefaultMaven.getProjects( MavenExecutionRequest ) )
&& args( request );
- private pointcut dm_collectProjects( ArtifactRepository localRepository, ProfileManager globalProfileManager ):
- execution( List DefaultMaven.collectProjects( List, ArtifactRepository, boolean, ProfileManager, boolean ) )
- && args( *, localRepository, *, globalProfileManager, * );
+ private pointcut dm_collectProjects( MavenExecutionRequest request ):
+ execution( List DefaultMaven.collectProjects( List, MavenExecutionRequest, boolean ) )
+ && args( *, request, * );
private MavenProject currentProject;
private ArtifactVersion mavenVersion;
@@ -40,7 +40,7 @@
MavenProject around()
throws ProjectBuildingException:
- cflow( dm_collectProjects( ArtifactRepository, ProfileManager ) )
+ cflow( dm_collectProjects( MavenExecutionRequest ) )
&& within( DefaultMaven )
&& call( MavenProject MavenProjectBuilder+.build( .. ) )
{
@@ -50,7 +50,7 @@
MavenExecutionException around():
cflow( dm_getProjects( MavenExecutionRequest ) )
- && cflow( dm_collectProjects( ArtifactRepository, ProfileManager ) )
+ && cflow( dm_collectProjects( MavenExecutionRequest ) )
&& call( MavenExecutionException.new( String, File ) )
{
MavenExecutionException err = proceed();
@@ -67,7 +67,7 @@
getReporter().reportMissingModulePom( err );
}
- after(): dm_collectProjects( ArtifactRepository, ProfileManager )
+ after(): dm_collectProjects( MavenExecutionRequest )
{
currentProject = null;
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Thu Apr 3 08:18:18 2008
@@ -20,7 +20,6 @@
*/
-import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
import org.apache.maven.execution.DefaultMavenExecutionResult;
import org.apache.maven.execution.MavenExecutionRequest;
@@ -36,7 +35,6 @@
import org.apache.maven.monitor.event.DeprecationEventDispatcher;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.monitor.event.MavenEvents;
-import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.project.DuplicateProjectException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
@@ -106,7 +104,7 @@
if ( projects.isEmpty() )
{
- projects.add( projectBuilder.buildStandaloneSuperProject( request.getProfileManager() ) );
+ projects.add( projectBuilder.buildStandaloneSuperProject( request.getProjectBuildingConfiguration() ) );
request.setProjectPresent( false );
}
@@ -281,15 +279,13 @@
throw new MavenExecutionException( "Error scanning for extensions: " + e.getMessage(), e );
}
- projects = collectProjects( files, request.getLocalRepository(), request.isRecursive(), request.getProfileManager(), !request.useReactor() );
+ projects = collectProjects( files, request, !request.useReactor() );
return projects;
}
private List collectProjects( List files,
- ArtifactRepository localRepository,
- boolean recursive,
- ProfileManager globalProfileManager,
+ MavenExecutionRequest request,
boolean isRoot )
throws MavenExecutionException
{
@@ -313,7 +309,7 @@
MavenProject project;
try
{
- project = projectBuilder.build( file, localRepository, globalProfileManager );
+ project = projectBuilder.build( file, request.getProjectBuildingConfiguration() );
}
catch ( ProjectBuildingException e )
{
@@ -337,7 +333,7 @@
}
}
- if ( ( project.getModules() != null ) && !project.getModules().isEmpty() && recursive )
+ if ( ( project.getModules() != null ) && !project.getModules().isEmpty() && request.isRecursive() )
{
// TODO: Really should fail if it was not? What if it is aggregating - eg "ear"?
project.setPackaging( "pom" );
@@ -396,8 +392,7 @@
moduleFiles.add( moduleFile );
}
- List collectedProjects = collectProjects( moduleFiles, localRepository, recursive,
- globalProfileManager, false );
+ List collectedProjects = collectProjects( moduleFiles, request, false );
projects.addAll( collectedProjects );
project.setCollectedProjects( collectedProjects );
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java Thu Apr 3 08:18:18 2008
@@ -25,6 +25,8 @@
import org.apache.maven.monitor.event.MavenWorkspaceMonitor;
import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.profiles.activation.ProfileActivationContext;
+import org.apache.maven.project.DefaultProjectBuilderConfiguration;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.realm.MavenRealmManager;
import org.apache.maven.settings.Settings;
import org.apache.maven.wagon.events.TransferListener;
@@ -92,6 +94,8 @@
private Properties properties;
+ private Properties userProperties;
+
private Date startTime;
private boolean showErrors = false;
@@ -361,6 +365,13 @@
properties.setProperty( key, value );
+ if ( userProperties == null )
+ {
+ userProperties = new Properties();
+ }
+
+ userProperties.setProperty( key, value );
+
return this;
}
@@ -579,6 +590,9 @@
private ProfileActivationContext profileActivationContext;
+ // calculated from request attributes.
+ private ProjectBuilderConfiguration projectBuildingConfiguration;
+
public MavenExecutionRequest setSettings( Settings settings )
{
this.settings = settings;
@@ -707,5 +721,30 @@
{
this.workspaceMonitor = workspaceMonitor;
return this;
+ }
+
+ public Properties getUserProperties()
+ {
+ return userProperties;
+ }
+
+ public MavenExecutionRequest setUserProperties( Properties userProperties )
+ {
+ this.userProperties = userProperties;
+ return this;
+ }
+
+ public ProjectBuilderConfiguration getProjectBuildingConfiguration()
+ {
+ if ( projectBuildingConfiguration == null )
+ {
+ projectBuildingConfiguration = new DefaultProjectBuilderConfiguration();
+ projectBuildingConfiguration.setLocalRepository( getLocalRepository() );
+ projectBuildingConfiguration.setExecutionProperties( getProperties() );
+ projectBuildingConfiguration.setGlobalProfileManager( getProfileManager() );
+ projectBuildingConfiguration.setUserProperties( getUserProperties() );
+ }
+
+ return projectBuildingConfiguration;
}
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java Thu Apr 3 08:18:18 2008
@@ -26,6 +26,7 @@
import org.apache.maven.monitor.event.MavenWorkspaceMonitor;
import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.profiles.activation.ProfileActivationContext;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.realm.MavenRealmManager;
import org.apache.maven.settings.Settings;
import org.apache.maven.wagon.events.TransferListener;
@@ -97,6 +98,9 @@
MavenExecutionRequest setProperty( String key, String value );
Properties getProperties();
+ MavenExecutionRequest setUserProperties( Properties userProperties );
+ Properties getUserProperties();
+
// Reactor
MavenExecutionRequest setReactorFailureBehavior( String failureBehavior );
String getReactorFailureBehavior();
@@ -220,4 +224,6 @@
MavenExecutionRequest setWorkspaceMonitor( MavenWorkspaceMonitor workspaceMonitor );
MavenWorkspaceMonitor getWorkspaceMonitor();
+
+ ProjectBuilderConfiguration getProjectBuildingConfiguration();
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java Thu Apr 3 08:18:18 2008
@@ -32,6 +32,7 @@
import org.apache.maven.profiles.activation.ProfileActivationContext;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.project.build.model.ModelLineage;
import org.apache.maven.project.build.model.ModelLineageBuilder;
@@ -129,11 +130,11 @@
try
{
- List originalRemoteRepositories = getInitialRemoteRepositories();
+ List originalRemoteRepositories = getInitialRemoteRepositories( request.getProjectBuildingConfiguration() );
getLogger().debug( "Pre-scanning POM lineage of: " + pom + " for build extensions." );
- ModelLineage lineage = buildModelLineage( pom, request, originalRemoteRepositories );
+ ModelLineage lineage = buildModelLineage( pom, request.getProjectBuildingConfiguration(), originalRemoteRepositories );
Map inheritedInterpolationValues = new HashMap();
@@ -161,7 +162,7 @@
inheritedInterpolationValues = new HashMap();
}
- model = modelInterpolator.interpolate( model, inheritedInterpolationValues, false );
+ model = modelInterpolator.interpolate( model, inheritedInterpolationValues, request.getUserProperties(), false );
grabManagedPluginsWithExtensionsFlagTurnedOn( model, managedPluginsWithExtensionsFlag );
@@ -398,14 +399,14 @@
}
}
- private ModelLineage buildModelLineage( File pom, MavenExecutionRequest request,
+ private ModelLineage buildModelLineage( File pom, ProjectBuilderConfiguration config,
List originalRemoteRepositories )
throws ExtensionScanningException
{
- ProfileManager profileManager = request.getProfileManager();
+ ProfileManager profileManager = config.getGlobalProfileManager();
ProfileActivationContext profileActivationContext = profileManager == null
- ? new DefaultProfileActivationContext( System.getProperties(), false )
+ ? new DefaultProfileActivationContext( config.getExecutionProperties(), false )
: profileManager.getProfileActivationContext();
boolean suppressActivatorFailure = profileActivationContext.isCustomActivatorFailureSuppressed();
@@ -420,8 +421,8 @@
// the last parameter here and determine whether it's appropriate for the POM to have
// an accompanying profiles.xml file.
profileActivationContext.setCustomActivatorFailureSuppressed( true );
- lineage = modelLineageBuilder.buildModelLineage( pom, request.getLocalRepository(), originalRemoteRepositories,
- request.getProfileManager(), false, true );
+
+ lineage = modelLineageBuilder.buildModelLineage( pom, config, originalRemoteRepositories, false, true );
}
catch ( ProjectBuildingException e )
{
@@ -436,14 +437,14 @@
return lineage;
}
- private List getInitialRemoteRepositories()
+ private List getInitialRemoteRepositories( ProjectBuilderConfiguration config )
throws ExtensionScanningException
{
if ( basicSuperProject == null )
{
try
{
- basicSuperProject = projectBuilder.buildStandaloneSuperProject();
+ basicSuperProject = projectBuilder.buildStandaloneSuperProject( config );
}
catch ( ProjectBuildingException e )
{
Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java Thu Apr 3 08:18:18 2008
@@ -7,6 +7,7 @@
import org.apache.maven.model.Parent;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.PluginManagement;
+import org.apache.maven.project.DefaultProjectBuilderConfiguration;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
@@ -112,11 +113,11 @@
ModelLineage ml = new DefaultModelLineage();
ml.setOrigin( model, pomFile, Collections.EMPTY_LIST, true );
- modelLineageBuilder.buildModelLineage( pomFile, null, null, null, false, true );
+ modelLineageBuilder.buildModelLineage( pomFile, new DefaultProjectBuilderConfiguration(), null, false, true );
modelLineageBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER );
modelLineageBuilderCtl.setReturnValue( ml, MockControl.ZERO_OR_MORE );
- modelInterpolator.interpolate( model, null, false );
+ modelInterpolator.interpolate( model, null, null, false );
modelInterpolatorCtl.setMatcher( MockControl.ALWAYS_MATCHER );
modelInterpolatorCtl.setReturnValue( model, MockControl.ZERO_OR_MORE );
@@ -126,7 +127,8 @@
MavenProject superProject = new MavenProject( new Model() );
superProject.setRemoteArtifactRepositories( Collections.EMPTY_LIST );
- projectBuilder.buildStandaloneSuperProject();
+ projectBuilder.buildStandaloneSuperProject( new DefaultProjectBuilderConfiguration() );
+ projectBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER );
projectBuilderCtl.setReturnValue( superProject, MockControl.ZERO_OR_MORE );
mockManager.replayAll();
@@ -189,15 +191,15 @@
ml.setOrigin( model, pomFile, Collections.EMPTY_LIST, true );
ml.addParent( parentModel, pomFile, Collections.EMPTY_LIST, false );
- modelLineageBuilder.buildModelLineage( pomFile, null, null, null, false, true );
+ modelLineageBuilder.buildModelLineage( pomFile, new DefaultProjectBuilderConfiguration(), null, false, true );
modelLineageBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER );
modelLineageBuilderCtl.setReturnValue( ml, MockControl.ZERO_OR_MORE );
- modelInterpolator.interpolate( model, null, false );
+ modelInterpolator.interpolate( model, null, null, false );
modelInterpolatorCtl.setMatcher( new FirstArgFileMatcher() );
modelInterpolatorCtl.setReturnValue( model, MockControl.ZERO_OR_MORE);
- modelInterpolator.interpolate( parentModel, null, false );
+ modelInterpolator.interpolate( parentModel, null, null, false );
modelInterpolatorCtl.setReturnValue( parentModel, MockControl.ZERO_OR_MORE );
extensionManager.addPluginAsExtension( plugin, model, Collections.EMPTY_LIST, request );
@@ -206,7 +208,8 @@
MavenProject superProject = new MavenProject( new Model() );
superProject.setRemoteArtifactRepositories( Collections.EMPTY_LIST );
- projectBuilder.buildStandaloneSuperProject();
+ projectBuilder.buildStandaloneSuperProject( new DefaultProjectBuilderConfiguration() );
+ projectBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER );
projectBuilderCtl.setReturnValue( superProject, MockControl.ZERO_OR_MORE );
mockManager.replayAll();
@@ -295,21 +298,21 @@
moduleMl.addParent( model, pomFile, Collections.EMPTY_LIST, true );
moduleMl.addParent( parentModel, pomFile, Collections.EMPTY_LIST, false );
- modelLineageBuilder.buildModelLineage( pomFile, null, null, null, false, true );
+ modelLineageBuilder.buildModelLineage( pomFile, new DefaultProjectBuilderConfiguration(), null, false, true );
modelLineageBuilderCtl.setMatcher( new FirstArgFileMatcher() );
modelLineageBuilderCtl.setReturnValue( ml, MockControl.ZERO_OR_MORE );
- modelLineageBuilder.buildModelLineage( modulePomFile, null, null, null, false, true );
+ modelLineageBuilder.buildModelLineage( modulePomFile, new DefaultProjectBuilderConfiguration(), null, false, true );
modelLineageBuilderCtl.setReturnValue( moduleMl, MockControl.ZERO_OR_MORE );
- modelInterpolator.interpolate( model, null, false );
+ modelInterpolator.interpolate( model, null, null, false );
modelInterpolatorCtl.setMatcher( new FirstArgModelIdMatcher() );
modelInterpolatorCtl.setReturnValue( model, MockControl.ZERO_OR_MORE );
- modelInterpolator.interpolate( parentModel, null, false );
+ modelInterpolator.interpolate( parentModel, null, null, false );
modelInterpolatorCtl.setReturnValue( parentModel, MockControl.ZERO_OR_MORE );
- modelInterpolator.interpolate( module, null, false );
+ modelInterpolator.interpolate( module, null, null, false );
modelInterpolatorCtl.setReturnValue( module, MockControl.ZERO_OR_MORE );
extensionManager.addPluginAsExtension( plugin, module, Collections.EMPTY_LIST, request );
@@ -318,7 +321,8 @@
MavenProject superProject = new MavenProject( new Model() );
superProject.setRemoteArtifactRepositories( Collections.EMPTY_LIST );
- projectBuilder.buildStandaloneSuperProject();
+ projectBuilder.buildStandaloneSuperProject( new DefaultProjectBuilderConfiguration() );
+ projectBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER );
projectBuilderCtl.setReturnValue( superProject, MockControl.ZERO_OR_MORE );
mockManager.replayAll();
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=644354&r1=644353&r2=644354&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 Thu Apr 3 08:18:18 2008
@@ -214,12 +214,15 @@
loggingLevel = MavenExecutionRequest.LOGGING_LEVEL_INFO;
}
- Properties executionProperties = getExecutionProperties( commandLine );
+ Properties executionProperties = new Properties();
+ Properties userProperties = new Properties();
+ populateProperties( commandLine, executionProperties, userProperties );
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setBaseDirectory( baseDirectory )
.setGoals( goals )
.setProperties( executionProperties ) // optional
+ .setUserProperties( userProperties ) // optional
.setReactorFailureBehavior( reactorFailureBehaviour ) // default: fail fast
.setRecursive( recursive ) // default: true
.setUseReactor( useReactor ) // default: false
@@ -248,10 +251,8 @@
// System properties handling
// ----------------------------------------------------------------------
- static Properties getExecutionProperties( CommandLine commandLine )
+ static void populateProperties( CommandLine commandLine, Properties executionProperties, Properties userProperties )
{
- Properties executionProperties = new Properties();
-
// add the env vars to the property set, with the "env." prefix
// XXX support for env vars should probably be removed from the ModelInterpolator
try
@@ -283,14 +284,14 @@
{
for ( int i = 0; i < defStrs.length; ++i )
{
- setCliProperty( defStrs[i], executionProperties );
+ setCliProperty( defStrs[i], userProperties );
}
}
+
+ executionProperties.putAll( userProperties );
}
executionProperties.putAll( System.getProperties() );
-
- return executionProperties;
}
private static void setCliProperty( String property,
Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/execution/DefaultMavenExecutionRequestPopulator.java Thu Apr 3 08:18:18 2008
@@ -193,15 +193,30 @@
private void executionProperties( MavenExecutionRequest request,
Configuration configuration )
{
- if ( request.getProperties() == null )
+ Properties requestProperties = request.getProperties();
+
+ if ( requestProperties == null )
{
- Properties props = configuration.getSystemProperties();
- if ( props == null )
+ requestProperties = configuration.getSystemProperties();
+ if ( requestProperties == null )
{
- props = System.getProperties();
+ requestProperties = System.getProperties();
}
- request.setProperties( props );
+ request.setProperties( requestProperties );
+ }
+
+ Properties userProperties = request.getUserProperties();
+ if ( userProperties != null )
+ {
+ for ( Iterator it = userProperties.keySet().iterator(); it.hasNext(); )
+ {
+ String key = (String) it.next();
+ if ( !requestProperties.containsKey( key ) )
+ {
+ requestProperties.setProperty( key, userProperties.getProperty( key ) );
+ }
+ }
}
}
Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/cli/CLIRequestUtilsTest.java Thu Apr 3 08:18:18 2008
@@ -68,20 +68,31 @@
{
System.setProperty( "test.property.1", "1.0" );
System.setProperty( "test.property.2", "2.0" );
- Properties p = CLIRequestUtils.getExecutionProperties( new CLIManager().parse( new String[] {
+ Properties execProperties = new Properties();
+ Properties userProperties = new Properties();
+
+ CLIRequestUtils.populateProperties( ( new CLIManager() ).parse( new String[] {
"-Dtest.property.2=2.1",
- "-Dtest.property.3=3.0" } ) );
+ "-Dtest.property.3=3.0"
+ } ), execProperties, userProperties );
// assume that everybody has a PATH env var
- String envPath = p.getProperty( "env.PATH" );
+ String envPath = execProperties.getProperty( "env.PATH" );
+ String envPath2 = userProperties.getProperty( "env.PATH" );
if ( envPath == null )
{
- envPath = p.getProperty( "env.Path" );
+ envPath = execProperties.getProperty( "env.Path" );
+ envPath2 = userProperties.getProperty( "env.Path" );
}
+
assertNotNull( envPath );
+ assertNull( envPath2 );
+
+ assertEquals( "1.0", execProperties.getProperty( "test.property.1" ) );
+ assertNull( userProperties.getProperty( "test.property.1" ) );
- assertEquals( "1.0", p.getProperty( "test.property.1" ) );
- assertEquals( "3.0", p.getProperty( "test.property.3" ) );
+ assertEquals( "3.0", execProperties.getProperty( "test.property.3" ) );
+ assertEquals( "3.0", userProperties.getProperty( "test.property.3" ) );
// sys props should override cmdline props
//assertEquals( "2.0", p.getProperty( "test.property.2" ) );
Modified: maven/components/trunk/maven-project/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/pom.xml?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-project/pom.xml (original)
+++ maven/components/trunk/maven-project/pom.xml Thu Apr 3 08:18:18 2008
@@ -52,6 +52,10 @@
<artifactId>plexus-utils</artifactId>
</dependency>
<dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-interpolation</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.maven.artifact</groupId>
<artifactId>maven-artifact</artifactId>
</dependency>
Modified: maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj (original)
+++ maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProjectArtifactErrorReporterAspect.aj Thu Apr 3 08:18:18 2008
@@ -4,6 +4,7 @@
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.model.Parent;
@@ -14,20 +15,20 @@
extends AbstractProjectErrorReporterAspect
{
- private pointcut mlbldr_resolveParentFromRepositories( Parent parentRef, ArtifactRepository localRepo,
+ private pointcut mlbldr_resolveParentFromRepositories( Parent parentRef, ProjectBuilderConfiguration config,
List remoteRepos, String childId, File childPomFile ):
- execution( private File DefaultModelLineageBuilder.resolveParentFromRepositories( Parent, ArtifactRepository, List, String, File ) )
- && args( parentRef, localRepo, remoteRepos, childId, childPomFile );
+ execution( private File DefaultModelLineageBuilder.resolveParentFromRepositories( Parent, ProjectBuilderConfiguration, List, String, File ) )
+ && args( parentRef, config, remoteRepos, childId, childPomFile );
- private pointcut mlbldr_parentArtifactNotFound( Parent parentRef, ArtifactRepository localRepo, List remoteRepos, String childId, File childPomFile, ArtifactNotFoundException cause ):
- cflow( mlbldr_resolveParentFromRepositories( parentRef, localRepo, remoteRepos, childId, childPomFile ) )
+ private pointcut mlbldr_parentArtifactNotFound( Parent parentRef, ProjectBuilderConfiguration config, List remoteRepos, String childId, File childPomFile, ArtifactNotFoundException cause ):
+ cflow( mlbldr_resolveParentFromRepositories( parentRef, config, remoteRepos, childId, childPomFile ) )
&& call( ProjectBuildingException.new( .., ArtifactNotFoundException ) )
&& within( DefaultModelLineageBuilder )
&& args( .., cause )
&& notWithinAspect();
- private pointcut mlbldr_parentArtifactUnresolvable( Parent parentRef, ArtifactRepository localRepo, List remoteRepos, String childId, File childPomFile, ArtifactResolutionException cause ):
- cflow( mlbldr_resolveParentFromRepositories( parentRef, localRepo, remoteRepos, childId, childPomFile ) )
+ private pointcut mlbldr_parentArtifactUnresolvable( Parent parentRef, ProjectBuilderConfiguration config, List remoteRepos, String childId, File childPomFile, ArtifactResolutionException cause ):
+ cflow( mlbldr_resolveParentFromRepositories( parentRef, config, remoteRepos, childId, childPomFile ) )
&& call( ProjectBuildingException.new( .., ArtifactResolutionException ) )
&& within( DefaultModelLineageBuilder )
&& args( .., cause )
@@ -43,10 +44,10 @@
// --> thrown ArtifactNotFoundException
// <---------- ProjectBuildingException
// =========================================================================
- before( Parent parentRef, ArtifactRepository localRepo, List remoteRepos, String childId, File childPomFile, ArtifactNotFoundException cause ):
- mlbldr_parentArtifactNotFound( parentRef, localRepo, remoteRepos, childId, childPomFile, cause )
+ before( Parent parentRef, ProjectBuilderConfiguration config, List remoteRepos, String childId, File childPomFile, ArtifactNotFoundException cause ):
+ mlbldr_parentArtifactNotFound( parentRef, config, remoteRepos, childId, childPomFile, cause )
{
- getReporter().reportParentPomArtifactNotFound( parentRef, localRepo, remoteRepos, childId, childPomFile, cause );
+ getReporter().reportParentPomArtifactNotFound( parentRef, config, remoteRepos, childId, childPomFile, cause );
}
// =========================================================================
@@ -59,9 +60,9 @@
// --> thrown ArtifactResolutionException
// <---------- ProjectBuildingException
// =========================================================================
- before( Parent parentRef, ArtifactRepository localRepo, List remoteRepos, String childId, File childPomFile, ArtifactResolutionException cause ):
- mlbldr_parentArtifactUnresolvable( parentRef, localRepo, remoteRepos, childId, childPomFile, cause )
+ before( Parent parentRef, ProjectBuilderConfiguration config, List remoteRepos, String childId, File childPomFile, ArtifactResolutionException cause ):
+ mlbldr_parentArtifactUnresolvable( parentRef, config, remoteRepos, childId, childPomFile, cause )
{
- getReporter().reportParentPomArtifactUnresolvable( parentRef, localRepo, remoteRepos, childId, childPomFile, cause );
+ getReporter().reportParentPomArtifactUnresolvable( parentRef, config, remoteRepos, childId, childPomFile, cause );
}
}
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=644354&r1=644353&r2=644354&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 Thu Apr 3 08:18:18 2008
@@ -188,7 +188,17 @@
ProfileManager profileManager )
throws ProjectBuildingException
{
- return buildFromSourceFileInternal( projectDescriptor, localRepository, profileManager );
+ ProjectBuilderConfiguration config = new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository )
+ .setGlobalProfileManager( profileManager );
+
+ return buildFromSourceFileInternal( projectDescriptor, config );
+ }
+
+ public MavenProject build( File projectDescriptor,
+ ProjectBuilderConfiguration config )
+ throws ProjectBuildingException
+ {
+ return buildFromSourceFileInternal( projectDescriptor, config );
}
/** @deprecated */
@@ -223,7 +233,9 @@
Model model = findModelFromRepository( artifact, remoteArtifactRepositories, localRepository );
- project = buildInternal( model, localRepository, remoteArtifactRepositories, artifact.getFile(), null,
+ ProjectBuilderConfiguration config = new DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
+
+ project = buildInternal( model, config, remoteArtifactRepositories, artifact.getFile(),
false, false, false );
}
else
@@ -241,12 +253,19 @@
throws ProjectBuildingException
{
//TODO mkleint - use the (Container, Properties) constructor to make system properties embeddable
- return buildStandaloneSuperProject( null );
+ return buildStandaloneSuperProject( new DefaultProjectBuilderConfiguration() );
}
public MavenProject buildStandaloneSuperProject( ProfileManager profileManager )
throws ProjectBuildingException
{
+ //TODO mkleint - use the (Container, Properties) constructor to make system properties embeddable
+ return buildStandaloneSuperProject( new DefaultProjectBuilderConfiguration().setGlobalProfileManager( profileManager ) );
+ }
+
+ public MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration config )
+ throws ProjectBuildingException
+ {
Model superModel = getSuperModel();
superModel.setGroupId( STANDALONE_SUPERPOM_GROUPID );
@@ -257,6 +276,8 @@
superModel = ModelUtils.cloneModel( superModel );
+ ProfileManager profileManager = config.getGlobalProfileManager();
+
List activeProfiles = new ArrayList();
if ( profileManager != null )
{
@@ -286,7 +307,7 @@
try
{
- processProjectLogic( project, null, null, null, true, false );
+ processProjectLogic( project, null, config, null, true, true );
project.setRemoteArtifactRepositories( mavenTools.buildArtifactRepositories( superModel.getRepositories() ) );
project.setPluginArtifactRepositories( mavenTools.buildArtifactRepositories( superModel.getRepositories() ) );
@@ -458,8 +479,7 @@
}
private MavenProject buildFromSourceFileInternal( File projectDescriptor,
- ArtifactRepository localRepository,
- ProfileManager profileManager )
+ ProjectBuilderConfiguration config )
throws ProjectBuildingException
{
getLogger().debug( "Checking cache-hit on project (in build*): " + projectDescriptor );
@@ -473,10 +493,9 @@
Model model = readModel( "unknown", projectDescriptor, STRICT_MODEL_PARSING );
project = buildInternal( model,
- localRepository,
+ config,
buildArtifactRepositories( getSuperModel() ),
projectDescriptor,
- profileManager,
STRICT_MODEL_PARSING,
true,
true );
@@ -655,10 +674,9 @@
// We've got a mixture of things going in the USD and from the repository, sometimes the descriptor
// is a real file and sometimes null which makes things confusing.
private MavenProject buildInternal( Model model,
- ArtifactRepository localRepository,
+ ProjectBuilderConfiguration config,
List parentSearchRepositories,
File projectDescriptor,
- ProfileManager externalProfileManager,
boolean strict, boolean validProfilesXmlLocation,
boolean fromSourceTree )
throws ProjectBuildingException
@@ -672,6 +690,7 @@
// FIXME: Find a way to pass in this context, so it's never null!
ProfileActivationContext profileActivationContext;
+ ProfileManager externalProfileManager = config.getGlobalProfileManager();
if ( externalProfileManager != null )
{
// used to trigger the caching of SystemProperties in the container context...
@@ -688,7 +707,7 @@
}
else
{
- profileActivationContext = new DefaultProfileActivationContext( System.getProperties(), false );
+ profileActivationContext = new DefaultProfileActivationContext( config.getExecutionProperties(), false );
}
LinkedHashSet activeInSuperPom = new LinkedHashSet();
@@ -721,7 +740,7 @@
try
{
- project = assembleLineage( model, lineage, localRepository, projectDescriptor, aggregatedRemoteWagonRepositories, externalProfileManager, strict, validProfilesXmlLocation );
+ project = assembleLineage( model, lineage, config, projectDescriptor, aggregatedRemoteWagonRepositories, strict, validProfilesXmlLocation );
}
catch ( InvalidRepositoryException e )
{
@@ -780,7 +799,7 @@
try
{
- project = processProjectLogic( project, projectDescriptor, localRepository, repositories, strict, false );
+ project = processProjectLogic( project, projectDescriptor, config, repositories, strict, false );
}
catch ( ModelInterpolationException e )
{
@@ -926,10 +945,10 @@
*/
private MavenProject processProjectLogic( MavenProject project,
File pomFile,
- ArtifactRepository localRepository,
+ ProjectBuilderConfiguration config,
List remoteRepositories,
boolean strict,
- boolean superPom )
+ boolean isSuperPom )
throws ProjectBuildingException, ModelInterpolationException, InvalidRepositoryException
{
Model model = project.getModel();
@@ -940,41 +959,37 @@
// [BP] - Can this above comment be explained?
// We don't need all the project methods that are added over those in the model, but we do need basedir
// mkleint - using System.getProperties() is almost definitely bad for embedding.
- Map context = new HashMap( System.getProperties() );
+ Map context = new HashMap();
- if ( pomFile != null )
+ // [MNG-2339] ensure the system properties are still interpolated for backwards compat, but the model values must win
+ if ( config.getExecutionProperties() != null && !config.getExecutionProperties().isEmpty() )
{
- File projectDir = pomFile.getAbsoluteFile().getParentFile();
+ context.putAll( config.getExecutionProperties() );
+ }
- context.put( "basedir", pomFile.getParentFile().getAbsolutePath() );
- context.put( "basedir", projectDir.getAbsolutePath() );
+ File projectDir = null;
- Build build = model.getBuild();
+ if ( pomFile != null )
+ {
+ projectDir = pomFile.getAbsoluteFile().getParentFile();
- // MNG-1927, MNG-2124, MNG-3355:
- // If the build section is present and the project directory is non-null, we should make
- // sure interpolation of the directories below uses translated paths.
- // Afterward, we'll double back and translate any paths that weren't covered during interpolation via the
- // code below...
- context.put( "build.directory", pathTranslator.alignToBaseDirectory( build.getDirectory(), projectDir ) );
- context.put( "build.outputDirectory", pathTranslator.alignToBaseDirectory( build.getOutputDirectory(), projectDir ) );
- context.put( "build.testOutputDirectory", pathTranslator.alignToBaseDirectory( build.getTestOutputDirectory(), projectDir ) );
- context.put( "build.sourceDirectory", pathTranslator.alignToBaseDirectory( build.getSourceDirectory(), projectDir ) );
- context.put( "build.testSourceDirectory", pathTranslator.alignToBaseDirectory( build.getTestSourceDirectory(), projectDir ) );
+ context.put( "basedir", projectDir.getAbsolutePath() );
}
- model = modelInterpolator.interpolate( model, context, strict );
+ Map overrideContext = new HashMap();
+ if ( !isSuperPom && config.getUserProperties() != null && !config.getUserProperties().isEmpty() )
+ {
+ overrideContext.putAll( config.getUserProperties() );
+ }
- // [MNG-2339] ensure the system properties are still interpolated for backwards compat, but the model values must win
- context.putAll( System.getProperties() );
- model = modelInterpolator.interpolate( model, context, strict );
+ model = modelInterpolator.interpolate( model, context, overrideContext, projectDir, true );
// We must inject any imported dependencyManagement information ahead of the defaults injection.
- if ( !superPom )
+ if ( !isSuperPom )
{
// TODO: [jdcasey] This line appears to be part of the problem for MNG-3391...
// the same line is in 2.0.x, so this is related to caching changes too...need to figure out how the two interact.
- mergeManagedDependencies( model, localRepository, remoteRepositories );
+ mergeManagedDependencies( model, config.getLocalRepository(), remoteRepositories );
}
// interpolation is before injection, because interpolation is off-limits in the injected variables
@@ -1081,10 +1096,9 @@
*/
private MavenProject assembleLineage( Model model,
LinkedList lineage,
- ArtifactRepository localRepository,
+ ProjectBuilderConfiguration config,
File pomFile,
Set aggregatedRemoteWagonRepositories,
- ProfileManager externalProfileManager,
boolean strict, boolean validProfilesXmlLocation )
throws ProjectBuildingException, InvalidRepositoryException
{
@@ -1092,10 +1106,11 @@
modelLineage.setOrigin( model, pomFile, new ArrayList( aggregatedRemoteWagonRepositories ), validProfilesXmlLocation );
- modelLineageBuilder.resumeBuildingModelLineage( modelLineage, localRepository, externalProfileManager, !strict );
+ modelLineageBuilder.resumeBuildingModelLineage( modelLineage, config, !strict );
// FIXME: Find a way to pass in this context, so it's never null!
ProfileActivationContext profileActivationContext;
+ ProfileManager externalProfileManager = config.getGlobalProfileManager();
if ( externalProfileManager != null )
{
@@ -1103,7 +1118,7 @@
}
else
{
- profileActivationContext = new DefaultProfileActivationContext( System.getProperties(), false );
+ profileActivationContext = new DefaultProfileActivationContext( config.getExecutionProperties(), false );
}
MavenProject lastProject = null;
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java?rev=644354&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java Thu Apr 3 08:18:18 2008
@@ -0,0 +1,73 @@
+package org.apache.maven.project;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.profiles.ProfileManager;
+
+import java.util.Properties;
+
+public class DefaultProjectBuilderConfiguration
+ implements ProjectBuilderConfiguration
+{
+
+ private ProfileManager globalProfileManager;
+
+ private ArtifactRepository localRepository;
+
+ private Properties userProperties;
+
+ private Properties executionProperties = System.getProperties();
+
+ public DefaultProjectBuilderConfiguration()
+ {
+ }
+
+ public ProjectBuilderConfiguration setGlobalProfileManager( ProfileManager globalProfileManager )
+ {
+ this.globalProfileManager = globalProfileManager;
+ return this;
+ }
+
+ public ProfileManager getGlobalProfileManager()
+ {
+ return globalProfileManager;
+ }
+
+ public ProjectBuilderConfiguration setLocalRepository( ArtifactRepository localRepository )
+ {
+ this.localRepository = localRepository;
+ return this;
+ }
+
+ public ArtifactRepository getLocalRepository()
+ {
+ return localRepository;
+ }
+
+ public ProjectBuilderConfiguration setUserProperties( Properties userProperties )
+ {
+ this.userProperties = userProperties;
+ return this;
+ }
+
+ public Properties getUserProperties()
+ {
+ if ( userProperties == null )
+ {
+ userProperties = new Properties();
+ }
+
+ return userProperties;
+ }
+
+ public Properties getExecutionProperties()
+ {
+ return executionProperties;
+ }
+
+ public ProjectBuilderConfiguration setExecutionProperties( Properties executionProperties )
+ {
+ this.executionProperties = executionProperties;
+ return this;
+ }
+
+}
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=644354&r1=644353&r2=644354&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 Thu Apr 3 08:18:18 2008
@@ -38,11 +38,17 @@
boolean STRICT_MODEL_PARSING = true;
+ /**
+ * @deprecated Use {@link MavenProjectBuilder#build(File, ProjectBuilderConfiguration)} instead.
+ */
MavenProject build( File project,
ArtifactRepository localRepository,
ProfileManager globalProfileManager )
throws ProjectBuildingException;
+ MavenProject build( File project, ProjectBuilderConfiguration configuration )
+ throws ProjectBuildingException;
+
MavenProject buildWithDependencies( File project,
ArtifactRepository localRepository,
ProfileManager globalProfileManager )
@@ -67,12 +73,17 @@
throws ProjectBuildingException;
/**
- * @return
- * @throws ProjectBuildingException
+ * @deprecated Use {@link MavenProjectBuilder#buildStandaloneSuperProject(ProjectBuilderConfiguration)} instead.
*/
MavenProject buildStandaloneSuperProject()
throws ProjectBuildingException;
+ /**
+ * @deprecated Use {@link MavenProjectBuilder#buildStandaloneSuperProject(ProjectBuilderConfiguration)} instead.
+ */
MavenProject buildStandaloneSuperProject( ProfileManager profileManager )
+ throws ProjectBuildingException;
+
+ MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration config )
throws ProjectBuildingException;
}
Copied: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java (from r642024, maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java)
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java?p2=maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java&p1=maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java&r1=642024&r2=644354&rev=644354&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java Thu Apr 3 08:18:18 2008
@@ -14,10 +14,14 @@
Properties getUserProperties();
+ Properties getExecutionProperties();
+
ProjectBuilderConfiguration setGlobalProfileManager( ProfileManager globalProfileManager );
ProjectBuilderConfiguration setLocalRepository( ArtifactRepository localRepository );
ProjectBuilderConfiguration setUserProperties( Properties userProperties );
+
+ ProjectBuilderConfiguration setExecutionProperties( Properties executionProperties );
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java Thu Apr 3 08:18:18 2008
@@ -23,17 +23,16 @@
import org.apache.maven.artifact.Artifact;
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.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.profiles.activation.DefaultProfileActivationContext;
import org.apache.maven.profiles.activation.ProfileActivationContext;
import org.apache.maven.profiles.build.ProfileAdvisor;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.project.workspace.ProjectWorkspace;
import org.codehaus.plexus.logging.LogEnabled;
@@ -88,9 +87,8 @@
* @see org.apache.maven.project.build.model.ModelLineageBuilder#buildModelLineage(java.io.File, org.apache.maven.artifact.repository.ArtifactRepository, java.util.List)
*/
public ModelLineage buildModelLineage( File pom,
- ArtifactRepository localRepository,
+ ProjectBuilderConfiguration config,
List remoteRepositories,
- ProfileManager profileManager,
boolean allowStubs,
boolean validProfilesXmlLocation )
throws ProjectBuildingException
@@ -127,12 +125,12 @@
currentRemoteRepositories = updateRepositorySet( current.getModel(),
currentRemoteRepositories,
current.getFile(),
- profileManager,
+ config,
current.isValidProfilesXmlLocation() );
current = resolveParentPom( current,
currentRemoteRepositories,
- localRepository,
+ config,
allowStubs );
}
while ( current != null );
@@ -141,8 +139,7 @@
}
public void resumeBuildingModelLineage( ModelLineage lineage,
- ArtifactRepository localRepository,
- ProfileManager profileManager,
+ ProjectBuilderConfiguration config,
boolean allowStubs )
throws ProjectBuildingException
{
@@ -166,7 +163,7 @@
// use the above information to re-bootstrap the resolution chain...
current = resolveParentPom( current,
currentRemoteRepositories,
- localRepository,
+ config,
allowStubs );
while ( current != null )
@@ -179,12 +176,12 @@
currentRemoteRepositories = updateRepositorySet( current.getModel(),
currentRemoteRepositories,
current.getFile(),
- profileManager,
+ config,
current.isValidProfilesXmlLocation() );
current = resolveParentPom( current,
currentRemoteRepositories,
- localRepository,
+ config,
allowStubs );
}
}
@@ -237,7 +234,7 @@
private List updateRepositorySet( Model model,
List oldArtifactRepositories,
File pomFile,
- ProfileManager externalProfileManager,
+ ProjectBuilderConfiguration config,
boolean useProfilesXml )
throws ProjectBuildingException
{
@@ -256,7 +253,7 @@
loadActiveProfileRepositories( remoteRepos,
model,
- externalProfileManager,
+ config,
projectDir,
useProfilesXml );
@@ -279,7 +276,7 @@
private void loadActiveProfileRepositories( List repositories,
Model model,
- ProfileManager profileManager,
+ ProjectBuilderConfiguration config,
File pomFile,
boolean useProfilesXml )
throws ProjectBuildingException
@@ -289,18 +286,18 @@
// FIXME: Find a way to pass in this context, so it's never null!
ProfileActivationContext context;
- if ( profileManager != null )
+ if ( config.getGlobalProfileManager() != null )
{
- context = profileManager.getProfileActivationContext();
+ context = config.getGlobalProfileManager().getProfileActivationContext();
}
else
{
- context = new DefaultProfileActivationContext( System.getProperties(), false );
+ context = new DefaultProfileActivationContext( config.getExecutionProperties(), false );
}
LinkedHashSet profileRepos = profileAdvisor.getArtifactRepositoriesFromActiveProfiles( model,
pomFile,
- profileManager );
+ config.getGlobalProfileManager() );
getLogger().debug( "Got external-profile repositories: " + profileRepos );
@@ -327,7 +324,7 @@
*/
private ModelAndFile resolveParentPom( ModelAndFile child,
List remoteRepositories,
- ArtifactRepository localRepository,
+ ProjectBuilderConfiguration config,
boolean allowStubs )
throws ProjectBuildingException
{
@@ -371,7 +368,7 @@
getLogger().debug( "Attempting to resolve parent POM: " + modelParent.getId() + " using repositories:\n" + StringUtils.join( remoteRepositories.iterator(), "\n" ) );
parentPomFile = resolveParentFromRepositories( modelParent,
- localRepository,
+ config,
remoteRepositories,
model.getId(),
modelPomFile );
@@ -467,7 +464,7 @@
}
private File resolveParentFromRepositories( Parent modelParent,
- ArtifactRepository localRepository,
+ ProjectBuilderConfiguration config,
List remoteRepositories,
String childId,
File childPomFile )
@@ -480,7 +477,7 @@
try
{
- artifactResolver.resolve( parentPomArtifact, remoteRepositories, localRepository );
+ artifactResolver.resolve( parentPomArtifact, remoteRepositories, config.getLocalRepository() );
}
catch ( ArtifactResolutionException e )
{
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/ModelLineageBuilder.java Thu Apr 3 08:18:18 2008
@@ -19,8 +19,7 @@
* under the License.
*/
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.ProjectBuildingException;
import java.io.File;
@@ -50,8 +49,8 @@
* @param allowStubs Whether stubbed-out Model instances should be constructed in the event that
* a parent-POM cannot be resolved.
*/
- ModelLineage buildModelLineage( File pom, ArtifactRepository localRepository, List remoteRepositories,
- ProfileManager profileManager, boolean allowStubs, boolean validProfilesXmlLocation )
+ ModelLineage buildModelLineage( File pom, ProjectBuilderConfiguration config, List remoteRepositories,
+ boolean allowStubs, boolean validProfilesXmlLocation )
throws ProjectBuildingException;
/**
@@ -65,8 +64,7 @@
* @param allowStubs Whether stubbed-out Model instances should be constructed in the event that
* a parent-POM cannot be resolved.
*/
- void resumeBuildingModelLineage( ModelLineage lineage, ArtifactRepository localRepository,
- ProfileManager profileManager, boolean allowStubs )
+ void resumeBuildingModelLineage( ModelLineage lineage, ProjectBuilderConfiguration config, boolean allowStubs )
throws ProjectBuildingException;
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java Thu Apr 3 08:18:18 2008
@@ -19,6 +19,7 @@
import org.apache.maven.project.InvalidProjectModelException;
import org.apache.maven.project.InvalidProjectVersionException;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.project.build.model.ModelAndFile;
import org.apache.maven.project.interpolation.ModelInterpolationException;
@@ -679,27 +680,27 @@
}
public void reportParentPomArtifactNotFound( Parent parentRef,
- ArtifactRepository localRepo,
+ ProjectBuilderConfiguration config,
List remoteRepos,
String childId,
File childPomFile,
ArtifactNotFoundException cause )
{
- reportArtifactError( parentRef, localRepo, remoteRepos, childId, childPomFile, cause );
+ reportArtifactError( parentRef, config, remoteRepos, childId, childPomFile, cause );
}
public void reportParentPomArtifactUnresolvable( Parent parentRef,
- ArtifactRepository localRepo,
+ ProjectBuilderConfiguration config,
List remoteRepos,
String childId,
File childPomFile,
ArtifactResolutionException cause )
{
- reportArtifactError( parentRef, localRepo, remoteRepos, childId, childPomFile, cause );
+ reportArtifactError( parentRef, config, remoteRepos, childId, childPomFile, cause );
}
private void reportArtifactError( Parent parentRef,
- ArtifactRepository localRepo,
+ ProjectBuilderConfiguration config,
List remoteRepos,
String childId,
File childPomFile,
@@ -727,7 +728,7 @@
writer.write( NEWLINE );
writer.write( NEWLINE );
writer.write( "Local Repository: " );
- writer.write( localRepo.getBasedir() );
+ writer.write( config.getLocalRepository().getBasedir() );
if ( ( remoteRepos != null ) && !remoteRepos.isEmpty() )
{
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java Thu Apr 3 08:18:18 2008
@@ -2,7 +2,6 @@
import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.UnknownRepositoryLayoutException;
-import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.model.DeploymentRepository;
@@ -17,6 +16,7 @@
import org.apache.maven.project.InvalidProjectModelException;
import org.apache.maven.project.InvalidProjectVersionException;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.project.build.model.ModelAndFile;
import org.apache.maven.project.interpolation.ModelInterpolationException;
@@ -352,7 +352,7 @@
* </pre>
*/
void reportParentPomArtifactNotFound( Parent parentRef,
- ArtifactRepository localRepo,
+ ProjectBuilderConfiguration config,
List remoteRepos,
String childId,
File childPomFile,
@@ -371,7 +371,7 @@
* </pre>
*/
void reportParentPomArtifactUnresolvable( Parent parentRef,
- ArtifactRepository localRepo,
+ ProjectBuilderConfiguration config,
List remoteRepos,
String childId,
File childPomFile,
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java?rev=644354&r1=644353&r2=644354&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java Thu Apr 3 08:18:18 2008
@@ -21,6 +21,7 @@
import org.apache.maven.model.Model;
+import java.io.File;
import java.util.Map;
/**
@@ -32,9 +33,25 @@
{
String ROLE = ModelInterpolator.class.getName();
- Model interpolate( Model project, Map context )
+ Model interpolate( Model project,
+ Map context )
throws ModelInterpolationException;
- Model interpolate( Model model, Map context, boolean strict )
+ Model interpolate( Model model,
+ Map context,
+ boolean strict )
+ throws ModelInterpolationException;
+
+ Model interpolate( Model model,
+ Map context,
+ Map overrideContext,
+ boolean outputDebugMessages )
+ throws ModelInterpolationException;
+
+ Model interpolate( Model model,
+ Map context,
+ Map overrideContext,
+ File projectDir,
+ boolean outputDebugMessages )
throws ModelInterpolationException;
}
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingValueSource.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingValueSource.java?rev=644354&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingValueSource.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingValueSource.java Thu Apr 3 08:18:18 2008
@@ -0,0 +1,37 @@
+package org.apache.maven.project.interpolation;
+
+import org.apache.maven.project.path.PathTranslator;
+import org.codehaus.plexus.interpolation.AbstractFunctionValueSourceWrapper;
+import org.codehaus.plexus.interpolation.ValueSource;
+
+import java.io.File;
+import java.util.List;
+
+public class PathTranslatingValueSource
+ extends AbstractFunctionValueSourceWrapper
+{
+
+ private final List unprefixedPathKeys;
+ private final File projectDir;
+ private final PathTranslator pathTranslator;
+
+ protected PathTranslatingValueSource( ValueSource valueSource, List unprefixedPathKeys, File projectDir, PathTranslator pathTranslator )
+ {
+ super( valueSource );
+ this.unprefixedPathKeys = unprefixedPathKeys;
+ this.projectDir = projectDir;
+ this.pathTranslator = pathTranslator;
+ }
+
+ protected Object executeFunction( String expression,
+ Object value )
+ {
+ if ( projectDir != null && value != null && unprefixedPathKeys.contains( expression ) )
+ {
+ return pathTranslator.alignToBaseDirectory( String.valueOf( value ), projectDir );
+ }
+
+ return value;
+ }
+
+}
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingValueSource.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingValueSource.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"