o we simply can't survive right now without inserting plexus utils, we just have too many builds without

declared dependencies on it
o cleaning up some unused stuff from the bootstrap


git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@534974 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2007-05-03 19:50:08 +00:00
parent d985970c2a
commit 11a113d316
5 changed files with 54 additions and 12 deletions

View File

@ -19,11 +19,8 @@ classworlds.version=1.2-alpha-7
plexus-active-collections.version=1.0-beta-1
plexus.version=1.0-alpha-24
plexus-utils.version=1.4.1
plexus-interactivity-api.version=1.0-alpha-6-SNAPSHOT
commons-cli.version=1.0
commons-lang.version=2.1
wagon.version=1.0-beta-2
jsch.version=0.1.27
doxia.version=1.0-alpha-9-SNAPSHOT
modello.version=1.0-alpha-13
junit.version=3.8.1

View File

@ -121,7 +121,6 @@ under the License.
<pull orgpath="org/codehaus/plexus/plexus-container-default" version="${plexus.version}" name="plexus-container-default" repository="codehaus"/>
<pull orgpath="org/codehaus/plexus/plexus-component-api" version="${plexus.version}" name="plexus-component-api" repository="codehaus"/>
<pull orgpath="org/codehaus/plexus/plexus-classworlds" version="${classworlds.version}" name="plexus-classworlds" repository="codehaus"/>
<pull orgpath="org/codehaus/plexus/plexus-interactivity-api" version="${plexus-interactivity-api.version}" name="plexus-interactivity-api" repository="codehaus"/>
<pull orgpath="org/apache/maven/maven-parent" version="4" name="maven-parent" type="pom"/>
<pull orgpath="org/apache/maven/plugins/maven-plugins" version="4-SNAPSHOT" name="maven-plugins" type="pom"/>
<pull orgpath="org/apache/apache" version="3" name="apache" type="pom"/>
@ -131,11 +130,6 @@ under the License.
<pull orgpath="org/apache/maven/wagon/wagon-http-shared" version="${wagon.version}" name="wagon-http-shared"/>
<pull orgpath="org/apache/maven/wagon/wagon-http-lightweight" version="${wagon.version}" name="wagon-http-lightweight"/>
<pull orgpath="org/apache/maven/wagon/wagon-provider-api" version="${wagon.version}" name="wagon-provider-api"/>
<pull orgpath="org/apache/maven/wagon/wagon-ssh-external" version="${wagon.version}" name="wagon-ssh-external"/>
<pull orgpath="org/apache/maven/wagon/wagon-ssh-common" version="${wagon.version}" name="wagon-ssh-common"/>
<pull orgpath="org/apache/maven/wagon/wagon-ssh" version="${wagon.version}" name="wagon-ssh"/>
<pull orgpath="commons-lang/commons-lang" version="${commons-lang.version}" name="commons-lang"/>
<pull orgpath="com/jcraft/jsch" version="${jsch.version}" name="jsch"/>
<!-- Wagon Deps (End) -->
<pull orgpath="org/apache/maven/doxia/doxia-sink-api" version="${doxia.version}" name="doxia-sink-api"/>
<pull orgpath="org/codehaus/modello/modello-core" version="${modello.version}" name="modello-core" repository="codehaus"/>

View File

@ -20,11 +20,10 @@
*/
import org.apache.maven.ArtifactFilterManager;
import org.apache.maven.wagon.Wagon;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
@ -39,7 +38,6 @@
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.PlexusContainerException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.context.Context;
import org.codehaus.plexus.context.ContextException;
import org.codehaus.plexus.logging.AbstractLogEnabled;

View File

@ -455,6 +455,8 @@ private Set getPluginArtifacts( Artifact pluginArtifact, Plugin plugin, MavenPro
pluginArtifact.getId() + "': " + e.getMessage(), pluginArtifact, e );
}
checkPlexusUtils( resolutionGroup, artifactFactory );
Set dependencies = new HashSet( resolutionGroup.getArtifacts() );
List repositories = new ArrayList();
@ -1316,4 +1318,54 @@ public Map getPluginComponents( Plugin plugin, String role )
return container.lookupMap( role, pluginRealm );
}
public static void checkPlexusUtils( ResolutionGroup resolutionGroup, ArtifactFactory artifactFactory )
{
// ----------------------------------------------------------------------------
// If the plugin already declares a dependency on plexus-utils then we're all
// set as the plugin author is aware of its use. If we don't have a dependency
// on plexus-utils then we must protect users from stupid plugin authors who
// did not declare a direct dependency on plexus-utils because the version
// Maven uses is hidden from downstream use. We will also bump up any
// anything below 1.1 to 1.1 as this mimics the behaviour in 2.0.5 where
// plexus-utils 1.1 was being forced into use.
// ----------------------------------------------------------------------------
VersionRange vr = null;
try
{
vr = VersionRange.createFromVersionSpec( "[1.1,)" );
}
catch ( InvalidVersionSpecificationException e )
{
// Won't happen
}
boolean plexusUtilsPresent = false;
for ( Iterator i = resolutionGroup.getArtifacts().iterator(); i.hasNext(); )
{
Artifact a = (Artifact) i.next();
if ( a.getArtifactId().equals( "plexus-utils" ) &&
vr.containsVersion( new DefaultArtifactVersion( a.getVersion() ) ) )
{
plexusUtilsPresent = true;
break;
}
}
if ( !plexusUtilsPresent )
{
// We will add plexus-utils as every plugin was getting this anyway from Maven itself. We will set the
// version to the latest version we know that works as of the 2.0.6 release. We set the scope to runtime
// as this is what's implicitly happening in 2.0.6.
resolutionGroup.getArtifacts().add( artifactFactory.createArtifact( "org.codehaus.plexus",
"plexus-utils", "1.1",
Artifact.SCOPE_RUNTIME, "jar" ) );
}
}
}

View File

@ -48,6 +48,7 @@
import java.util.List;
import java.util.Properties;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
* @version $Id: PluginParameterExpressionEvaluatorTest.java,v 1.5 2005/03/08