IDEA-176117 maven - workaround for older version of maven 3.0.x in plexus components configuration

This commit is contained in:
Ivan Bessonov
2017-07-20 12:17:35 +03:00
parent 21ec8d8529
commit f165ac108f
@@ -46,6 +46,8 @@ import org.apache.maven.model.building.DefaultModelBuilder;
import org.apache.maven.model.building.ModelBuilder;
import org.apache.maven.model.building.ModelProblem;
import org.apache.maven.model.interpolation.ModelInterpolator;
import org.apache.maven.model.interpolation.StringSearchModelInterpolator;
import org.apache.maven.model.path.UrlNormalizer;
import org.apache.maven.model.profile.DefaultProfileInjector;
import org.apache.maven.model.validation.ModelValidator;
import org.apache.maven.plugin.LegacySupport;
@@ -529,6 +531,10 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder {
myContainer.addComponent(getComponent(RepositoryMetadataManager.class, "ide"), RepositoryMetadataManager.class.getName());
myContainer.addComponent(getComponent(PluginDescriptorCache.class, "ide"), PluginDescriptorCache.class.getName());
ModelInterpolator modelInterpolator = getComponent(ModelInterpolator.class, "ide");
if (!"3.0.5".equals(getMavenVersion()) && modelInterpolator instanceof StringSearchModelInterpolator) {
((StringSearchModelInterpolator)modelInterpolator).setPathTranslator(getComponent(org.apache.maven.model.path.PathTranslator.class));
((StringSearchModelInterpolator)modelInterpolator).setUrlNormalizer(getComponent(UrlNormalizer.class));
}
myContainer.addComponent(modelInterpolator, ModelInterpolator.class.getName());
myContainer.addComponent(getComponent(org.apache.maven.project.interpolation.ModelInterpolator.class, "ide"),
org.apache.maven.project.interpolation.ModelInterpolator.ROLE);