Author: jdcasey
Date: Thu Sep 10 20:04:14 2009
New Revision: 813569
URL: http://svn.apache.org/viewvc?rev=813569&view=rev
Log:
[MNG-4347] merging feature branch.
Modified:
maven/maven-2/branches/maven-2.2.x/ (props changed)
maven/maven-2/branches/maven-2.2.x/apache-maven/ (props changed)
maven/maven-2/branches/maven-2.2.x/apache-maven/src/test/ (props changed)
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/ExtensionManager.java
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
(props changed)
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml
maven/maven-2/branches/maven-2.2.x/maven-integration-tests/ (props
changed)
maven/maven-2/branches/maven-2.2.x/maven-model/src/test/ (props changed)
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
maven/maven-2/branches/maven-2.2.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java
(props changed)
maven/maven-2/branches/maven-2.2.x/maven-settings/ (props changed)
maven/maven-2/branches/maven-2.2.x/maven-toolchain/ (props changed)
maven/maven-2/branches/maven-2.2.x/maven-toolchain/src/main/mdo/toolchains.mdo
(props changed)
Propchange: maven/maven-2/branches/maven-2.2.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -4,4 +4,5 @@
/maven/components/branches/maven-2.1.0-RC:688883,689695,689976,689990,752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x:751686,767628,767631,768817,768995,769010-769011
/maven/components/trunk:572229,720001,721902,726845,729292,792073
+/maven/maven-2/branches/maven-2.2.x-MNG-4347:813112
/maven/sandbox/branches/maven/MNG-3379:678167
Propchange: maven/maven-2/branches/maven-2.2.x/apache-maven/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -5,4 +5,5 @@
/maven/components/branches/maven-2.1.x/apache-maven:751686,767628,767631,768995,769010-769011
/maven/components/trunk/apache-maven:720001,721902,726845,727688
/maven/components/trunk/maven-distribution:727688
+/maven/maven-2/branches/maven-2.2.x-MNG-4347/apache-maven:813112
/maven/sandbox/branches/maven/MNG-3379/apache-maven:678167
Propchange: maven/maven-2/branches/maven-2.2.x/apache-maven/src/test/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -2,3 +2,4 @@
/maven/components/branches/maven-2.0.x/apache-maven/src/test:736543
/maven/components/branches/maven-2.1.0-RC/apache-maven/src/test:752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x/apache-maven/src/test:751686,767628,767631,768995,769010-769011
+/maven/maven-2/branches/maven-2.2.x-MNG-4347/apache-maven/src/test:813112
Modified:
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
Thu Sep 10 20:04:14 2009
@@ -63,6 +63,7 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.MissingProjectException;
import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.artifact.MavenMetadataSource;
import org.apache.maven.reactor.MavenExecutionException;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
@@ -107,6 +108,8 @@
protected ErrorDiagnostics errorDiagnostics;
protected RuntimeInformation runtimeInformation;
+
+ protected MavenMetadataSource mavenMetadataSource;
private static final long MB = 1024 * 1024;
@@ -267,6 +270,9 @@
globalProfileManager.loadSettingsProfiles( request.getSettings() );
getLogger().info( "Scanning for projects..." );
+
+ request.getProjectBuilderConfiguration()
+ .setMetadataSource( new MavenMetadataSource(
mavenMetadataSource, request.getProjectBuilderConfiguration() ) );
boolean foundProjects = true;
List projects = getProjects( request );
@@ -616,9 +622,7 @@
protected MavenSession createSession( MavenExecutionRequest request,
ReactorManager rpm )
{
- return new MavenSession( container, request.getSettings(),
request.getLocalRepository(),
- request.getEventDispatcher(), rpm,
request.getGoals(), request.getBaseDirectory(),
- request.getExecutionProperties(),
request.getUserProperties(), request.getStartTime() );
+ return new MavenSession( container, request, rpm );
}
/**
Modified:
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
Thu Sep 10 20:04:14 2009
@@ -25,6 +25,7 @@
import org.apache.maven.project.DefaultProjectBuilderConfiguration;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuilderConfiguration;
+import org.apache.maven.project.artifact.MavenMetadataSource;
import org.apache.maven.settings.Settings;
import org.codehaus.plexus.PlexusContainer;
import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -44,7 +45,7 @@
private ArtifactRepository localRepository;
- private List goals;
+ private List<String> goals;
private EventDispatcher eventDispatcher;
@@ -65,15 +66,17 @@
private MavenProject currentProject;
+ private ProjectBuilderConfiguration projectBuilderConfig;
+
public MavenSession( PlexusContainer container, Settings settings,
ArtifactRepository localRepository,
- EventDispatcher eventDispatcher, ReactorManager
reactorManager, List goals,
+ EventDispatcher eventDispatcher, ReactorManager
reactorManager, List<String> goals,
String executionRootDir, Properties
executionProperties, Date startTime )
{
this( container, settings, localRepository, eventDispatcher,
reactorManager, goals, executionRootDir, executionProperties, null, startTime );
}
public MavenSession( PlexusContainer container, Settings settings,
ArtifactRepository localRepository,
- EventDispatcher eventDispatcher, ReactorManager
reactorManager, List goals,
+ EventDispatcher eventDispatcher, ReactorManager
reactorManager, List<String> goals,
String executionRootDir, Properties
executionProperties, Properties userProperties, Date startTime )
{
this.container = container;
@@ -97,6 +100,21 @@
this.startTime = startTime;
}
+ public MavenSession( PlexusContainer container, MavenExecutionRequest
request, ReactorManager rpm )
+ {
+ this.container = container;
+ this.settings = request.getSettings();
+ this.localRepository = request.getLocalRepository();
+ this.eventDispatcher = request.getEventDispatcher();
+ this.reactorManager = rpm;
+ this.goals = request.getGoals();
+ this.executionRootDir = request.getBaseDirectory();
+ this.executionProperties = request.getExecutionProperties();
+ this.userProperties = request.getUserProperties();
+ this.startTime = request.getStartTime();
+ this.projectBuilderConfig = request.getProjectBuilderConfiguration();
+ }
+
public Map getPluginContext( PluginDescriptor pluginDescriptor,
MavenProject project )
{
return reactorManager.getPluginContext( pluginDescriptor, project );
@@ -112,7 +130,7 @@
return localRepository;
}
- public List getGoals()
+ public List<String> getGoals()
{
return goals;
}
@@ -138,13 +156,13 @@
return container.lookup( role, roleHint );
}
- public List lookupList( String role )
+ public List<?> lookupList( String role )
throws ComponentLookupException
{
return container.lookupList( role );
}
- public Map lookupMap( String role )
+ public Map<String, ?> lookupMap( String role )
throws ComponentLookupException
{
return container.lookupMap( role );
@@ -209,18 +227,19 @@
this.userProperties = userProperties;
}
- /**
- * NOTE: This varies from {...@link
DefaultMavenExecutionRequest#getProjectBuilderConfiguration()} in that
- * it doesn't supply a global profile manager.
- */
public ProjectBuilderConfiguration getProjectBuilderConfiguration()
{
- ProjectBuilderConfiguration config = new
DefaultProjectBuilderConfiguration();
- config.setLocalRepository( getLocalRepository() )
- .setExecutionProperties( getExecutionProperties() )
- .setUserProperties( getUserProperties() )
- .setBuildStartTime( getStartTime() );
+ if ( projectBuilderConfig == null )
+ {
+ ProjectBuilderConfiguration config = new
DefaultProjectBuilderConfiguration();
+ config.setLocalRepository( getLocalRepository() )
+ .setExecutionProperties( getExecutionProperties() )
+ .setUserProperties( getUserProperties() )
+ .setBuildStartTime( getStartTime() );
+
+ this.projectBuilderConfig = config;
+ }
- return config;
+ return projectBuilderConfig;
}
}
\ No newline at end of file
Modified:
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
Thu Sep 10 20:04:14 2009
@@ -38,7 +38,9 @@
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.model.Extension;
import org.apache.maven.plugin.DefaultPluginManager;
+import org.apache.maven.project.DefaultProjectBuilderConfiguration;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.apache.maven.wagon.Wagon;
import org.codehaus.classworlds.ClassRealm;
import org.codehaus.classworlds.ClassWorld;
@@ -61,7 +63,6 @@
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
@@ -99,6 +100,14 @@
ArtifactRepository localRepository )
throws ArtifactResolutionException, PlexusContainerException,
ArtifactNotFoundException
{
+ addExtension( extension, project, new
DefaultProjectBuilderConfiguration().setLocalRepository( localRepository ) );
+ }
+
+ public void addExtension( Extension extension,
+ MavenProject project,
+ ProjectBuilderConfiguration builderConfig )
+ throws ArtifactResolutionException, PlexusContainerException,
ArtifactNotFoundException
+ {
String extensionId = ArtifactUtils.versionlessKey(
extension.getGroupId(), extension.getArtifactId() );
getLogger().debug( "Initialising extension: " + extensionId );
@@ -108,11 +117,17 @@
if ( artifact != null )
{
ArtifactFilter filter = new ProjectArtifactExceptionFilter(
artifactFilter, project.getArtifact() );
+
+ ArtifactMetadataSource metadataSource =
builderConfig.getMetadataSource();
+ if ( metadataSource == null )
+ {
+ metadataSource = artifactMetadataSource;
+ }
ResolutionGroup resolutionGroup;
try
{
- resolutionGroup = artifactMetadataSource.retrieve( artifact,
localRepository,
+ resolutionGroup = metadataSource.retrieve( artifact,
builderConfig.getLocalRepository(),
project.getRemoteArtifactRepositories() );
}
catch ( ArtifactMetadataRetrievalException e )
@@ -123,10 +138,10 @@
// We use the same hack here to make sure that plexus 1.1 is
available for extensions that do
// not declare plexus-utils but need it. MNG-2900
- Set rgArtifacts = resolutionGroup.getArtifacts();
+ Set<Artifact> rgArtifacts = resolutionGroup.getArtifacts();
rgArtifacts = DefaultPluginManager.checkPlexusUtils( rgArtifacts,
artifactFactory );
- Set dependencies = new LinkedHashSet();
+ Set<Artifact> dependencies = new LinkedHashSet<Artifact>();
dependencies.add( artifact );
dependencies.addAll( rgArtifacts );
@@ -136,16 +151,16 @@
ArtifactResolutionResult result =
artifactResolver.resolveTransitively( dependencies, project.getArtifact(),
Collections.EMPTY_MAP,
//project.getManagedVersionMap(),
-
localRepository,
+
builderConfig.getLocalRepository(),
project.getRemoteArtifactRepositories(),
-
artifactMetadataSource, filter );
+
metadataSource, filter );
// gross hack for some backwards compat (MNG-2749)
// if it is a lone artifact, then we assume it to be a resource
package, and put it in the main container
// as before. If it has dependencies, that's when we risk conflict
and exile to the child container
// jvz: we have to make this 2 because plexus is always added now.
- Set artifacts = result.getArtifacts();
+ Set<Artifact> artifacts = result.getArtifacts();
// Lifecycles are loaded by the Lifecycle executor by looking up
lifecycle definitions from the
// core container. So we need to look if an extension has a
lifecycle mapping and use the container
@@ -153,10 +168,8 @@
if ( extensionContainsLifeycle( artifact.getFile() ) )
{
- for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+ for ( Artifact a : artifacts )
{
- Artifact a = (Artifact) i.next();
-
if ( artifactFilter.include( a ) )
{
getLogger().debug( "Adding extension to core
container: " + a.getFile() );
@@ -167,10 +180,8 @@
}
else if ( artifacts.size() == 2 )
{
- for ( Iterator i = artifacts.iterator(); i.hasNext(); )
+ for ( Artifact a : artifacts )
{
- Artifact a = (Artifact) i.next();
-
if ( !a.getArtifactId().equals( "plexus-utils" ) )
{
a = project.replaceWithActiveArtifact( a );
@@ -191,10 +202,8 @@
extensionContainer = createContainer();
}
- for ( Iterator i = result.getArtifacts().iterator();
i.hasNext(); )
+ for ( Artifact a : (Set<Artifact>) result.getArtifacts() )
{
- Artifact a = (Artifact) i.next();
-
a = project.replaceWithActiveArtifact( a );
getLogger().debug( "Adding to extension classpath: " +
a.getFile() );
Modified:
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/ExtensionManager.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/ExtensionManager.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/ExtensionManager.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/extension/ExtensionManager.java
Thu Sep 10 20:04:14 2009
@@ -25,6 +25,7 @@
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.model.Extension;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuilderConfiguration;
import org.codehaus.plexus.PlexusContainerException;
import java.util.Map;
@@ -43,4 +44,7 @@
void registerWagons();
Map<String, ArtifactHandler> getArtifactTypeHandlers();
+
+ void addExtension( Extension extension, MavenProject project,
ProjectBuilderConfiguration builderConfig )
+ throws ArtifactResolutionException, PlexusContainerException,
ArtifactNotFoundException;
}
Modified:
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
Thu Sep 10 20:04:14 2009
@@ -193,7 +193,7 @@
try
{
getLogger().debug( "Adding extension: " + extension );
- extensionManager.addExtension( extension, project,
session.getLocalRepository() );
+ extensionManager.addExtension( extension, project,
session.getProjectBuilderConfiguration() );
}
catch ( PlexusContainerException e )
{
Modified:
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Thu Sep 10 20:04:14 2009
@@ -740,10 +740,16 @@
ArtifactRepository localRepository = session.getLocalRepository();
+ ArtifactMetadataSource metadataSource =
session.getProjectBuilderConfiguration().getMetadataSource();
+ if ( metadataSource == null )
+ {
+ metadataSource = artifactMetadataSource;
+ }
+
ResolutionGroup resolutionGroup;
try
{
- resolutionGroup = artifactMetadataSource.retrieve(
pluginArtifact, localRepository,
+ resolutionGroup = metadataSource.retrieve( pluginArtifact,
localRepository,
project.getPluginArtifactRepositories() );
}
catch ( ArtifactMetadataRetrievalException e )
@@ -835,7 +841,7 @@
ArtifactResolutionResult result =
artifactResolver.resolveTransitively( dependencies, pluginArtifact,
pluginManagedDependencies,
localRepository, repositories,
-
artifactMetadataSource,
+
metadataSource,
artifactFilter );
Set resolved = result.getArtifacts();
Propchange:
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -6,4 +6,5 @@
/maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java:751686,753648,754505,754542
/maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java:767628,767631,768995,769010-769011
/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java:572229,720001,721902,726845,729292
+/maven/maven-2/branches/maven-2.2.x-MNG-4347/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java:813112
/maven/sandbox/branches/maven/MNG-3379/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginCollector.java:678167
Modified:
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-core/src/main/resources/META-INF/plexus/components.xml
Thu Sep 10 20:04:14 2009
@@ -108,6 +108,11 @@
<requirement>
<role>org.apache.maven.execution.RuntimeInformation</role>
</requirement>
+ <requirement>
+
<role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
+ <role-hint>maven</role-hint>
+ <field-name>mavenMetadataSource</field-name>
+ </requirement>
</requirements>
</component>
Propchange: maven/maven-2/branches/maven-2.2.x/maven-integration-tests/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -2,3 +2,4 @@
/maven/components/branches/maven-2.0.x/maven-integration-tests:736543
/maven/components/branches/maven-2.1.0-RC/maven-integration-tests:752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x/maven-integration-tests:751686,767628,767631,768995,769010-769011
+/maven/maven-2/branches/maven-2.2.x-MNG-4347/maven-integration-tests:813112
Propchange: maven/maven-2/branches/maven-2.2.x/maven-model/src/test/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -2,3 +2,4 @@
/maven/components/branches/maven-2.0.x/maven-model/src/test:736543
/maven/components/branches/maven-2.1.0-RC/maven-model/src/test:752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x/maven-model/src/test:751686,767628,767631,768995,769010-769011
+/maven/maven-2/branches/maven-2.2.x-MNG-4347/maven-model/src/test:813112
Modified:
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
Thu Sep 10 20:04:14 2009
@@ -239,6 +239,17 @@
boolean allowStubModel )
throws ProjectBuildingException
{
+ ProjectBuilderConfiguration config = new
DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
+
+ return buildFromRepository( artifact, remoteArtifactRepositories,
config, allowStubModel );
+ }
+
+ public MavenProject buildFromRepository( Artifact artifact,
+ List remoteArtifactRepositories,
+ ProjectBuilderConfiguration
config,
+ boolean allowStubModel )
+ throws ProjectBuildingException
+ {
String cacheKey = createCacheKey( artifact.getGroupId(),
artifact.getArtifactId(), artifact.getVersion() );
MavenProject project = (MavenProject) processedProjectCache.get(
cacheKey );
@@ -248,9 +259,7 @@
return project;
}
- Model model = findModelFromRepository( artifact,
remoteArtifactRepositories, localRepository, allowStubModel );
-
- ProjectBuilderConfiguration config = new
DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
+ Model model = findModelFromRepository( artifact,
remoteArtifactRepositories, config, allowStubModel );
return buildInternal( "Artifact [" + artifact + "]", model, config,
remoteArtifactRepositories,
null, false );
@@ -526,7 +535,7 @@
private Model findModelFromRepository( Artifact artifact,
List remoteArtifactRepositories,
- ArtifactRepository localRepository,
+ ProjectBuilderConfiguration config,
boolean allowStubModel )
throws ProjectBuildingException
{
@@ -555,7 +564,7 @@
try
{
- artifactResolver.resolve( projectArtifact,
remoteArtifactRepositories, localRepository );
+ artifactResolver.resolve( projectArtifact,
remoteArtifactRepositories, config.getLocalRepository() );
File file = projectArtifact.getFile();
@@ -574,7 +583,7 @@
status = ArtifactStatus.valueOf(
distributionManagement.getStatus() );
}
- checkStatusAndUpdate( projectArtifact, status, file,
remoteArtifactRepositories, localRepository );
+ checkStatusAndUpdate( projectArtifact, status, file,
remoteArtifactRepositories, config.getLocalRepository() );
// TODO: this is gross. Would like to give it the whole model, but
maven-artifact shouldn't depend on that
// Can a maven-core implementation of the Artifact interface store
it, and be used in the exceptions?
@@ -859,6 +868,7 @@
// only add the super repository if it wasn't overridden by a profile
or project
List repositories = new ArrayList( aggregatedRemoteWagonRepositories );
+ repositories.addAll( parentSearchRepositories );
List superRepositories = buildArtifactRepositories( superModel );
@@ -996,7 +1006,7 @@
// MNG-3482: Make sure depMgmt is interpolated before merging.
if ( !isSuperPom )
{
- mergeManagedDependencies( model, config.getLocalRepository(),
remoteRepositories );
+ mergeManagedDependencies( model, config, remoteRepositories );
}
// interpolation is before injection, because interpolation is
off-limits in the injected variables
@@ -1389,7 +1399,7 @@
try
{
- model = findModelFromRepository( parentArtifact,
remoteRepositories, config.getLocalRepository(), false );
+ model = findModelFromRepository( parentArtifact,
remoteRepositories, config, false );
}
catch ( ProjectBuildingException e )
{
@@ -1422,7 +1432,7 @@
return project;
}
- private void mergeManagedDependencies(Model model, ArtifactRepository
localRepository, List parentSearchRepositories)
+ private void mergeManagedDependencies(Model model,
ProjectBuilderConfiguration config, List parentSearchRepositories)
throws ProjectBuildingException
{
DependencyManagement modelDepMgmt = model.getDependencyManagement();
@@ -1453,7 +1463,7 @@
{
Artifact artifact =
artifactFactory.createProjectArtifact( dep.getGroupId(), dep.getArtifactId(),
dep.getVersion(), dep.getScope() );
- MavenProject project = buildFromRepository(artifact,
parentSearchRepositories, localRepository, false);
+ MavenProject project = buildFromRepository(artifact,
parentSearchRepositories, config, false);
DependencyManagement depMgmt =
project.getDependencyManagement();
Modified:
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
Thu Sep 10 20:04:14 2009
@@ -1,5 +1,6 @@
package org.apache.maven.project;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.profiles.ProfileManager;
@@ -20,6 +21,8 @@
private Date buildStartTime;
+ private ArtifactMetadataSource metadataSource;
+
public DefaultProjectBuilderConfiguration()
{
}
@@ -84,4 +87,15 @@
return this;
}
+ public ProjectBuilderConfiguration setMetadataSource(
ArtifactMetadataSource metadataSource )
+ {
+ this.metadataSource = metadataSource;
+ return this;
+ }
+
+ public ArtifactMetadataSource getMetadataSource()
+ {
+ return metadataSource;
+ }
+
}
Modified:
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
Thu Sep 10 20:04:14 2009
@@ -91,6 +91,22 @@
throws ProjectBuildingException;
/**
+ * Build the artifact using the local repository and profile manager from
the project-builder
+ * configuration, resolving it if necessary.
+ *
+ * @param artifact the artifact description
+ * @param configuration The {...@link ProjectBuilderConfiguration}
instance containing local
+ * repository, profile manager, etc.
+ * @param remoteArtifactRepositories the remote repository list
+ * @param allowStubModel return a stub if the POM is not found
+ * @return the built project
+ * @throws ProjectBuildingException
+ */
+ MavenProject buildFromRepository( Artifact artifact, List
remoteArtifactRepositories,
+ ProjectBuilderConfiguration
configuration, boolean allowStubModel )
+ throws ProjectBuildingException;
+
+ /**
* @deprecated Use {...@link
MavenProjectBuilder#buildStandaloneSuperProject(ProjectBuilderConfiguration)}
instead.
*/
MavenProject buildStandaloneSuperProject( ArtifactRepository
localRepository )
Modified:
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
Thu Sep 10 20:04:14 2009
@@ -1,5 +1,6 @@
package org.apache.maven.project;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.profiles.ProfileManager;
@@ -29,4 +30,8 @@
ProjectBuilderConfiguration setBuildStartTime( Date buildStartTime );
+ ProjectBuilderConfiguration setMetadataSource( ArtifactMetadataSource mms
);
+
+ ArtifactMetadataSource getMetadataSource();
+
}
Modified:
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL:
http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=813569&r1=813568&r2=813569&view=diff
==============================================================================
---
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
(original)
+++
maven/maven-2/branches/maven-2.2.x/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
Thu Sep 10 20:04:14 2009
@@ -53,6 +53,7 @@
import org.apache.maven.project.InvalidProjectModelException;
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.validation.ModelValidationResult;
import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -78,8 +79,29 @@
// lazily instantiated and cached.
private MavenProject superProject;
- private Set warnedPoms = new HashSet();
-
+ // cache
+ private final Set<String> warnedPoms;
+
+ // per-session information
+ private ProjectBuilderConfiguration projectBuilderConfig;
+
+ public MavenMetadataSource()
+ {
+ warnedPoms = new HashSet<String>();
+ }
+
+ public MavenMetadataSource( MavenMetadataSource mms,
ProjectBuilderConfiguration configuration )
+ {
+ mavenProjectBuilder = mms.mavenProjectBuilder;
+ artifactFactory = mms.artifactFactory;
+ repositoryMetadataManager = mms.repositoryMetadataManager;
+ superProject = mms.superProject;
+ warnedPoms = mms.warnedPoms;
+
+ projectBuilderConfig = configuration;
+ projectBuilderConfig.setMetadataSource( this );
+ }
+
/**
* Resolve all relocations in the POM for this artifact, and return the
new artifact coordinate.
*/
@@ -143,6 +165,12 @@
throws ArtifactMetadataRetrievalException
{
MavenProject project = null;
+
+ ProjectBuilderConfiguration config = projectBuilderConfig;
+ if ( config == null )
+ {
+ config = new
DefaultProjectBuilderConfiguration().setLocalRepository( localRepository );
+ }
Artifact pomArtifact;
boolean done = false;
@@ -160,7 +188,7 @@
{
try
{
- project = mavenProjectBuilder.buildFromRepository(
pomArtifact, remoteRepositories, localRepository,
+ project = mavenProjectBuilder.buildFromRepository(
pomArtifact, remoteRepositories, config,
true );
}
catch ( InvalidProjectModelException e )
@@ -352,11 +380,17 @@
private List aggregateRepositoryLists( List remoteRepositories, List
remoteArtifactRepositories )
throws ArtifactMetadataRetrievalException
{
+ ProjectBuilderConfiguration config = projectBuilderConfig;
+ if ( config == null )
+ {
+ config = new DefaultProjectBuilderConfiguration();
+ }
+
if ( superProject == null )
{
try
{
- superProject =
mavenProjectBuilder.buildStandaloneSuperProject( new
DefaultProjectBuilderConfiguration() );
+ superProject =
mavenProjectBuilder.buildStandaloneSuperProject( config );
}
catch ( ProjectBuildingException e )
{
Propchange:
maven/maven-2/branches/maven-2.2.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -2,3 +2,4 @@
/maven/components/branches/maven-2.1.0-M1-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:690315,691793
/maven/components/branches/maven-2.1.0-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:688883,689695,689976,689990,752168,752428,752622,752653,753089-753090,753320,755086,755199,755215
/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:751686,767628,767631,768995,769010-769011
+/maven/maven-2/branches/maven-2.2.x-MNG-4347/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:813112
Propchange: maven/maven-2/branches/maven-2.2.x/maven-settings/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -5,4 +5,5 @@
/maven/components/branches/maven-2.1.x/maven-settings:751686,767628,767631,768817,768995,769010-769011
/maven/components/trunk/maven-core:804537
/maven/components/trunk/maven-settings:572229,720001,721902,726845,729292,792073
+/maven/maven-2/branches/maven-2.2.x-MNG-4347/maven-settings:813112
/maven/sandbox/branches/maven/MNG-3379/maven-settings:678167
Propchange: maven/maven-2/branches/maven-2.2.x/maven-toolchain/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -5,4 +5,5 @@
/maven/components/branches/maven-2.1.x/maven-toolchain:751686,767628,767631,768817,768995,769010-769011
/maven/components/trunk/maven-core:804533,804535
/maven/components/trunk/maven-toolchain:572229,720001,721902,726845,729292,792073
+/maven/maven-2/branches/maven-2.2.x-MNG-4347/maven-toolchain:813112
/maven/sandbox/branches/maven/MNG-3379/maven-toolchain:678167
Propchange:
maven/maven-2/branches/maven-2.2.x/maven-toolchain/src/main/mdo/toolchains.mdo
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep 10 20:04:14 2009
@@ -1,2 +1,3 @@
/maven/components/branches/maven-2.1.x/maven-toolchain/src/main/mdo/toolchains.mdo:768778,768796,768995,769010-769011
/maven/components/trunk/maven-core/src/main/mdo/toolchains.mdo:804535
+/maven/maven-2/branches/maven-2.2.x-MNG-4347/maven-toolchain/src/main/mdo/toolchains.mdo:813112