Author: jdcasey
Date: Thu Nov 29 20:26:58 2007
New Revision: 599692
URL: http://svn.apache.org/viewvc?rev=599692&view=rev
Log:
Removing pluginRepository use (finally), and fixing pluginGroups usage with
profiles from the settings and super-POM without an accompanying pom.xml in the
project directory...I know, something of a convoluted case.
Modified:
maven/components/trunk/maven-core/pom.xml
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderProjectWithExtensionReadingTest.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java
Modified: maven/components/trunk/maven-core/pom.xml
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/pom.xml?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
--- maven/components/trunk/maven-core/pom.xml (original)
+++ maven/components/trunk/maven-core/pom.xml Thu Nov 29 20:26:58 2007
@@ -115,6 +115,12 @@
<version>1.2_Java1.3</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-test-tools</artifactId>
+ <version>1.0-alpha-1</version>
+ <scope>test</scope>
+ </dependency>
<!-- Needed for backward compat aspect. -->
<dependency>
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=599692&r1=599691&r2=599692&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 Nov 29 20:26:58 2007
@@ -282,102 +282,116 @@
{
List projects = new ArrayList( files.size() );
- for ( Iterator iterator = files.iterator(); iterator.hasNext(); )
+ if ( files.isEmpty() )
{
- File file = (File) iterator.next();
-
- boolean usingReleasePom = false;
-
- if ( RELEASE_POMv4.equals( file.getName() ) )
- {
- getLogger().info( "NOTE: Using release-pom: " + file + " in
reactor build." );
-
- usingReleasePom = true;
- }
-
- MavenProject project;
try
{
- project = projectBuilder.build( file, localRepository,
globalProfileManager );
+ projects.add( projectBuilder.buildStandaloneSuperProject(
globalProfileManager ) );
}
catch ( ProjectBuildingException e )
{
- throw new MavenExecutionException( "Failed to build
MavenProject instance for: " + file, file, e );
+ throw new MavenExecutionException( "Failed to build
super-project instance.", e );
}
-
- if ( isRoot )
+ }
+ else
+ {
+ for ( Iterator iterator = files.iterator(); iterator.hasNext(); )
{
- project.setExecutionRoot( true );
- }
+ File file = (File) iterator.next();
- if ( ( project.getPrerequisites() != null ) && (
project.getPrerequisites().getMaven() != null ) )
- {
- DefaultArtifactVersion version = new DefaultArtifactVersion(
project.getPrerequisites().getMaven() );
+ boolean usingReleasePom = false;
- if ( runtimeInformation.getApplicationVersion().compareTo(
version ) < 0 )
+ if ( RELEASE_POMv4.equals( file.getName() ) )
{
- throw new MavenExecutionException(
- "Unable to build project '" + file +
- "; it requires Maven version " +
version.toString(), file );
- }
- }
+ getLogger().info( "NOTE: Using release-pom: " + file + "
in reactor build." );
- if ( ( project.getModules() != null ) &&
!project.getModules().isEmpty() && recursive )
- {
- // TODO: Really should fail if it was not? What if it is
aggregating - eg "ear"?
- project.setPackaging( "pom" );
+ usingReleasePom = true;
+ }
- File basedir = file.getParentFile();
+ MavenProject project;
+ try
+ {
+ project = projectBuilder.build( file, localRepository,
globalProfileManager );
+ }
+ catch ( ProjectBuildingException e )
+ {
+ throw new MavenExecutionException( "Failed to build
MavenProject instance for: " + file, file, e );
+ }
- // Initial ordering is as declared in the modules section
- List moduleFiles = new ArrayList( project.getModules().size()
);
+ if ( isRoot )
+ {
+ project.setExecutionRoot( true );
+ }
- for ( Iterator i = project.getModules().iterator();
i.hasNext(); )
+ if ( ( project.getPrerequisites() != null ) && (
project.getPrerequisites().getMaven() != null ) )
{
- String name = (String) i.next();
+ DefaultArtifactVersion version = new
DefaultArtifactVersion( project.getPrerequisites().getMaven() );
- if ( StringUtils.isEmpty( StringUtils.trim( name ) ) )
+ if ( runtimeInformation.getApplicationVersion().compareTo(
version ) < 0 )
{
- getLogger().warn( "Empty module detected. Please check
you don't have any empty module definitions in your POM." );
-
- continue;
+ throw new MavenExecutionException(
+ "Unable to build project '" + file +
+ "; it requires Maven version " +
version.toString(), file );
}
+ }
- File moduleFile;
+ if ( ( project.getModules() != null ) &&
!project.getModules().isEmpty() && recursive )
+ {
+ // TODO: Really should fail if it was not? What if it is
aggregating - eg "ear"?
+ project.setPackaging( "pom" );
- if ( usingReleasePom )
- {
- moduleFile = new File( basedir, name + "/" +
Maven.RELEASE_POMv4 );
- }
- else
- {
- moduleFile = new File( basedir, name + "/" +
Maven.POMv4 );
- }
+ File basedir = file.getParentFile();
+
+ // Initial ordering is as declared in the modules section
+ List moduleFiles = new ArrayList(
project.getModules().size() );
- if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
+ for ( Iterator i = project.getModules().iterator();
i.hasNext(); )
{
- // we don't canonicalize on unix to avoid interfering
with symlinks
+ String name = (String) i.next();
+
+ if ( StringUtils.isEmpty( StringUtils.trim( name ) ) )
+ {
+ getLogger().warn( "Empty module detected. Please
check you don't have any empty module definitions in your POM." );
+
+ continue;
+ }
+
+ File moduleFile;
- try
+ if ( usingReleasePom )
{
- moduleFile = moduleFile.getCanonicalFile();
+ moduleFile = new File( basedir, name + "/" +
Maven.RELEASE_POMv4 );
}
- catch ( IOException e )
+ else
{
- throw new MavenExecutionException( "Unable to
canonicalize file name " + moduleFile, e );
+ moduleFile = new File( basedir, name + "/" +
Maven.POMv4 );
}
- }
- moduleFiles.add( moduleFile );
- }
+ if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
+ {
+ // we don't canonicalize on unix to avoid
interfering with symlinks
- List collectedProjects = collectProjects( moduleFiles,
localRepository, recursive,
-
globalProfileManager, false );
+ try
+ {
+ moduleFile = moduleFile.getCanonicalFile();
+ }
+ catch ( IOException e )
+ {
+ throw new MavenExecutionException( "Unable to
canonicalize file name " + moduleFile, e );
+ }
+ }
+
+ moduleFiles.add( moduleFile );
+ }
- projects.addAll( collectedProjects );
- project.setCollectedProjects( collectedProjects );
+ List collectedProjects = collectProjects( moduleFiles,
localRepository, recursive,
+
globalProfileManager, false );
+
+ projects.addAll( collectedProjects );
+ project.setCollectedProjects( collectedProjects );
+ }
+ projects.add( project );
}
- projects.add( project );
}
return projects;
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=599692&r1=599691&r2=599692&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 Nov 29 20:26:58 2007
@@ -26,7 +26,7 @@
import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
import org.apache.maven.model.Plugin;
-import org.apache.maven.plugin.loader.PluginLoader;
+import org.apache.maven.model.PluginManagement;
import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.profiles.activation.DefaultProfileActivationContext;
import org.apache.maven.profiles.activation.ProfileActivationContext;
@@ -47,10 +47,12 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
public class DefaultBuildExtensionScanner
implements BuildExtensionScanner, LogEnabled
@@ -66,8 +68,6 @@
private ModelInterpolator modelInterpolator;
- private PluginLoader pluginLoader;
-
public void scanForBuildExtensions( List files,
MavenExecutionRequest request )
throws ExtensionScanningException
@@ -112,6 +112,8 @@
inheritedRemoteRepositories.addAll( originalRemoteRepositories );
+ Set managedPluginsWithExtensionsFlag = new HashSet();
+
for ( ModelLineageIterator lineageIterator =
lineage.reversedLineageIterator(); lineageIterator.hasNext(); )
{
Model model = (Model) lineageIterator.next();
@@ -144,7 +146,9 @@
model = modelInterpolator.interpolate( model,
inheritedInterpolationValues, false );
- checkModelBuildForExtensions( model, request,
inheritedRemoteRepositories );
+ grabManagedPluginsWithExtensionsFlagTurnedOn( model,
managedPluginsWithExtensionsFlag );
+
+ checkModelBuildForExtensions( model, request,
inheritedRemoteRepositories, managedPluginsWithExtensionsFlag );
if ( !reactorFiles.contains( modelPom ) )
{
@@ -180,6 +184,31 @@
}
}
+ private void grabManagedPluginsWithExtensionsFlagTurnedOn( Model model,
+ Set
managedPluginsWithExtensionsFlag )
+ {
+ Build build = model.getBuild();
+ if ( build != null )
+ {
+ PluginManagement pluginManagement = build.getPluginManagement();
+ if ( pluginManagement != null )
+ {
+ List plugins = pluginManagement.getPlugins();
+ if ( ( plugins != null ) && !plugins.isEmpty() )
+ {
+ for ( Iterator it = plugins.iterator(); it.hasNext(); )
+ {
+ Plugin plugin = (Plugin) it.next();
+ if ( plugin.isExtensions() )
+ {
+ managedPluginsWithExtensionsFlag.add(
plugin.getKey() );
+ }
+ }
+ }
+ }
+ }
+ }
+
private String createKey( Model model )
{
Parent parent = model.getParent();
@@ -271,7 +300,10 @@
}
}
- private void checkModelBuildForExtensions( Model model,
MavenExecutionRequest request, List remoteRepositories )
+ private void checkModelBuildForExtensions( Model model,
+ MavenExecutionRequest request,
+ List remoteRepositories,
+ Set
managedPluginsWithExtensionsFlag )
throws ExtensionScanningException
{
// FIXME: Fix the log level here.
@@ -316,7 +348,7 @@
{
Plugin plugin = (Plugin) extensionIterator.next();
- if ( plugin.isExtensions() )
+ if ( plugin.isExtensions() ||
managedPluginsWithExtensionsFlag.contains( plugin.getKey() ) )
{
getLogger().debug( "Adding plugin: " + plugin.getKey()
+ " as an extension(from model: " + model.getId() + ")" );
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/extension/DefaultExtensionManager.java
Thu Nov 29 20:26:58 2007
@@ -63,7 +63,6 @@
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
-import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
@@ -207,8 +206,7 @@
{
MavenProject dummyProject = new MavenProject( originatingModel );
- dummyProject.setPluginArtifactRepositories( remoteRepositories );
- dummyProject.setRemoteArtifactRepositories( Collections.EMPTY_LIST
);
+ dummyProject.setRemoteArtifactRepositories( remoteRepositories );
EventDispatcher dispatcher = new DefaultEventDispatcher(
request.getEventMonitors() );
MavenSession session = new MavenSession( container, request,
dispatcher, null );
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Thu Nov 29 20:26:58 2007
@@ -151,7 +151,7 @@
// TODO: since this is only used in the lifecycle executor, maybe it
should be moved there? There is no other
// use for the mapping manager in here
return pluginMappingManager.getByPrefix( prefix,
session.getSettings().getPluginGroups(),
-
project.getPluginArtifactRepositories(),
+
project.getRemoteArtifactRepositories(),
session.getLocalRepository()
);
}
@@ -213,7 +213,7 @@
List remoteRepositories = new ArrayList();
- remoteRepositories.addAll(
project.getPluginArtifactRepositories() );
+// remoteRepositories.addAll(
project.getPluginArtifactRepositories() );
remoteRepositories.addAll(
project.getRemoteArtifactRepositories() );
@@ -226,7 +226,7 @@
pluginArtifact = project.replaceWithActiveArtifact(
pluginArtifact );
- artifactResolver.resolve( pluginArtifact,
project.getPluginArtifactRepositories(),
+ artifactResolver.resolve( pluginArtifact,
project.getRemoteArtifactRepositories(),
localRepository );
addPlugin( plugin, pluginArtifact, project, session );
@@ -440,7 +440,7 @@
resolutionGroup = artifactMetadataSource.retrieve(
pluginArtifact,
localRepository,
-
project.getPluginArtifactRepositories() );
+
project.getRemoteArtifactRepositories() );
}
catch ( ArtifactMetadataRetrievalException e )
{
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginMappingManager.java
Thu Nov 29 20:26:58 2007
@@ -29,7 +29,6 @@
import org.codehaus.plexus.logging.AbstractLogEnabled;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -37,7 +36,7 @@
/**
* Manage plugin prefix to artifact ID mapping associations.
- *
+ *
* @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a>
* @version $Id: DefaultPluginMappingManager.java 495147 2007-01-11 07:47:53Z
* jvanzyl $
@@ -61,7 +60,14 @@
loadPluginMappings( groupIds, pluginRepositories, localRepository
);
}
- return (org.apache.maven.model.Plugin) pluginDefinitionsByPrefix.get(
pluginPrefix );
+ org.apache.maven.model.Plugin result = (org.apache.maven.model.Plugin)
pluginDefinitionsByPrefix.get( pluginPrefix );
+
+ if ( result == null )
+ {
+ getLogger().debug( "Failed to resolve plugin from prefix: " +
pluginPrefix, new Throwable() );
+ }
+
+ return result;
}
private void loadPluginMappings( List groupIds, List pluginRepositories,
ArtifactRepository localRepository )
@@ -100,6 +106,7 @@
{
RepositoryMetadata metadata = new GroupRepositoryMetadata( groupId );
+ getLogger().debug( "Checking repositories:\n" + pluginRepositories +
"\n\nfor plugin prefix metadata: " + groupId );
repositoryMetadataManager.resolve( metadata, pluginRepositories,
localRepository );
Metadata repoMetadata = metadata.getMetadata();
@@ -108,9 +115,10 @@
for ( Iterator pluginIterator =
repoMetadata.getPlugins().iterator(); pluginIterator.hasNext(); )
{
Plugin mapping = (Plugin) pluginIterator.next();
+ getLogger().debug( "Found plugin: " + mapping.getName() + "
with prefix: " + mapping.getPrefix() );
String prefix = mapping.getPrefix();
-
+
//if the prefix has already been found, don't add it again.
//this is to preserve the correct ordering of prefix searching
(MNG-2926)
if ( !pluginDefinitionsByPrefix.containsKey( prefix ) )
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/loader/DefaultPluginLoader.java
Thu Nov 29 20:26:58 2007
@@ -164,7 +164,7 @@
Settings settings = session.getSettings();
Plugin plugin = pluginMappingManager.getByPrefix( prefix,
settings.getPluginGroups(),
-
project.getPluginArtifactRepositories(), session.getLocalRepository() );
+
project.getRemoteArtifactRepositories(), session.getLocalRepository() );
PluginDescriptor pluginDescriptor = null;
if ( plugin != null )
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionManager.java
Thu Nov 29 20:26:58 2007
@@ -189,7 +189,7 @@
try
{
ResolutionGroup resolutionGroup =
- artifactMetadataSource.retrieve( artifact, localRepository,
project.getPluginArtifactRepositories() );
+ artifactMetadataSource.retrieve( artifact, localRepository,
project.getRemoteArtifactRepositories() );
// switching this out with the actual resolved artifact instance,
since the MMSource re-creates the pom
// artifact.
@@ -215,7 +215,7 @@
{
artifact = artifactFactory.createProjectArtifact( groupId,
artifactId, artifactVersion );
- pluginProject = mavenProjectBuilder.buildFromRepository(
artifact, project.getPluginArtifactRepositories(), localRepository );
+ pluginProject = mavenProjectBuilder.buildFromRepository(
artifact, project.getRemoteArtifactRepositories(), localRepository );
}
catch ( ProjectBuildingException e )
{
@@ -250,7 +250,7 @@
try
{
List versions =
artifactMetadataSource.retrieveAvailableVersions( artifact, localRepository,
-
project.getPluginArtifactRepositories() );
+
project.getRemoteArtifactRepositories() );
ArtifactVersion v = vr.matchVersion( versions );
artifactVersion = v != null ? v.toString() : null;
}
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/reactor/MavenExecutionException.java
Thu Nov 29 20:26:58 2007
@@ -81,6 +81,12 @@
super( message, cause );
}
+ public MavenExecutionException( String message,
+ ProjectBuildingException cause )
+ {
+ super( message, cause );
+ }
+
public File getPomFile()
{
return pomFile;
Modified:
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderProjectWithExtensionReadingTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderProjectWithExtensionReadingTest.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderProjectWithExtensionReadingTest.java
(original)
+++
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderProjectWithExtensionReadingTest.java
Thu Nov 29 20:26:58 2007
@@ -9,6 +9,7 @@
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.repository.ComponentDescriptor;
import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.logging.Logger;
import java.io.File;
import java.util.Map;
@@ -21,7 +22,9 @@
throws Exception
{
MavenExecutionRequest request = new
DefaultMavenExecutionRequest().setShowErrors( true )
- .setPom( new File( basedir, "src/test/resources/pom2.xml" ) );
+ .setPom( new File( basedir, "src/test/resources/pom2.xml" ) )
+ // TODO: Remove this!
+ .setLoggingLevel( Logger.LEVEL_DEBUG );
ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
@@ -39,11 +42,13 @@
embedder.getPlexusContainer().addComponentDescriptor( cd );
- // At this point the artifact handler will be inside the container and
+ // At this point the artifact handler will be inside the container and
// Maven internally will pick up the artifact handler and use it
accordingly to
// create the classpath appropriately.
MavenExecutionResult result = embedder.readProjectWithDependencies(
request );
+
+ System.out.println( "Got exceptions: " + result.getExceptions() );
assertNoExceptions( result );
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=599692&r1=599691&r2=599692&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 Nov 29 20:26:58 2007
@@ -222,6 +222,8 @@
superModel.setVersion( STANDALONE_SUPERPOM_VERSION );
+ superModel = ModelUtils.cloneModel( superModel );
+
List activeProfiles;
if ( profileManager != null )
{
@@ -239,12 +241,15 @@
project.setManagedVersionMap(
createManagedVersionMap( projectId,
superModel.getDependencyManagement(), null ) );
+ getLogger().debug( "Activated the following profiles for standalone
super-pom: " + activeProfiles );
project.setActiveProfiles( activeProfiles );
+
try
{
- project.setRemoteArtifactRepositories(
mavenTools.buildArtifactRepositories( superModel.getRepositories() ) );
+ processProjectLogic( project, null, true );
+ project.setRemoteArtifactRepositories(
mavenTools.buildArtifactRepositories( superModel.getRepositories() ) );
project.setPluginArtifactRepositories(
mavenTools.buildArtifactRepositories( superModel.getRepositories() ) );
}
catch ( InvalidRepositoryException e )
@@ -254,6 +259,15 @@
throw new ProjectBuildingException( STANDALONE_SUPERPOM_GROUPID +
":"
+
STANDALONE_SUPERPOM_ARTIFACTID,
"Maven super-POM contains an
invalid repository!",
+ e );
+ }
+ catch ( ModelInterpolationException e )
+ {
+ // we shouldn't be swallowing exceptions, no matter how unlikely.
+ // or, if we do, we should pay attention to the one coming from
getSuperModel()...
+ throw new ProjectBuildingException( STANDALONE_SUPERPOM_GROUPID +
":"
+ +
STANDALONE_SUPERPOM_ARTIFACTID,
+ "Maven super-POM contains an
invalid expressions!",
e );
}
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
Thu Nov 29 20:26:58 2007
@@ -1318,7 +1318,7 @@
*/
public List getPluginArtifactRepositories()
{
- return pluginArtifactRepositories;
+ return getRemoteArtifactRepositories();
}
public ArtifactRepository getDistributionManagementArtifactRepository()
@@ -1330,7 +1330,7 @@
public List getPluginRepositories()
{
// return model.getPluginRepositories();
- return Collections.EMPTY_LIST;
+ return model.getRepositories();
}
public void setActiveProfiles( List activeProfiles )
Modified:
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java
(original)
+++
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ProjectBuildingException.java
Thu Nov 29 20:26:58 2007
@@ -272,6 +272,14 @@
pomFile = new File ( pomLocation );
}
+ public ProjectBuildingException( String projectId,
+ String message,
+ ModelInterpolationException cause )
+ {
+ super( message, cause );
+ this.projectId = projectId;
+ }
+
public File getPomFile()
{
return pomFile;
Modified:
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
(original)
+++
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
Thu Nov 29 20:26:58 2007
@@ -45,7 +45,7 @@
super.setUp();
projectBuilder = (DefaultMavenProjectBuilder) lookup(
MavenProjectBuilder.ROLE );
-
+
localRepoDir = new File( System.getProperty( "java.io.tmpdir" ),
"local-repo." + System.currentTimeMillis() );
localRepoDir.mkdirs();
@@ -80,7 +80,7 @@
/**
* Check that we can build ok from the middle pom of a
(parent,child,grandchild) heirarchy
- * @throws Exception
+ * @throws Exception
*/
public void testBuildFromMiddlePom() throws Exception
{
@@ -88,12 +88,12 @@
File f2 = getTestFile(
"src/test/resources/projects/grandchild-check/child/grandchild/pom.xml");
getProject( f1 );
-
+
// it's the building of the grandchild project, having already cached
the child project
// (but not the parent project), which causes the problem.
getProject( f2 );
}
-
+
protected ArtifactRepository getLocalRepository()
throws Exception
{
Modified:
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java?rev=599692&r1=599691&r2=599692&view=diff
==============================================================================
---
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java
(original)
+++
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/SuperPomProjectBuilderTest.java
Thu Nov 29 20:26:58 2007
@@ -1,5 +1,16 @@
package org.apache.maven.project;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.Profile;
+import org.apache.maven.model.Repository;
+import org.apache.maven.profiles.DefaultProfileManager;
+import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.profiles.activation.DefaultProfileActivationContext;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,7 +30,6 @@
* under the License.
*/
-
public class SuperPomProjectBuilderTest
extends AbstractMavenProjectTestCase
{
@@ -31,12 +41,82 @@
projectBuilder = (DefaultMavenProjectBuilder) lookup(
MavenProjectBuilder.ROLE );
}
- public void testBuildFromMiddlePom() throws Exception
+ public void
testStandaloneSuperPomContainsInjectedExternalProfileRepositories()
+ throws ProjectBuildingException
+ {
+ Profile profile = new Profile();
+ profile.setId( "test-profile" );
+
+ Repository repo = new Repository();
+ repo.setId( "test" );
+ repo.setUrl( "http://www.nowhere.com" );
+
+ profile.addRepository( repo );
+
+ ProfileManager pm = new DefaultProfileManager( getContainer(), new
DefaultProfileActivationContext( new Properties(), true ) );
+
+ pm.addProfile( profile );
+ pm.explicitlyActivate( profile.getId() );
+
+ MavenProject project = projectBuilder.buildStandaloneSuperProject( pm
);
+
+ assertRepository( repo.getId(), project.getRepositories() );
+ assertRepository( repo.getId(), project.getPluginRepositories() );
+ assertArtifactRepository( repo.getId(),
project.getRemoteArtifactRepositories() );
+ assertArtifactRepository( repo.getId(),
project.getPluginArtifactRepositories() );
+ }
+
+ public void testStandaloneSuperPomContainsCentralRepo()
+ throws ProjectBuildingException
{
MavenProject project = projectBuilder.buildStandaloneSuperProject();
- assertNotNull( project.getRemoteArtifactRepositories() );
-//
-// assertNotNull( project.getPluginArtifactRepositories() );
+ assertRepository( "central", project.getRepositories() );
+ assertRepository( "central", project.getPluginRepositories() );
+ assertArtifactRepository( "central",
project.getRemoteArtifactRepositories() );
+ assertArtifactRepository( "central",
project.getPluginArtifactRepositories() );
}
+
+ private void assertArtifactRepository( String id,
+ List repos )
+ {
+ assertNotNull( repos );
+ assertFalse( repos.isEmpty() );
+
+ boolean found = false;
+ for ( Iterator it = repos.iterator(); it.hasNext(); )
+ {
+ ArtifactRepository repo = (ArtifactRepository) it.next();
+
+ found = id.equals( repo.getId() );
+ if ( found )
+ {
+ break;
+ }
+ }
+
+ assertTrue( found );
+ }
+
+ private void assertRepository( String id,
+ List repos )
+ {
+ assertNotNull( repos );
+ assertFalse( repos.isEmpty() );
+
+ boolean found = false;
+ for ( Iterator it = repos.iterator(); it.hasNext(); )
+ {
+ Repository repo = (Repository) it.next();
+
+ found = id.equals( repo.getId() );
+ if ( found )
+ {
+ break;
+ }
+ }
+
+ assertTrue( found );
+ }
+
}