mirror of https://github.com/apache/maven.git
o Renamed new plugin manager to make room for the legacy impl that will provide backward-compat with existing plugins
o Extracted plugin version resolution into a dedicated component git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@805962 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
68ca923fb5
commit
ff4d83c2d5
|
@ -54,7 +54,7 @@ import org.apache.maven.plugin.MojoFailureException;
|
||||||
import org.apache.maven.plugin.MojoNotFoundException;
|
import org.apache.maven.plugin.MojoNotFoundException;
|
||||||
import org.apache.maven.plugin.PluginConfigurationException;
|
import org.apache.maven.plugin.PluginConfigurationException;
|
||||||
import org.apache.maven.plugin.PluginDescriptorParsingException;
|
import org.apache.maven.plugin.PluginDescriptorParsingException;
|
||||||
import org.apache.maven.plugin.PluginManager;
|
import org.apache.maven.plugin.BuildPluginManager;
|
||||||
import org.apache.maven.plugin.PluginManagerException;
|
import org.apache.maven.plugin.PluginManagerException;
|
||||||
import org.apache.maven.plugin.PluginNotFoundException;
|
import org.apache.maven.plugin.PluginNotFoundException;
|
||||||
import org.apache.maven.plugin.PluginResolutionException;
|
import org.apache.maven.plugin.PluginResolutionException;
|
||||||
|
@ -63,6 +63,10 @@ import org.apache.maven.plugin.descriptor.Parameter;
|
||||||
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
||||||
import org.apache.maven.plugin.lifecycle.Execution;
|
import org.apache.maven.plugin.lifecycle.Execution;
|
||||||
import org.apache.maven.plugin.lifecycle.Phase;
|
import org.apache.maven.plugin.lifecycle.Phase;
|
||||||
|
import org.apache.maven.plugin.version.DefaultPluginVersionRequest;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionRequest;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolver;
|
||||||
import org.apache.maven.project.MavenProject;
|
import org.apache.maven.project.MavenProject;
|
||||||
import org.apache.maven.repository.RepositorySystem;
|
import org.apache.maven.repository.RepositorySystem;
|
||||||
import org.apache.maven.wagon.ResourceDoesNotExistException;
|
import org.apache.maven.wagon.ResourceDoesNotExistException;
|
||||||
|
@ -92,13 +96,16 @@ public class DefaultLifecycleExecutor
|
||||||
private Logger logger;
|
private Logger logger;
|
||||||
|
|
||||||
@Requirement
|
@Requirement
|
||||||
private PluginManager pluginManager;
|
private BuildPluginManager pluginManager;
|
||||||
|
|
||||||
@Requirement
|
@Requirement
|
||||||
protected RepositorySystem repositorySystem;
|
protected RepositorySystem repositorySystem;
|
||||||
|
|
||||||
@Requirement
|
@Requirement
|
||||||
private ProjectDependenciesResolver projectDependenciesResolver;
|
private ProjectDependenciesResolver projectDependenciesResolver;
|
||||||
|
|
||||||
|
@Requirement
|
||||||
|
private PluginVersionResolver pluginVersionResolver;
|
||||||
|
|
||||||
// @Configuration(source="org/apache/maven/lifecycle/lifecycles.xml")
|
// @Configuration(source="org/apache/maven/lifecycle/lifecycles.xml")
|
||||||
private List<Lifecycle> lifecycles;
|
private List<Lifecycle> lifecycles;
|
||||||
|
@ -379,7 +386,7 @@ public class DefaultLifecycleExecutor
|
||||||
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
|
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
|
||||||
CycleDetectedInPluginGraphException, MojoNotFoundException, NoPluginFoundForPrefixException,
|
CycleDetectedInPluginGraphException, MojoNotFoundException, NoPluginFoundForPrefixException,
|
||||||
InvalidPluginDescriptorException, PluginManagerException, LifecyclePhaseNotFoundException,
|
InvalidPluginDescriptorException, PluginManagerException, LifecyclePhaseNotFoundException,
|
||||||
LifecycleNotFoundException
|
LifecycleNotFoundException, PluginVersionResolutionException
|
||||||
{
|
{
|
||||||
MavenProject project = session.getCurrentProject();
|
MavenProject project = session.getCurrentProject();
|
||||||
|
|
||||||
|
@ -464,7 +471,7 @@ public class DefaultLifecycleExecutor
|
||||||
}
|
}
|
||||||
|
|
||||||
private void calculateExecutionForIndividualGoal( MavenSession session, List<MojoExecution> lifecyclePlan, String goal )
|
private void calculateExecutionForIndividualGoal( MavenSession session, List<MojoExecution> lifecyclePlan, String goal )
|
||||||
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, CycleDetectedInPluginGraphException, MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException
|
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, CycleDetectedInPluginGraphException, MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException, PluginVersionResolutionException
|
||||||
{
|
{
|
||||||
// If this is a goal like "mvn modello:java" and the POM looks like the following:
|
// If this is a goal like "mvn modello:java" and the POM looks like the following:
|
||||||
//
|
//
|
||||||
|
@ -623,7 +630,7 @@ public class DefaultLifecycleExecutor
|
||||||
Collection<MojoDescriptor> alreadyForkedExecutions )
|
Collection<MojoDescriptor> alreadyForkedExecutions )
|
||||||
throws MojoNotFoundException, PluginNotFoundException, PluginResolutionException,
|
throws MojoNotFoundException, PluginNotFoundException, PluginResolutionException,
|
||||||
PluginDescriptorParsingException, CycleDetectedInPluginGraphException, NoPluginFoundForPrefixException,
|
PluginDescriptorParsingException, CycleDetectedInPluginGraphException, NoPluginFoundForPrefixException,
|
||||||
InvalidPluginDescriptorException, LifecyclePhaseNotFoundException, LifecycleNotFoundException
|
InvalidPluginDescriptorException, LifecyclePhaseNotFoundException, LifecycleNotFoundException, PluginVersionResolutionException
|
||||||
{
|
{
|
||||||
MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
|
MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
|
||||||
|
|
||||||
|
@ -889,7 +896,7 @@ public class DefaultLifecycleExecutor
|
||||||
|
|
||||||
// org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process
|
// org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process
|
||||||
MojoDescriptor getMojoDescriptor( String task, MavenSession session )
|
MojoDescriptor getMojoDescriptor( String task, MavenSession session )
|
||||||
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, CycleDetectedInPluginGraphException, MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException
|
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, CycleDetectedInPluginGraphException, MojoNotFoundException, NoPluginFoundForPrefixException, InvalidPluginDescriptorException, PluginVersionResolutionException
|
||||||
{
|
{
|
||||||
MavenProject project = session.getCurrentProject();
|
MavenProject project = session.getCurrentProject();
|
||||||
|
|
||||||
|
@ -971,98 +978,11 @@ public class DefaultLifecycleExecutor
|
||||||
return pluginManager.getMojoDescriptor( plugin, goal, repositoryRequest );
|
return pluginManager.getMojoDescriptor( plugin, goal, repositoryRequest );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resolvePluginVersion( Plugin plugin, RepositoryRequest repositoryRequest )
|
private void resolvePluginVersion( Plugin plugin, RepositoryRequest repositoryRequest )
|
||||||
throws PluginNotFoundException
|
throws PluginVersionResolutionException
|
||||||
{
|
{
|
||||||
ArtifactRepository localRepository = repositoryRequest.getLocalRepository();
|
PluginVersionRequest versionRequest = new DefaultPluginVersionRequest( plugin, repositoryRequest );
|
||||||
|
plugin.setVersion( pluginVersionResolver.resolve( versionRequest ).getVersion() );
|
||||||
File artifactMetadataFile = null;
|
|
||||||
|
|
||||||
String localPath;
|
|
||||||
|
|
||||||
// Search in remote repositories for a (released) version.
|
|
||||||
//
|
|
||||||
// maven-metadata-{central|nexus|...}.xml
|
|
||||||
//
|
|
||||||
//TODO: we should cycle through the repositories but take the repository which actually
|
|
||||||
// satisfied the prefix.
|
|
||||||
for ( ArtifactRepository repository : repositoryRequest.getRemoteRepositories() )
|
|
||||||
{
|
|
||||||
localPath = plugin.getGroupId().replace( '.', '/' ) + "/" + plugin.getArtifactId() + "/maven-metadata-" + repository.getId() + ".xml";
|
|
||||||
|
|
||||||
artifactMetadataFile = new File( localRepository.getBasedir(), localPath );
|
|
||||||
|
|
||||||
if ( !artifactMetadataFile.exists() /* || user requests snapshot updates */)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
String remotePath = plugin.getGroupId().replace( '.', '/' ) + "/" + plugin.getArtifactId() + "/maven-metadata.xml";
|
|
||||||
|
|
||||||
repositorySystem.retrieve( repository, artifactMetadataFile, remotePath, null );
|
|
||||||
}
|
|
||||||
catch ( TransferFailedException e )
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
catch ( ResourceDoesNotExistException e )
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Search in the local repositiory for a (development) version
|
|
||||||
//
|
|
||||||
// maven-metadata-local.xml
|
|
||||||
//
|
|
||||||
if ( artifactMetadataFile == null || !artifactMetadataFile.exists() )
|
|
||||||
{
|
|
||||||
localPath =
|
|
||||||
plugin.getGroupId().replace( '.', '/' ) + "/" + plugin.getArtifactId() + "/maven-metadata-"
|
|
||||||
+ localRepository.getId() + ".xml";
|
|
||||||
|
|
||||||
artifactMetadataFile = new File( localRepository.getBasedir(), localPath );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( artifactMetadataFile.exists() )
|
|
||||||
{
|
|
||||||
logger.debug( "Extracting version for plugin " + plugin.getKey() + " from " + artifactMetadataFile );
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Metadata pluginMetadata = readMetadata( artifactMetadataFile );
|
|
||||||
|
|
||||||
if ( pluginMetadata.getVersioning() != null )
|
|
||||||
{
|
|
||||||
String release = pluginMetadata.getVersioning().getRelease();
|
|
||||||
|
|
||||||
if ( StringUtils.isNotEmpty( release ) )
|
|
||||||
{
|
|
||||||
plugin.setVersion( release );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
String latest = pluginMetadata.getVersioning().getLatest();
|
|
||||||
|
|
||||||
if ( StringUtils.isNotEmpty( latest ) )
|
|
||||||
{
|
|
||||||
plugin.setVersion( latest );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch ( RepositoryMetadataReadException e )
|
|
||||||
{
|
|
||||||
logger.warn( "Error reading plugin metadata: ", e );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( StringUtils.isEmpty( plugin.getVersion() ) )
|
|
||||||
{
|
|
||||||
throw new PluginNotFoundException( plugin, repositoryRequest.getRemoteRepositories() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void injectPluginDeclarationFromProject( Plugin plugin, MavenProject project )
|
private void injectPluginDeclarationFromProject( Plugin plugin, MavenProject project )
|
||||||
|
@ -1221,7 +1141,7 @@ public class DefaultLifecycleExecutor
|
||||||
{
|
{
|
||||||
resolvePluginVersion( plugin, repositoryRequest );
|
resolvePluginVersion( plugin, repositoryRequest );
|
||||||
}
|
}
|
||||||
catch ( PluginNotFoundException e )
|
catch ( PluginVersionResolutionException e )
|
||||||
{
|
{
|
||||||
throw new LifecycleExecutionException( "Error resolving version for plugin " + plugin.getKey(), e );
|
throw new LifecycleExecutionException( "Error resolving version for plugin " + plugin.getKey(), e );
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.apache.maven.plugin.PluginDescriptorParsingException;
|
||||||
import org.apache.maven.plugin.PluginManagerException;
|
import org.apache.maven.plugin.PluginManagerException;
|
||||||
import org.apache.maven.plugin.PluginNotFoundException;
|
import org.apache.maven.plugin.PluginNotFoundException;
|
||||||
import org.apache.maven.plugin.PluginResolutionException;
|
import org.apache.maven.plugin.PluginResolutionException;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Jason van Zyl
|
* @author Jason van Zyl
|
||||||
|
@ -51,7 +52,7 @@ public interface LifecycleExecutor
|
||||||
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
|
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException,
|
||||||
CycleDetectedInPluginGraphException, MojoNotFoundException, NoPluginFoundForPrefixException,
|
CycleDetectedInPluginGraphException, MojoNotFoundException, NoPluginFoundForPrefixException,
|
||||||
InvalidPluginDescriptorException, PluginManagerException, LifecyclePhaseNotFoundException,
|
InvalidPluginDescriptorException, PluginManagerException, LifecyclePhaseNotFoundException,
|
||||||
LifecycleNotFoundException;
|
LifecycleNotFoundException, PluginVersionResolutionException;
|
||||||
|
|
||||||
// For a given project packaging find all the plugins that are bound to any registered
|
// For a given project packaging find all the plugins that are bound to any registered
|
||||||
// lifecycles. The project builder needs to now what default plugin information needs to be
|
// lifecycles. The project builder needs to now what default plugin information needs to be
|
||||||
|
@ -73,9 +74,6 @@ public interface LifecycleExecutor
|
||||||
//
|
//
|
||||||
void populateDefaultConfigurationForPlugins( Collection<Plugin> plugins, RepositoryRequest repositoryRequest )
|
void populateDefaultConfigurationForPlugins( Collection<Plugin> plugins, RepositoryRequest repositoryRequest )
|
||||||
throws LifecycleExecutionException;
|
throws LifecycleExecutionException;
|
||||||
|
|
||||||
void resolvePluginVersion( Plugin plugin, RepositoryRequest repositoryRequest )
|
|
||||||
throws PluginNotFoundException;
|
|
||||||
|
|
||||||
void execute( MavenSession session );
|
void execute( MavenSession session );
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
package org.apache.maven.plugin;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for additional information regarding
|
||||||
|
* copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance with the License. You may obtain a
|
||||||
|
* copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
||||||
|
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||||
|
* or implied. See the License for the specific language governing permissions and limitations under
|
||||||
|
* the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import org.apache.maven.artifact.repository.RepositoryRequest;
|
||||||
|
import org.apache.maven.execution.MavenSession;
|
||||||
|
import org.apache.maven.model.Plugin;
|
||||||
|
import org.apache.maven.plugin.descriptor.MojoDescriptor;
|
||||||
|
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
||||||
|
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Jason van Zyl
|
||||||
|
*/
|
||||||
|
public interface BuildPluginManager
|
||||||
|
{
|
||||||
|
// igorf: Way too many declared exceptions!
|
||||||
|
PluginDescriptor loadPlugin( Plugin plugin, RepositoryRequest repositoryRequest )
|
||||||
|
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, CycleDetectedInPluginGraphException, InvalidPluginDescriptorException;
|
||||||
|
|
||||||
|
// igorf: Way too many declared exceptions!
|
||||||
|
MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, RepositoryRequest repositoryRequest )
|
||||||
|
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, CycleDetectedInPluginGraphException, MojoNotFoundException, InvalidPluginDescriptorException;
|
||||||
|
|
||||||
|
void executeMojo( MavenSession session, MojoExecution execution )
|
||||||
|
throws MojoFailureException, MojoExecutionException, PluginConfigurationException, PluginManagerException;
|
||||||
|
|
||||||
|
ClassRealm getPluginRealm( MavenSession session, PluginDescriptor pluginDescriptor )
|
||||||
|
throws PluginManagerException;
|
||||||
|
}
|
|
@ -38,9 +38,9 @@ import org.codehaus.plexus.configuration.PlexusConfigurationException;
|
||||||
// TODO: the antrun plugin has its own configurator, the only plugin that does. might need to think about how that works
|
// TODO: the antrun plugin has its own configurator, the only plugin that does. might need to think about how that works
|
||||||
// TODO: remove the coreArtifactFilterManager
|
// TODO: remove the coreArtifactFilterManager
|
||||||
|
|
||||||
@Component(role = PluginManager.class)
|
@Component(role = BuildPluginManager.class)
|
||||||
public class DefaultPluginManager
|
public class DefaultBuildPluginManager
|
||||||
implements PluginManager
|
implements BuildPluginManager
|
||||||
{
|
{
|
||||||
|
|
||||||
@Requirement
|
@Requirement
|
|
@ -24,6 +24,8 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionException;
|
||||||
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
|
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
|
||||||
import org.apache.maven.model.Plugin;
|
import org.apache.maven.model.Plugin;
|
||||||
import org.apache.maven.model.ReportPlugin;
|
import org.apache.maven.model.ReportPlugin;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionNotFoundException;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signifies a failure to load a plugin. This is used to abstract the specific errors which may be
|
* Signifies a failure to load a plugin. This is used to abstract the specific errors which may be
|
||||||
|
|
|
@ -1,43 +1,83 @@
|
||||||
package org.apache.maven.plugin;
|
package org.apache.maven.plugin;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
* agreements. See the NOTICE file distributed with this work for additional information regarding
|
* or more contributor license agreements. See the NOTICE file
|
||||||
* copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
|
* distributed with this work for additional information
|
||||||
* "License"); you may not use this file except in compliance with the License. You may obtain a
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
* copy of the License at
|
* to you under the Apache License, Version 2.0 (the
|
||||||
*
|
* "License"); you may not use this file except in compliance
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* with the License. You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
*
|
||||||
* or implied. See the License for the specific language governing permissions and limitations under
|
* Unless required by applicable law or agreed to in writing,
|
||||||
* the License.
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import org.apache.maven.artifact.repository.RepositoryRequest;
|
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.versioning.InvalidVersionSpecificationException;
|
||||||
import org.apache.maven.execution.MavenSession;
|
import org.apache.maven.execution.MavenSession;
|
||||||
import org.apache.maven.model.Plugin;
|
import org.apache.maven.model.Plugin;
|
||||||
import org.apache.maven.plugin.descriptor.MojoDescriptor;
|
|
||||||
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
||||||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
import org.apache.maven.plugin.version.PluginVersionNotFoundException;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
||||||
|
import org.apache.maven.project.MavenProject;
|
||||||
|
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
|
||||||
|
import org.apache.maven.settings.Settings;
|
||||||
|
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Jason van Zyl
|
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
|
||||||
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public interface PluginManager
|
public interface PluginManager
|
||||||
{
|
{
|
||||||
// igorf: Way too many declared exceptions!
|
String ROLE = PluginManager.class.getName();
|
||||||
PluginDescriptor loadPlugin( Plugin plugin, RepositoryRequest repositoryRequest )
|
|
||||||
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, CycleDetectedInPluginGraphException, InvalidPluginDescriptorException;
|
|
||||||
|
|
||||||
// igorf: Way too many declared exceptions!
|
void executeMojo( MavenProject project, MojoExecution execution, MavenSession session )
|
||||||
MojoDescriptor getMojoDescriptor( Plugin plugin, String goal, RepositoryRequest repositoryRequest )
|
throws MojoExecutionException, ArtifactResolutionException, MojoFailureException, ArtifactNotFoundException,
|
||||||
throws PluginNotFoundException, PluginResolutionException, PluginDescriptorParsingException, CycleDetectedInPluginGraphException, MojoNotFoundException, InvalidPluginDescriptorException;
|
InvalidDependencyVersionException, PluginManagerException, PluginConfigurationException;
|
||||||
|
|
||||||
void executeMojo( MavenSession session, MojoExecution execution )
|
PluginDescriptor getPluginDescriptorForPrefix( String prefix );
|
||||||
throws MojoFailureException, MojoExecutionException, PluginConfigurationException, PluginManagerException;
|
|
||||||
|
|
||||||
ClassRealm getPluginRealm( MavenSession session, PluginDescriptor pluginDescriptor )
|
Plugin getPluginDefinitionForPrefix( String prefix, MavenSession session, MavenProject project );
|
||||||
throws PluginManagerException;
|
|
||||||
}
|
PluginDescriptor verifyPlugin( Plugin plugin, MavenProject project, Settings settings,
|
||||||
|
ArtifactRepository localRepository )
|
||||||
|
throws ArtifactResolutionException, PluginVersionResolutionException, ArtifactNotFoundException,
|
||||||
|
InvalidVersionSpecificationException, InvalidPluginException, PluginManagerException, PluginNotFoundException,
|
||||||
|
PluginVersionNotFoundException;
|
||||||
|
|
||||||
|
Object getPluginComponent( Plugin plugin, String role, String roleHint )
|
||||||
|
throws PluginManagerException, ComponentLookupException;
|
||||||
|
|
||||||
|
Map getPluginComponents( Plugin plugin, String role )
|
||||||
|
throws ComponentLookupException, PluginManagerException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 2.2.1
|
||||||
|
*/
|
||||||
|
PluginDescriptor loadPluginDescriptor( Plugin plugin, MavenProject project, MavenSession session )
|
||||||
|
throws ArtifactResolutionException, PluginVersionResolutionException, ArtifactNotFoundException,
|
||||||
|
InvalidVersionSpecificationException, InvalidPluginException, PluginManagerException, PluginNotFoundException,
|
||||||
|
PluginVersionNotFoundException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 2.2.1
|
||||||
|
*/
|
||||||
|
PluginDescriptor loadPluginFully( Plugin plugin, MavenProject project, MavenSession session )
|
||||||
|
throws ArtifactResolutionException, PluginVersionResolutionException, ArtifactNotFoundException,
|
||||||
|
InvalidVersionSpecificationException, InvalidPluginException, PluginManagerException, PluginNotFoundException,
|
||||||
|
PluginVersionNotFoundException;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,121 @@
|
||||||
|
package org.apache.maven.plugin.internal;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
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.versioning.InvalidVersionSpecificationException;
|
||||||
|
import org.apache.maven.execution.MavenSession;
|
||||||
|
import org.apache.maven.model.Plugin;
|
||||||
|
import org.apache.maven.plugin.BuildPluginManager;
|
||||||
|
import org.apache.maven.plugin.InvalidPluginException;
|
||||||
|
import org.apache.maven.plugin.MojoExecution;
|
||||||
|
import org.apache.maven.plugin.MojoExecutionException;
|
||||||
|
import org.apache.maven.plugin.MojoFailureException;
|
||||||
|
import org.apache.maven.plugin.PluginConfigurationException;
|
||||||
|
import org.apache.maven.plugin.PluginManager;
|
||||||
|
import org.apache.maven.plugin.PluginManagerException;
|
||||||
|
import org.apache.maven.plugin.PluginNotFoundException;
|
||||||
|
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionNotFoundException;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
||||||
|
import org.apache.maven.project.MavenProject;
|
||||||
|
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
|
||||||
|
import org.apache.maven.settings.Settings;
|
||||||
|
import org.codehaus.plexus.component.annotations.Component;
|
||||||
|
import org.codehaus.plexus.component.annotations.Requirement;
|
||||||
|
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Benjamin Bentmann
|
||||||
|
*/
|
||||||
|
@Component( role = PluginManager.class )
|
||||||
|
public class DefaultPluginManager
|
||||||
|
implements PluginManager
|
||||||
|
{
|
||||||
|
|
||||||
|
@Requirement
|
||||||
|
private BuildPluginManager pluginManager;
|
||||||
|
|
||||||
|
public void executeMojo( MavenProject project, MojoExecution execution, MavenSession session )
|
||||||
|
throws MojoExecutionException, ArtifactResolutionException, MojoFailureException, ArtifactNotFoundException,
|
||||||
|
InvalidDependencyVersionException, PluginManagerException, PluginConfigurationException
|
||||||
|
{
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getPluginComponent( Plugin plugin, String role, String roleHint )
|
||||||
|
throws PluginManagerException, ComponentLookupException
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map getPluginComponents( Plugin plugin, String role )
|
||||||
|
throws ComponentLookupException, PluginManagerException
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Plugin getPluginDefinitionForPrefix( String prefix, MavenSession session, MavenProject project )
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PluginDescriptor getPluginDescriptorForPrefix( String prefix )
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PluginDescriptor loadPluginDescriptor( Plugin plugin, MavenProject project, MavenSession session )
|
||||||
|
throws ArtifactResolutionException, PluginVersionResolutionException, ArtifactNotFoundException,
|
||||||
|
InvalidVersionSpecificationException, InvalidPluginException, PluginManagerException, PluginNotFoundException,
|
||||||
|
PluginVersionNotFoundException
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PluginDescriptor loadPluginFully( Plugin plugin, MavenProject project, MavenSession session )
|
||||||
|
throws ArtifactResolutionException, PluginVersionResolutionException, ArtifactNotFoundException,
|
||||||
|
InvalidVersionSpecificationException, InvalidPluginException, PluginManagerException, PluginNotFoundException,
|
||||||
|
PluginVersionNotFoundException
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PluginDescriptor verifyPlugin( Plugin plugin, MavenProject project, Settings settings,
|
||||||
|
ArtifactRepository localRepository )
|
||||||
|
throws ArtifactResolutionException, PluginVersionResolutionException, ArtifactNotFoundException,
|
||||||
|
InvalidVersionSpecificationException, InvalidPluginException, PluginManagerException, PluginNotFoundException,
|
||||||
|
PluginVersionNotFoundException
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,134 @@
|
||||||
|
package org.apache.maven.plugin.version;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||||
|
import org.apache.maven.artifact.repository.DefaultRepositoryRequest;
|
||||||
|
import org.apache.maven.artifact.repository.RepositoryCache;
|
||||||
|
import org.apache.maven.artifact.repository.RepositoryRequest;
|
||||||
|
import org.apache.maven.model.Plugin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Collects settings required to resolve the version for a plugin.
|
||||||
|
*
|
||||||
|
* @author Benjamin Bentmann
|
||||||
|
*/
|
||||||
|
public class DefaultPluginVersionRequest
|
||||||
|
implements PluginVersionRequest
|
||||||
|
{
|
||||||
|
|
||||||
|
private String groupId;
|
||||||
|
|
||||||
|
private String artifactId;
|
||||||
|
|
||||||
|
private RepositoryRequest repositoryRequest;
|
||||||
|
|
||||||
|
public DefaultPluginVersionRequest()
|
||||||
|
{
|
||||||
|
repositoryRequest = new DefaultRepositoryRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultPluginVersionRequest( RepositoryRequest repositoryRequest )
|
||||||
|
{
|
||||||
|
this.repositoryRequest = new DefaultRepositoryRequest( repositoryRequest );
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultPluginVersionRequest( Plugin plugin, RepositoryRequest repositoryRequest )
|
||||||
|
{
|
||||||
|
this.groupId = plugin.getGroupId();
|
||||||
|
this.artifactId = plugin.getArtifactId();
|
||||||
|
this.repositoryRequest = new DefaultRepositoryRequest( repositoryRequest );
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGroupId()
|
||||||
|
{
|
||||||
|
return groupId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultPluginVersionRequest setGroupId( String groupId )
|
||||||
|
{
|
||||||
|
this.groupId = groupId;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getArtifactId()
|
||||||
|
{
|
||||||
|
return artifactId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultPluginVersionRequest setArtifactId( String artifactId )
|
||||||
|
{
|
||||||
|
this.artifactId = artifactId;
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RepositoryCache getCache()
|
||||||
|
{
|
||||||
|
return repositoryRequest.getCache();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultPluginVersionRequest setCache( RepositoryCache cache )
|
||||||
|
{
|
||||||
|
repositoryRequest.setCache( cache );
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArtifactRepository getLocalRepository()
|
||||||
|
{
|
||||||
|
return repositoryRequest.getLocalRepository();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultPluginVersionRequest setLocalRepository( ArtifactRepository localRepository )
|
||||||
|
{
|
||||||
|
repositoryRequest.setLocalRepository( localRepository );
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ArtifactRepository> getRemoteRepositories()
|
||||||
|
{
|
||||||
|
return repositoryRequest.getRemoteRepositories();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultPluginVersionRequest setRemoteRepositories( List<ArtifactRepository> remoteRepositories )
|
||||||
|
{
|
||||||
|
repositoryRequest.setRemoteRepositories( remoteRepositories );
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOffline()
|
||||||
|
{
|
||||||
|
return repositoryRequest.isOffline();
|
||||||
|
}
|
||||||
|
|
||||||
|
public DefaultPluginVersionRequest setOffline( boolean offline )
|
||||||
|
{
|
||||||
|
repositoryRequest.setOffline( offline );
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package org.apache.maven.plugin;
|
package org.apache.maven.plugin.version;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
@ -0,0 +1,127 @@
|
||||||
|
package org.apache.maven.plugin.version;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||||
|
import org.apache.maven.artifact.repository.RepositoryCache;
|
||||||
|
import org.apache.maven.artifact.repository.RepositoryRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Collects settings required to resolve the version for a plugin.
|
||||||
|
*
|
||||||
|
* @author Benjamin Bentmann
|
||||||
|
*/
|
||||||
|
public interface PluginVersionRequest
|
||||||
|
extends RepositoryRequest
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the group id of the plugin.
|
||||||
|
*
|
||||||
|
* @return The group id of the plugin.
|
||||||
|
*/
|
||||||
|
String getGroupId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the group id of the plugin.
|
||||||
|
*
|
||||||
|
* @param groupId The group id of the plugin.
|
||||||
|
* @return This request, never {@code null}.
|
||||||
|
*/
|
||||||
|
PluginVersionRequest setGroupId( String groupId );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the artifact id of the plugin.
|
||||||
|
*
|
||||||
|
* @return The artifact id of the plugin.
|
||||||
|
*/
|
||||||
|
String getArtifactId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the artifact id of the plugin.
|
||||||
|
*
|
||||||
|
* @param artifactId The artifact id of the plugin.
|
||||||
|
* @return This request, never {@code null}.
|
||||||
|
*/
|
||||||
|
PluginVersionRequest setArtifactId( String artifactId );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates whether network access to remote repositories has been disabled.
|
||||||
|
*
|
||||||
|
* @return {@code true} if remote access has been disabled, {@code false} otherwise.
|
||||||
|
*/
|
||||||
|
boolean isOffline();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enables/disables network access to remote repositories.
|
||||||
|
*
|
||||||
|
* @param offline {@code true} to disable remote access, {@code false} to allow network access.
|
||||||
|
* @return This request, never {@code null}.
|
||||||
|
*/
|
||||||
|
PluginVersionRequest setOffline( boolean offline );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the local repository to use.
|
||||||
|
*
|
||||||
|
* @return The local repository to use or {@code null} if not set.
|
||||||
|
*/
|
||||||
|
ArtifactRepository getLocalRepository();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the local repository to use.
|
||||||
|
*
|
||||||
|
* @param localRepository The local repository to use.
|
||||||
|
* @return This request, never {@code null}.
|
||||||
|
*/
|
||||||
|
PluginVersionRequest setLocalRepository( ArtifactRepository localRepository );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the remote repositories to use.
|
||||||
|
*
|
||||||
|
* @return The remote repositories to use, never {@code null}.
|
||||||
|
*/
|
||||||
|
List<ArtifactRepository> getRemoteRepositories();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the remote repositories to use.
|
||||||
|
*
|
||||||
|
* @param remoteRepositories The remote repositories to use.
|
||||||
|
* @return This request, never {@code null}.
|
||||||
|
*/
|
||||||
|
PluginVersionRequest setRemoteRepositories( List<ArtifactRepository> remoteRepositories );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the repository cache to use.
|
||||||
|
*
|
||||||
|
* @return The repository cache to use or {@code null} if none.
|
||||||
|
*/
|
||||||
|
RepositoryCache getCache();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the repository cache to use.
|
||||||
|
*
|
||||||
|
* @param cache The repository cache to use, may be {@code null}.
|
||||||
|
* @return This request, never {@code null}.
|
||||||
|
*/
|
||||||
|
PluginVersionRequest setCache( RepositoryCache cache );
|
||||||
|
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package org.apache.maven.plugin;
|
package org.apache.maven.plugin.version;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
@ -31,6 +31,15 @@ public class PluginVersionResolutionException
|
||||||
|
|
||||||
private final String baseMessage;
|
private final String baseMessage;
|
||||||
|
|
||||||
|
public PluginVersionResolutionException( String groupId, String artifactId, String baseMessage, Throwable cause )
|
||||||
|
{
|
||||||
|
super( "Error resolving version for \'" + groupId + ":" + artifactId + "\': " + baseMessage, cause );
|
||||||
|
|
||||||
|
this.groupId = groupId;
|
||||||
|
this.artifactId = artifactId;
|
||||||
|
this.baseMessage = baseMessage;
|
||||||
|
}
|
||||||
|
|
||||||
public PluginVersionResolutionException( String groupId, String artifactId, String baseMessage, ArtifactMetadataRetrievalException cause )
|
public PluginVersionResolutionException( String groupId, String artifactId, String baseMessage, ArtifactMetadataRetrievalException cause )
|
||||||
{
|
{
|
||||||
super( "Error resolving version for \'" + groupId + ":" + artifactId + "\': " + baseMessage, cause );
|
super( "Error resolving version for \'" + groupId + ":" + artifactId + "\': " + baseMessage, cause );
|
|
@ -0,0 +1,41 @@
|
||||||
|
package org.apache.maven.plugin.version;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves a version for a plugin.
|
||||||
|
*
|
||||||
|
* @author Benjamin Bentmann
|
||||||
|
*/
|
||||||
|
public interface PluginVersionResolver
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves the version for the specified request.
|
||||||
|
*
|
||||||
|
* @param request The request that holds the details about the plugin and the repositories to consult, must not be
|
||||||
|
* {@code null}.
|
||||||
|
* @return The result of the version resolutioh, never {@code null}.
|
||||||
|
* @throws PluginVersionResolutionException If the plugin version could not be resolved.
|
||||||
|
*/
|
||||||
|
PluginVersionResult resolve( PluginVersionRequest request )
|
||||||
|
throws PluginVersionResolutionException;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
package org.apache.maven.plugin.version;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the result of a plugin version resolution request.
|
||||||
|
*
|
||||||
|
* @author Benjamin Bentmann
|
||||||
|
*/
|
||||||
|
public interface PluginVersionResult
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The resolved plugin version.
|
||||||
|
*
|
||||||
|
* @return The resolved plugin version, never {@code null}.
|
||||||
|
*/
|
||||||
|
String getVersion();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The repository from which the plugin version was resolved.
|
||||||
|
*
|
||||||
|
* @return The repository from which the plugin version was resolved, never {@code null}.
|
||||||
|
*/
|
||||||
|
ArtifactRepository getRepository();
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,217 @@
|
||||||
|
package org.apache.maven.plugin.version.internal;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.Reader;
|
||||||
|
|
||||||
|
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||||
|
import org.apache.maven.artifact.repository.metadata.Metadata;
|
||||||
|
import org.apache.maven.artifact.repository.metadata.RepositoryMetadataReadException;
|
||||||
|
import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionRequest;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolver;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResult;
|
||||||
|
import org.apache.maven.repository.RepositorySystem;
|
||||||
|
import org.apache.maven.wagon.ResourceDoesNotExistException;
|
||||||
|
import org.apache.maven.wagon.TransferFailedException;
|
||||||
|
import org.codehaus.plexus.component.annotations.Component;
|
||||||
|
import org.codehaus.plexus.component.annotations.Requirement;
|
||||||
|
import org.codehaus.plexus.logging.Logger;
|
||||||
|
import org.codehaus.plexus.util.IOUtil;
|
||||||
|
import org.codehaus.plexus.util.ReaderFactory;
|
||||||
|
import org.codehaus.plexus.util.StringUtils;
|
||||||
|
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolves a version for a plugin.
|
||||||
|
*
|
||||||
|
* @author Benjamin Bentmann
|
||||||
|
*/
|
||||||
|
@Component( role = PluginVersionResolver.class )
|
||||||
|
public class DefaultPluginVersionResolver
|
||||||
|
implements PluginVersionResolver
|
||||||
|
{
|
||||||
|
|
||||||
|
@Requirement
|
||||||
|
private Logger logger;
|
||||||
|
|
||||||
|
@Requirement
|
||||||
|
private RepositorySystem repositorySystem;
|
||||||
|
|
||||||
|
public PluginVersionResult resolve( PluginVersionRequest request )
|
||||||
|
throws PluginVersionResolutionException
|
||||||
|
{
|
||||||
|
DefaultPluginVersionResult result = new DefaultPluginVersionResult();
|
||||||
|
|
||||||
|
Throwable error = null;
|
||||||
|
|
||||||
|
ArtifactRepository localRepository = request.getLocalRepository();
|
||||||
|
|
||||||
|
File artifactMetadataFile = null;
|
||||||
|
|
||||||
|
String localPath;
|
||||||
|
|
||||||
|
// Search in remote repositories for a (released) version.
|
||||||
|
//
|
||||||
|
// maven-metadata-{central|nexus|...}.xml
|
||||||
|
//
|
||||||
|
// TODO: we should cycle through the repositories but take the repository which actually
|
||||||
|
// satisfied the prefix.
|
||||||
|
for ( ArtifactRepository repository : request.getRemoteRepositories() )
|
||||||
|
{
|
||||||
|
localPath =
|
||||||
|
request.getGroupId().replace( '.', '/' ) + "/" + request.getArtifactId() + "/maven-metadata-"
|
||||||
|
+ repository.getId() + ".xml";
|
||||||
|
|
||||||
|
artifactMetadataFile = new File( localRepository.getBasedir(), localPath );
|
||||||
|
|
||||||
|
if ( !artifactMetadataFile.exists() /* || user requests snapshot updates */)
|
||||||
|
{
|
||||||
|
String remotePath =
|
||||||
|
request.getGroupId().replace( '.', '/' ) + "/" + request.getArtifactId() + "/maven-metadata.xml";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
repositorySystem.retrieve( repository, artifactMetadataFile, remotePath, null );
|
||||||
|
}
|
||||||
|
catch ( TransferFailedException e )
|
||||||
|
{
|
||||||
|
error = e;
|
||||||
|
|
||||||
|
logger.debug( "Failed to retrieve " + remotePath, e );
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
catch ( ResourceDoesNotExistException e )
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result.setRepository( repository );
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Search in the local repositiory for a (development) version
|
||||||
|
//
|
||||||
|
// maven-metadata-local.xml
|
||||||
|
//
|
||||||
|
if ( artifactMetadataFile == null || !artifactMetadataFile.exists() )
|
||||||
|
{
|
||||||
|
localPath =
|
||||||
|
request.getGroupId().replace( '.', '/' ) + "/" + request.getArtifactId() + "/maven-metadata-"
|
||||||
|
+ localRepository.getId() + ".xml";
|
||||||
|
|
||||||
|
artifactMetadataFile = new File( localRepository.getBasedir(), localPath );
|
||||||
|
|
||||||
|
result.setRepository( localRepository );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( artifactMetadataFile.exists() )
|
||||||
|
{
|
||||||
|
logger.debug( "Extracting version for plugin " + request.getGroupId() + ':' + request.getArtifactId()
|
||||||
|
+ " from " + artifactMetadataFile );
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Metadata pluginMetadata = readMetadata( artifactMetadataFile );
|
||||||
|
|
||||||
|
if ( pluginMetadata.getVersioning() != null )
|
||||||
|
{
|
||||||
|
String release = pluginMetadata.getVersioning().getRelease();
|
||||||
|
|
||||||
|
if ( StringUtils.isNotEmpty( release ) )
|
||||||
|
{
|
||||||
|
result.setVersion( release );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
String latest = pluginMetadata.getVersioning().getLatest();
|
||||||
|
|
||||||
|
if ( StringUtils.isNotEmpty( latest ) )
|
||||||
|
{
|
||||||
|
result.setVersion( latest );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch ( RepositoryMetadataReadException e )
|
||||||
|
{
|
||||||
|
throw new PluginVersionResolutionException( request.getGroupId(), request.getArtifactId(),
|
||||||
|
e.getMessage(), e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ( error != null )
|
||||||
|
{
|
||||||
|
throw new PluginVersionResolutionException( request.getGroupId(), request.getArtifactId(),
|
||||||
|
error.getMessage(), error );
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( StringUtils.isEmpty( result.getVersion() ) )
|
||||||
|
{
|
||||||
|
throw new PluginVersionResolutionException( request.getGroupId(), request.getArtifactId(),
|
||||||
|
"Plugin not found in any repository" );
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Metadata readMetadata( File mappingFile )
|
||||||
|
throws RepositoryMetadataReadException
|
||||||
|
{
|
||||||
|
Metadata result;
|
||||||
|
|
||||||
|
Reader reader = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
reader = ReaderFactory.newXmlReader( mappingFile );
|
||||||
|
|
||||||
|
MetadataXpp3Reader mappingReader = new MetadataXpp3Reader();
|
||||||
|
|
||||||
|
result = mappingReader.read( reader, false );
|
||||||
|
}
|
||||||
|
catch ( FileNotFoundException e )
|
||||||
|
{
|
||||||
|
throw new RepositoryMetadataReadException( "Cannot read metadata from '" + mappingFile + "'", e );
|
||||||
|
}
|
||||||
|
catch ( IOException e )
|
||||||
|
{
|
||||||
|
throw new RepositoryMetadataReadException( "Cannot read metadata from '" + mappingFile + "': "
|
||||||
|
+ e.getMessage(), e );
|
||||||
|
}
|
||||||
|
catch ( XmlPullParserException e )
|
||||||
|
{
|
||||||
|
throw new RepositoryMetadataReadException( "Cannot read metadata from '" + mappingFile + "': "
|
||||||
|
+ e.getMessage(), e );
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
IOUtil.close( reader );
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
package org.apache.maven.plugin.version.internal;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Describes the result of a plugin version resolution request.
|
||||||
|
*
|
||||||
|
* @author Benjamin Bentmann
|
||||||
|
*/
|
||||||
|
class DefaultPluginVersionResult
|
||||||
|
implements PluginVersionResult
|
||||||
|
{
|
||||||
|
|
||||||
|
private String version;
|
||||||
|
|
||||||
|
private ArtifactRepository repository;
|
||||||
|
|
||||||
|
public String getVersion()
|
||||||
|
{
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersion( String version )
|
||||||
|
{
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArtifactRepository getRepository()
|
||||||
|
{
|
||||||
|
return repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRepository( ArtifactRepository repository )
|
||||||
|
{
|
||||||
|
this.repository = repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -24,10 +24,11 @@ import java.util.List;
|
||||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||||
import org.apache.maven.artifact.repository.DefaultRepositoryRequest;
|
import org.apache.maven.artifact.repository.DefaultRepositoryRequest;
|
||||||
import org.apache.maven.artifact.repository.RepositoryRequest;
|
import org.apache.maven.artifact.repository.RepositoryRequest;
|
||||||
import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
|
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
|
||||||
import org.apache.maven.model.Model;
|
import org.apache.maven.model.Model;
|
||||||
import org.apache.maven.model.building.AbstractModelBuildingListener;
|
import org.apache.maven.model.building.AbstractModelBuildingListener;
|
||||||
import org.apache.maven.model.building.ModelBuildingEvent;
|
import org.apache.maven.model.building.ModelBuildingEvent;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
||||||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -142,7 +143,11 @@ class DefaultModelBuildingListener
|
||||||
|
|
||||||
projectRealm = projectBuildingHelper.createProjectRealm( model, repositoryRequest );
|
projectRealm = projectBuildingHelper.createProjectRealm( model, repositoryRequest );
|
||||||
}
|
}
|
||||||
catch ( AbstractArtifactResolutionException e )
|
catch ( ArtifactResolutionException e )
|
||||||
|
{
|
||||||
|
event.getProblems().addError( "Unresolveable build extensions: " + e.getMessage(), e );
|
||||||
|
}
|
||||||
|
catch ( PluginVersionResolutionException e )
|
||||||
{
|
{
|
||||||
event.getProblems().addError( "Unresolveable build extensions: " + e.getMessage(), e );
|
event.getProblems().addError( "Unresolveable build extensions: " + e.getMessage(), e );
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,14 +36,16 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
||||||
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
|
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
|
||||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||||
import org.apache.maven.classrealm.ClassRealmManager;
|
import org.apache.maven.classrealm.ClassRealmManager;
|
||||||
import org.apache.maven.lifecycle.LifecycleExecutor;
|
|
||||||
import org.apache.maven.model.Build;
|
import org.apache.maven.model.Build;
|
||||||
import org.apache.maven.model.Dependency;
|
import org.apache.maven.model.Dependency;
|
||||||
import org.apache.maven.model.Extension;
|
import org.apache.maven.model.Extension;
|
||||||
import org.apache.maven.model.Model;
|
import org.apache.maven.model.Model;
|
||||||
import org.apache.maven.model.Plugin;
|
import org.apache.maven.model.Plugin;
|
||||||
import org.apache.maven.model.Repository;
|
import org.apache.maven.model.Repository;
|
||||||
import org.apache.maven.plugin.PluginNotFoundException;
|
import org.apache.maven.plugin.version.DefaultPluginVersionRequest;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionRequest;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
||||||
|
import org.apache.maven.plugin.version.PluginVersionResolver;
|
||||||
import org.apache.maven.repository.RepositorySystem;
|
import org.apache.maven.repository.RepositorySystem;
|
||||||
import org.codehaus.plexus.PlexusContainer;
|
import org.codehaus.plexus.PlexusContainer;
|
||||||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||||
|
@ -82,7 +84,7 @@ public class DefaultProjectBuildingHelper
|
||||||
private ArtifactFilterManager artifactFilterManager;
|
private ArtifactFilterManager artifactFilterManager;
|
||||||
|
|
||||||
@Requirement
|
@Requirement
|
||||||
private LifecycleExecutor lifecycleExecutor;
|
private PluginVersionResolver pluginVersionResolver;
|
||||||
|
|
||||||
public List<ArtifactRepository> createArtifactRepositories( List<Repository> pomRepositories,
|
public List<ArtifactRepository> createArtifactRepositories( List<Repository> pomRepositories,
|
||||||
List<ArtifactRepository> externalRepositories )
|
List<ArtifactRepository> externalRepositories )
|
||||||
|
@ -108,7 +110,7 @@ public class DefaultProjectBuildingHelper
|
||||||
}
|
}
|
||||||
|
|
||||||
public ClassRealm createProjectRealm( Model model, RepositoryRequest repositoryRequest )
|
public ClassRealm createProjectRealm( Model model, RepositoryRequest repositoryRequest )
|
||||||
throws ArtifactResolutionException, PluginNotFoundException
|
throws ArtifactResolutionException, PluginVersionResolutionException
|
||||||
{
|
{
|
||||||
ClassRealm projectRealm = null;
|
ClassRealm projectRealm = null;
|
||||||
|
|
||||||
|
@ -149,7 +151,8 @@ public class DefaultProjectBuildingHelper
|
||||||
{
|
{
|
||||||
if ( plugin.getVersion() == null )
|
if ( plugin.getVersion() == null )
|
||||||
{
|
{
|
||||||
lifecycleExecutor.resolvePluginVersion( plugin, repositoryRequest );
|
PluginVersionRequest versionRequest = new DefaultPluginVersionRequest( plugin, repositoryRequest );
|
||||||
|
plugin.setVersion( pluginVersionResolver.resolve( versionRequest ).getVersion() );
|
||||||
}
|
}
|
||||||
|
|
||||||
Artifact artifact = repositorySystem.createPluginArtifact( plugin );
|
Artifact artifact = repositorySystem.createPluginArtifact( plugin );
|
||||||
|
|
|
@ -27,7 +27,7 @@ import org.apache.maven.artifact.repository.RepositoryRequest;
|
||||||
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
|
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
|
||||||
import org.apache.maven.model.Model;
|
import org.apache.maven.model.Model;
|
||||||
import org.apache.maven.model.Repository;
|
import org.apache.maven.model.Repository;
|
||||||
import org.apache.maven.plugin.PluginNotFoundException;
|
import org.apache.maven.plugin.version.PluginVersionResolutionException;
|
||||||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,6 +62,6 @@ public interface ProjectBuildingHelper
|
||||||
* @throws ArtifactResolutionException If any build extension could not be resolved.
|
* @throws ArtifactResolutionException If any build extension could not be resolved.
|
||||||
*/
|
*/
|
||||||
ClassRealm createProjectRealm( Model model, RepositoryRequest repositoryRequest )
|
ClassRealm createProjectRealm( Model model, RepositoryRequest repositoryRequest )
|
||||||
throws ArtifactResolutionException, PluginNotFoundException;
|
throws ArtifactResolutionException, PluginVersionResolutionException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
There is currently only one component descriptor that cannot be generated from annotations because of the
|
There is currently only one component descriptor that cannot be generated from annotations because of the
|
||||||
accompanying configurationl. Our options are to embed this information programatically or use a configuration source
|
accompanying configuration. Our options are to embed this information programatically or use a configuration source
|
||||||
to pull in the lifecycle information.
|
to pull in the lifecycle information.
|
||||||
-->
|
-->
|
||||||
<component-set>
|
<component-set>
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
<field-name>logger</field-name>
|
<field-name>logger</field-name>
|
||||||
</requirement>
|
</requirement>
|
||||||
<requirement>
|
<requirement>
|
||||||
<role>org.apache.maven.plugin.PluginManager</role>
|
<role>org.apache.maven.plugin.BuildPluginManager</role>
|
||||||
</requirement>
|
</requirement>
|
||||||
<requirement>
|
<requirement>
|
||||||
<role>org.apache.maven.ProjectDependenciesResolver</role>
|
<role>org.apache.maven.ProjectDependenciesResolver</role>
|
||||||
|
@ -45,6 +45,9 @@
|
||||||
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
|
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
|
||||||
<field-name>lifecycleMappings</field-name>
|
<field-name>lifecycleMappings</field-name>
|
||||||
</requirement>
|
</requirement>
|
||||||
|
<requirement>
|
||||||
|
<role>org.apache.maven.plugin.version.PluginVersionResolver</role>
|
||||||
|
</requirement>
|
||||||
</requirements>
|
</requirements>
|
||||||
<configuration>
|
<configuration>
|
||||||
<lifecycles>
|
<lifecycles>
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class PluginManagerTest
|
||||||
extends AbstractCoreMavenComponentTestCase
|
extends AbstractCoreMavenComponentTestCase
|
||||||
{
|
{
|
||||||
@Requirement
|
@Requirement
|
||||||
private DefaultPluginManager pluginManager;
|
private DefaultBuildPluginManager pluginManager;
|
||||||
|
|
||||||
private String plexusVersion = "1.0-beta-3.0.7";
|
private String plexusVersion = "1.0-beta-3.0.7";
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public class PluginManagerTest
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
super.setUp();
|
super.setUp();
|
||||||
pluginManager = (DefaultPluginManager) lookup( PluginManager.class );
|
pluginManager = (DefaultBuildPluginManager) lookup( BuildPluginManager.class );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue