From 7dc42ed958a20ffbe4ba1c87b9bde4c26489a3c5 Mon Sep 17 00:00:00 2001 From: Britton Isbell Date: Sat, 13 Sep 2008 09:28:23 +0000 Subject: [PATCH] Replaced interpolator code. git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@694907 13f79535-47bb-0310-9956-ffa450edef68 --- .../maven/errors/CoreErrorReporter.java | 2 +- .../apache/maven/errors/CoreErrorTips.java | 2 +- .../errors/DefaultCoreErrorReporter.java | 2 +- .../errors/DefaultProjectErrorReporter.java | 2 +- .../maven/errors/ProjectErrorReporter.java | 2 +- .../apache/maven/errors/ProjectErrorTips.java | 2 +- .../DefaultBuildExtensionScanner.java | 37 +- .../extension/ExtensionScanningException.java | 2 +- .../ModelInterpolationException.java | 2 +- .../maven/plugin/DefaultPluginManager.java | 26 +- .../resources/META-INF/plexus/components.xml | 6 - .../DefaultBuildExtensionScannerTest.java | 368 ----------------- ...PluginParameterExpressionEvaluatorTest.xml | 3 - .../resources/META-INF/plexus/components.xml | 3 - ...PluginParameterExpressionEvaluatorTest.xml | 3 - .../resources/META-INF/plexus/components.xml | 12 - .../maven/project/ProjectClasspathTest.xml | 3 - .../canonical/CanonicalProjectBuilderTest.xml | 3 - .../project/DefaultMavenProjectBuilder.java | 36 +- .../project/InvalidProjectModelException.java | 15 - .../maven/project/MavenProjectBuilder.java | 1 - .../project/ProjectBuildingException.java | 25 -- .../ArtifactModelContainerFactory.java | 8 +- .../builder/IdModelContainerFactory.java | 2 +- .../builder/PomClassicDomainModel.java | 17 + .../builder/PomClassicTransformer.java | 136 +++++-- .../builder/impl/DefaultProjectBuilder.java | 8 +- .../BuildTimestampValueSource.java | 51 --- .../interpolation/ModelInterpolator.java | 61 --- .../PathTranslatingPostProcessor.java | 58 --- .../RegexBasedModelInterpolator.java | 294 ------------- .../resources/META-INF/plexus/components.xml | 17 - .../org/apache/maven/project/pom-4.0.0.xml | 2 +- .../RegexBasedModelInterpolatorTest.java | 385 ------------------ .../maven/project/ProjectClasspathTest.xml | 3 - .../canonical/CanonicalProjectBuilderTest.xml | 3 - .../shared/model/InterpolatorProperty.java | 23 ++ .../maven/shared/model/ModelMarshaller.java | 4 +- .../maven/shared/model/ModelTransformer.java | 3 +- .../shared/model/ModelTransformerContext.java | 125 ++++-- .../model/impl/DefaultModelDataSource.java | 2 +- .../shared/model/ModelMarshallerTest.java | 2 +- 42 files changed, 286 insertions(+), 1475 deletions(-) rename {maven-project/src/main/java/org/apache/maven/project/interpolation => maven-core/src/main/java/org/apache/maven/extension}/ModelInterpolationException.java (97%) delete mode 100644 maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java delete mode 100644 maven-project/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java delete mode 100644 maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java delete mode 100644 maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java delete mode 100644 maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java delete mode 100644 maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java diff --git a/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java b/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java index 7176d86522..6a03c602b9 100644 --- a/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java +++ b/maven-core/src/main/java/org/apache/maven/errors/CoreErrorReporter.java @@ -14,6 +14,7 @@ import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.execution.MavenSession; import org.apache.maven.extension.ExtensionManagerException; +import org.apache.maven.extension.ModelInterpolationException; import org.apache.maven.lifecycle.LifecycleException; import org.apache.maven.lifecycle.LifecycleLoaderException; import org.apache.maven.lifecycle.LifecycleSpecificationException; @@ -37,7 +38,6 @@ import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.apache.maven.errors.ProjectErrorReporter; -import org.apache.maven.project.interpolation.ModelInterpolationException; import org.apache.maven.project.path.PathTranslator; import org.apache.maven.reactor.MavenExecutionException; import org.apache.maven.reactor.MissingModuleException; diff --git a/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java b/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java index 1f3e86325d..5d0130c3af 100644 --- a/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java +++ b/maven-core/src/main/java/org/apache/maven/errors/CoreErrorTips.java @@ -1,6 +1,7 @@ package org.apache.maven.errors; import org.apache.maven.ProjectCycleException; +import org.apache.maven.extension.ModelInterpolationException; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException; import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException; @@ -23,7 +24,6 @@ import org.apache.maven.project.DuplicateArtifactAttachmentException; import org.apache.maven.project.MavenProject; import org.apache.maven.project.artifact.InvalidDependencyVersionException; -import org.apache.maven.project.interpolation.ModelInterpolationException; import org.apache.maven.realm.RealmManagementException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.configuration.PlexusConfiguration; diff --git a/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java b/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java index 40493481cb..547749aa5c 100644 --- a/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java +++ b/maven-core/src/main/java/org/apache/maven/errors/DefaultCoreErrorReporter.java @@ -44,7 +44,7 @@ import org.apache.maven.errors.DefaultProjectErrorReporter; import org.apache.maven.errors.ProjectErrorReporter; import org.apache.maven.errors.ProjectReporterManager; -import org.apache.maven.project.interpolation.ModelInterpolationException; +import org.apache.maven.extension.ModelInterpolationException; import org.apache.maven.project.path.PathTranslator; import org.apache.maven.reactor.MavenExecutionException; import org.apache.maven.reactor.MissingModuleException; diff --git a/maven-core/src/main/java/org/apache/maven/errors/DefaultProjectErrorReporter.java b/maven-core/src/main/java/org/apache/maven/errors/DefaultProjectErrorReporter.java index a9de64688f..aff5602b82 100644 --- a/maven-core/src/main/java/org/apache/maven/errors/DefaultProjectErrorReporter.java +++ b/maven-core/src/main/java/org/apache/maven/errors/DefaultProjectErrorReporter.java @@ -21,7 +21,7 @@ import org.apache.maven.project.ProjectBuilderConfiguration; import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.apache.maven.project.ModelAndFile; -import org.apache.maven.project.interpolation.ModelInterpolationException; +import org.apache.maven.extension.ModelInterpolationException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; diff --git a/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorReporter.java b/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorReporter.java index f229b3a4c8..e3e3d04148 100644 --- a/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorReporter.java +++ b/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorReporter.java @@ -18,7 +18,7 @@ import org.apache.maven.project.ProjectBuilderConfiguration; import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.apache.maven.project.ModelAndFile; -import org.apache.maven.project.interpolation.ModelInterpolationException; +import org.apache.maven.extension.ModelInterpolationException; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; diff --git a/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorTips.java b/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorTips.java index 2b9aacc6c5..b76b772c7a 100644 --- a/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorTips.java +++ b/maven-core/src/main/java/org/apache/maven/errors/ProjectErrorTips.java @@ -11,7 +11,7 @@ import org.apache.maven.project.DuplicateProjectException; import org.apache.maven.project.InvalidProjectVersionException; import org.apache.maven.project.MavenProject; -import org.apache.maven.project.interpolation.ModelInterpolationException; +import org.apache.maven.extension.ModelInterpolationException; import org.apache.maven.project.validation.ModelValidationResult; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; diff --git a/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java b/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java index 8496d100bc..690b1f073e 100644 --- a/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java +++ b/maven-core/src/main/java/org/apache/maven/extension/DefaultBuildExtensionScanner.java @@ -35,12 +35,13 @@ import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.ProjectBuilderConfiguration; import org.apache.maven.project.ProjectBuildingException; +import org.apache.maven.project.builder.PomClassicTransformer; import org.apache.maven.extension.lineage.ModelLineage; import org.apache.maven.extension.lineage.ModelLineageBuilder; import org.apache.maven.extension.lineage.ModelLineageIterator; -import org.apache.maven.project.interpolation.ModelInterpolationException; -import org.apache.maven.project.interpolation.ModelInterpolator; +import org.apache.maven.extension.ModelInterpolationException; import org.apache.maven.reactor.MissingModuleException; +import org.apache.maven.shared.model.InterpolatorProperty; import org.codehaus.plexus.logging.LogEnabled; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.logging.console.ConsoleLogger; @@ -68,8 +69,6 @@ public class DefaultBuildExtensionScanner private ModelLineageBuilder modelLineageBuilder; - private ModelInterpolator modelInterpolator; - // cached. private MavenProject basicSuperProject; @@ -77,19 +76,6 @@ public DefaultBuildExtensionScanner() { } - protected DefaultBuildExtensionScanner( ExtensionManager extensionManager, - MavenProjectBuilder projectBuilder, - ModelLineageBuilder modelLineageBuilder, - ModelInterpolator modelInterpolator, - Logger logger ) - { - this.extensionManager = extensionManager; - this.projectBuilder = projectBuilder; - this.modelLineageBuilder = modelLineageBuilder; - this.modelInterpolator = modelInterpolator; - this.logger = logger; - } - public void scanForBuildExtensions( List files, MavenExecutionRequest request, boolean ignoreMissingModules ) @@ -176,8 +162,18 @@ private void scanInternal( File pom, config.setExecutionProperties( execProps ); - model = modelInterpolator.interpolate( model, modelPom.getParentFile(), config, getLogger().isDebugEnabled() ); + List interpolatorProperties = new ArrayList(); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getExecutionProperties())); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( config.getUserProperties())); + model = PomClassicTransformer.interpolateModel( model, interpolatorProperties, modelPom.getParentFile()); + /* + try { + model = modelInterpolator.interpolate( model, modelPom.getParentFile(), config, getLogger().isDebugEnabled() ); + } catch (ModelInterpolationException e) { + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + */ grabManagedPluginsWithExtensionsFlagTurnedOn( model, managedPluginsWithExtensionsFlag ); Properties modelProps = model.getProperties(); @@ -218,13 +214,14 @@ else if ( request.isRecursive() ) } } } - catch ( ModelInterpolationException e ) + catch ( IOException e ) { throw new ExtensionScanningException( "Failed to interpolate model from: " + pom - + " prior to scanning for extensions.", pom, e ); + + " prior to scanning for extensions.", pom, new ModelInterpolationException(e.getMessage()) ); } } + private void grabManagedPluginsWithExtensionsFlagTurnedOn( Model model, Set managedPluginsWithExtensionsFlag ) { diff --git a/maven-core/src/main/java/org/apache/maven/extension/ExtensionScanningException.java b/maven-core/src/main/java/org/apache/maven/extension/ExtensionScanningException.java index f66f323231..2ab666057f 100644 --- a/maven-core/src/main/java/org/apache/maven/extension/ExtensionScanningException.java +++ b/maven-core/src/main/java/org/apache/maven/extension/ExtensionScanningException.java @@ -4,7 +4,7 @@ import org.apache.maven.model.Model; import org.apache.maven.model.Plugin; import org.apache.maven.project.ProjectBuildingException; -import org.apache.maven.project.interpolation.ModelInterpolationException; +import org.apache.maven.extension.ModelInterpolationException; import java.io.File; import java.io.IOException; diff --git a/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java b/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java similarity index 97% rename from maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java rename to maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java index ccb3407558..a0bc0f9cf6 100644 --- a/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java +++ b/maven-core/src/main/java/org/apache/maven/extension/ModelInterpolationException.java @@ -1,4 +1,4 @@ -package org.apache.maven.project.interpolation; +package org.apache.maven.extension; /* * Licensed to the Apache Software Foundation (ASF) under one diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java index 6f034346f3..8186d1aff5 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java @@ -20,6 +20,7 @@ */ import org.apache.maven.ArtifactFilterManager; +import org.apache.maven.shared.model.InterpolatorProperty; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException; @@ -58,10 +59,9 @@ import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.project.ModelUtils; +import org.apache.maven.project.builder.PomClassicTransformer; import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.apache.maven.project.artifact.MavenMetadataSource; -import org.apache.maven.project.interpolation.ModelInterpolationException; -import org.apache.maven.project.interpolation.ModelInterpolator; import org.apache.maven.project.path.PathTranslator; import org.apache.maven.realm.MavenRealmManager; import org.apache.maven.realm.RealmManagementException; @@ -143,8 +143,6 @@ public class DefaultPluginManager protected MavenProjectBuilder mavenProjectBuilder; - protected ModelInterpolator modelInterpolator; - protected PluginMappingManager pluginMappingManager; private PluginManagerSupport pluginManagerSupport; @@ -560,23 +558,13 @@ public void executeMojo( MavenProject project, { try { - String interpolatedDom = modelInterpolator.interpolate( String.valueOf( dom ), - project.getModel(), - project.getBasedir(), - session.getProjectBuilderConfiguration(), - getLogger().isDebugEnabled() ); - + List interpolatorProperties = new ArrayList(); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( session.getProjectBuilderConfiguration().getExecutionProperties())); + interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( session.getProjectBuilderConfiguration().getUserProperties())); + String interpolatedDom = + PomClassicTransformer.interpolateXmlString( String.valueOf( dom ), interpolatorProperties ); dom = Xpp3DomBuilder.build( new StringReader( interpolatedDom ) ); } - catch ( ModelInterpolationException e ) - { - throw new PluginManagerException( - mojoDescriptor, - project, - "Failed to calculate concrete state for configuration of: " - + mojoDescriptor.getHumanReadableKey(), - e ); - } catch ( XmlPullParserException e ) { throw new PluginManagerException( diff --git a/maven-core/src/main/resources/META-INF/plexus/components.xml b/maven-core/src/main/resources/META-INF/plexus/components.xml index 6bc67e88ac..55d28ee71e 100644 --- a/maven-core/src/main/resources/META-INF/plexus/components.xml +++ b/maven-core/src/main/resources/META-INF/plexus/components.xml @@ -191,9 +191,6 @@ under the License. org.apache.maven.extension.ExtensionManager - - org.apache.maven.project.interpolation.ModelInterpolator - org.apache.maven.extension.lineage.ModelLineageBuilder default @@ -239,9 +236,6 @@ under the License. org.apache.maven.plugin.PluginManagerSupport - - org.apache.maven.project.interpolation.ModelInterpolator - org.apache.maven.ArtifactFilterManager diff --git a/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java b/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java deleted file mode 100644 index 16229d63d1..0000000000 --- a/maven-core/src/test/java/org/apache/maven/extension/DefaultBuildExtensionScannerTest.java +++ /dev/null @@ -1,368 +0,0 @@ -package org.apache.maven.extension; - -import org.apache.maven.execution.DefaultMavenExecutionRequest; -import org.apache.maven.execution.MavenExecutionRequest; -import org.apache.maven.model.Build; -import org.apache.maven.model.Model; -import org.apache.maven.model.Parent; -import org.apache.maven.model.Plugin; -import org.apache.maven.model.PluginManagement; -import org.apache.maven.project.DefaultProjectBuilderConfiguration; -import org.apache.maven.project.MavenProject; -import org.apache.maven.project.MavenProjectBuilder; -import org.apache.maven.project.ProjectBuildingException; -import org.apache.maven.extension.lineage.ModelLineageBuilder; -import org.apache.maven.project.interpolation.ModelInterpolationException; -import org.apache.maven.project.interpolation.ModelInterpolator; -import org.apache.maven.reactor.MissingModuleException; -import org.apache.maven.shared.tools.easymock.MockManager; -import org.apache.maven.shared.tools.easymock.TestFileManager; -import org.apache.maven.extension.lineage.DefaultModelLineage; -import org.apache.maven.extension.lineage.ModelLineage; -import org.codehaus.plexus.logging.Logger; -import org.codehaus.plexus.logging.console.ConsoleLogger; -import org.easymock.ArgumentsMatcher; -import org.easymock.MockControl; - -import java.io.File; -import java.io.IOException; -import java.util.Collections; - -import junit.framework.TestCase; - -public class DefaultBuildExtensionScannerTest - extends TestCase -{ - - private MockManager mockManager; - - private TestFileManager fileManager; - - private MockControl extensionManagerCtl; - - private ExtensionManager extensionManager; - - private MockControl projectBuilderCtl; - - private MavenProjectBuilder projectBuilder; - - private MockControl modelLineageBuilderCtl; - - private ModelLineageBuilder modelLineageBuilder; - - private MockControl modelInterpolatorCtl; - - private ModelInterpolator modelInterpolator; - - public void setUp() - throws Exception - { - super.setUp(); - - mockManager = new MockManager(); - fileManager = new TestFileManager( "DefaultBuildExtensionScannerTest", "" ); - - extensionManagerCtl = MockControl.createControl( ExtensionManager.class ); - mockManager.add( extensionManagerCtl ); - extensionManager = (ExtensionManager) extensionManagerCtl.getMock(); - - projectBuilderCtl = MockControl.createControl( MavenProjectBuilder.class ); - mockManager.add( projectBuilderCtl ); - projectBuilder = (MavenProjectBuilder) projectBuilderCtl.getMock(); - - modelLineageBuilderCtl = MockControl.createControl( ModelLineageBuilder.class ); - mockManager.add( modelLineageBuilderCtl ); - modelLineageBuilder = (ModelLineageBuilder) modelLineageBuilderCtl.getMock(); - - modelInterpolatorCtl = MockControl.createControl( ModelInterpolator.class ); - mockManager.add( modelInterpolatorCtl ); - modelInterpolator = (ModelInterpolator) modelInterpolatorCtl.getMock(); - } - - public void tearDown() - throws Exception - { - fileManager.cleanUp(); - - super.tearDown(); - } - - public void testIncludePluginWhenExtensionsFlagDirectlySet() - throws ExtensionScanningException, ProjectBuildingException, ModelInterpolationException, - ExtensionManagerException, MissingModuleException - { - MavenExecutionRequest request = new DefaultMavenExecutionRequest(); - File pomFile = new File( "pom" ); - - Model model = new Model(); - - model.setGroupId( "group" ); - model.setArtifactId( "artifact" ); - - Build build = new Build(); - model.setBuild( build ); - - Plugin plugin = new Plugin(); - - build.addPlugin( plugin ); - - plugin.setGroupId( "test" ); - plugin.setArtifactId( "artifact" ); - plugin.setExtensions( true ); - - ModelLineage ml = new DefaultModelLineage(); - ml.setOrigin( model, pomFile, Collections.EMPTY_LIST, true ); - - modelLineageBuilder.buildModelLineage( pomFile, new DefaultProjectBuilderConfiguration(), null, false, true ); - modelLineageBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER ); - modelLineageBuilderCtl.setReturnValue( ml, MockControl.ZERO_OR_MORE ); - - modelInterpolator.interpolate( model, null, null, false ); - modelInterpolatorCtl.setMatcher( MockControl.ALWAYS_MATCHER ); - modelInterpolatorCtl.setReturnValue( model, MockControl.ZERO_OR_MORE ); - - extensionManager.addPluginAsExtension( plugin, model, Collections.EMPTY_LIST, request ); - extensionManagerCtl.setVoidCallable( 1 ); - - MavenProject superProject = new MavenProject( new Model() ); - superProject.setRemoteArtifactRepositories( Collections.EMPTY_LIST ); - - projectBuilder.buildStandaloneSuperProject( new DefaultProjectBuilderConfiguration() ); - projectBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER ); - projectBuilderCtl.setReturnValue( superProject, MockControl.ZERO_OR_MORE ); - - mockManager.replayAll(); - - new DefaultBuildExtensionScanner( extensionManager, projectBuilder, modelLineageBuilder, - modelInterpolator, new ConsoleLogger( Logger.LEVEL_DEBUG, - "test" ) ).scanForBuildExtensions( pomFile, - request, - false ); - - mockManager.verifyAll(); - } - - public void testIncludePluginWhenExtensionsFlagSetInPluginManagement() - throws ExtensionScanningException, ProjectBuildingException, ModelInterpolationException, - ExtensionManagerException, MissingModuleException - { - MavenExecutionRequest request = new DefaultMavenExecutionRequest(); - File pomFile = new File( "pom" ); - - Model model = new Model(); - - model.setGroupId( "group" ); - model.setArtifactId( "artifact" ); - - Build build = new Build(); - model.setBuild( build ); - - Plugin plugin = new Plugin(); - - build.addPlugin( plugin ); - - plugin.setGroupId( "test" ); - plugin.setArtifactId( "artifact" ); - - Parent parent = new Parent(); - parent.setGroupId( "group" ); - parent.setArtifactId( "parent" ); - model.setParent( parent ); - - Model parentModel = new Model(); - parentModel.setGroupId( "group" ); - parentModel.setArtifactId( "parent" ); - - Build parentBuild = new Build(); - parentModel.setBuild( parentBuild ); - - PluginManagement pMgmt = new PluginManagement(); - parentBuild.setPluginManagement( pMgmt ); - - Plugin parentPlugin = new Plugin(); - - pMgmt.addPlugin( parentPlugin ); - - parentPlugin.setGroupId( "test" ); - parentPlugin.setArtifactId( "artifact" ); - parentPlugin.setExtensions( true ); - - ModelLineage ml = new DefaultModelLineage(); - ml.setOrigin( model, pomFile, Collections.EMPTY_LIST, true ); - ml.addParent( parentModel, pomFile, Collections.EMPTY_LIST, false ); - - modelLineageBuilder.buildModelLineage( pomFile, new DefaultProjectBuilderConfiguration(), null, false, true ); - modelLineageBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER ); - modelLineageBuilderCtl.setReturnValue( ml, MockControl.ZERO_OR_MORE ); - - modelInterpolator.interpolate( model, null, null, false ); - modelInterpolatorCtl.setMatcher( new FirstArgFileMatcher() ); - modelInterpolatorCtl.setReturnValue( model, MockControl.ZERO_OR_MORE); - - modelInterpolator.interpolate( parentModel, null, null, false ); - modelInterpolatorCtl.setReturnValue( parentModel, MockControl.ZERO_OR_MORE ); - - extensionManager.addPluginAsExtension( plugin, model, Collections.EMPTY_LIST, request ); - extensionManagerCtl.setVoidCallable( 1 ); - - MavenProject superProject = new MavenProject( new Model() ); - superProject.setRemoteArtifactRepositories( Collections.EMPTY_LIST ); - - projectBuilder.buildStandaloneSuperProject( new DefaultProjectBuilderConfiguration() ); - projectBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER ); - projectBuilderCtl.setReturnValue( superProject, MockControl.ZERO_OR_MORE ); - - mockManager.replayAll(); - - new DefaultBuildExtensionScanner( extensionManager, projectBuilder, modelLineageBuilder, - modelInterpolator, new ConsoleLogger( Logger.LEVEL_DEBUG, - "test" ) ).scanForBuildExtensions( pomFile, - request, - false ); - - mockManager.verifyAll(); - } - - public void testIncludePluginWithExtensionsFlagDeclaredInParentPluginManagementReferencedFromModule() - throws ModelInterpolationException, ProjectBuildingException, ExtensionManagerException, - ExtensionScanningException, IOException, MissingModuleException - { - MavenExecutionRequest request = new DefaultMavenExecutionRequest(); - File projectDir = fileManager.createTempDir(); - File pomFile = fileManager.createFile( projectDir, "pom.xml", "Placeholder file." ).getCanonicalFile(); - File modulePomFile = fileManager.createFile( projectDir, - "module/pom.xml", - "Placeholder file." ).getCanonicalFile(); - - Model model = new Model(); - - model.setGroupId( "group" ); - model.setArtifactId( "artifact" ); - model.setVersion( "1" ); - - Parent parent = new Parent(); - parent.setGroupId( "group" ); - parent.setArtifactId( "parent" ); - parent.setVersion( "1" ); - model.setParent( parent ); - - Model parentModel = new Model(); - parentModel.setGroupId( "group" ); - parentModel.setArtifactId( "parent" ); - parentModel.setVersion( "1" ); - - Build parentBuild = new Build(); - parentModel.setBuild( parentBuild ); - - PluginManagement pMgmt = new PluginManagement(); - parentBuild.setPluginManagement( pMgmt ); - - Plugin parentPlugin = new Plugin(); - - pMgmt.addPlugin( parentPlugin ); - - parentPlugin.setGroupId( "test" ); - parentPlugin.setArtifactId( "artifact" ); - parentPlugin.setExtensions( true ); - - Model module = new Model(); - module.setGroupId( "group" ); - module.setArtifactId( "module" ); - module.setVersion( "1" ); - - Parent moduleParent = new Parent(); - moduleParent.setGroupId( model.getGroupId() ); - moduleParent.setArtifactId( model.getArtifactId() ); - moduleParent.setVersion( model.getVersion() ); - - module.setParent( moduleParent ); - - Build build = new Build(); - module.setBuild( build ); - - Plugin plugin = new Plugin(); - - build.addPlugin( plugin ); - - plugin.setGroupId( "test" ); - plugin.setArtifactId( "artifact" ); - - model.addModule( "module" ); - - ModelLineage ml = new DefaultModelLineage(); - ml.setOrigin( model, pomFile, Collections.EMPTY_LIST, true ); - ml.addParent( parentModel, pomFile, Collections.EMPTY_LIST, false ); - - ModelLineage moduleMl = new DefaultModelLineage(); - moduleMl.setOrigin( module, modulePomFile, Collections.EMPTY_LIST, true ); - moduleMl.addParent( model, pomFile, Collections.EMPTY_LIST, true ); - moduleMl.addParent( parentModel, pomFile, Collections.EMPTY_LIST, false ); - - modelLineageBuilder.buildModelLineage( pomFile, new DefaultProjectBuilderConfiguration(), null, false, true ); - modelLineageBuilderCtl.setMatcher( new FirstArgFileMatcher() ); - modelLineageBuilderCtl.setReturnValue( ml, MockControl.ZERO_OR_MORE ); - - modelLineageBuilder.buildModelLineage( modulePomFile, new DefaultProjectBuilderConfiguration(), null, false, true ); - modelLineageBuilderCtl.setReturnValue( moduleMl, MockControl.ZERO_OR_MORE ); - - modelInterpolator.interpolate( model, null, null, false ); - modelInterpolatorCtl.setMatcher( new FirstArgModelIdMatcher() ); - modelInterpolatorCtl.setReturnValue( model, MockControl.ZERO_OR_MORE ); - - modelInterpolator.interpolate( parentModel, null, null, false ); - modelInterpolatorCtl.setReturnValue( parentModel, MockControl.ZERO_OR_MORE ); - - modelInterpolator.interpolate( module, null, null, false ); - modelInterpolatorCtl.setReturnValue( module, MockControl.ZERO_OR_MORE ); - - extensionManager.addPluginAsExtension( plugin, module, Collections.EMPTY_LIST, request ); - extensionManagerCtl.setVoidCallable( 1 ); - - MavenProject superProject = new MavenProject( new Model() ); - superProject.setRemoteArtifactRepositories( Collections.EMPTY_LIST ); - - projectBuilder.buildStandaloneSuperProject( new DefaultProjectBuilderConfiguration() ); - projectBuilderCtl.setMatcher( MockControl.ALWAYS_MATCHER ); - projectBuilderCtl.setReturnValue( superProject, MockControl.ZERO_OR_MORE ); - - mockManager.replayAll(); - - new DefaultBuildExtensionScanner( extensionManager, projectBuilder, modelLineageBuilder, - modelInterpolator, new ConsoleLogger( Logger.LEVEL_DEBUG, - "test" ) ).scanForBuildExtensions( pomFile, - request, - false ); - - mockManager.verifyAll(); - } - - private static final class FirstArgFileMatcher - implements ArgumentsMatcher - { - public boolean matches( Object[] expected, - Object[] actual ) - { - return expected[0].equals( actual[0] ); - } - - public String toString( Object[] arguments ) - { - return "matcher for file: " + arguments[0]; - } - } - - private static final class FirstArgModelIdMatcher - implements ArgumentsMatcher - { - public boolean matches( Object[] expected, - Object[] actual ) - { - return ((Model)expected[0]).getId().equals( ((Model)actual[0]).getId() ); - } - - public String toString( Object[] arguments ) - { - return "matcher for: " + ( (Model) arguments[0] ).getId(); - } - } -} diff --git a/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml b/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml index 628980269e..7a62eae882 100644 --- a/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml +++ b/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml @@ -26,9 +26,6 @@ under the License. org.apache.maven.project.injection.ModelDefaultsInjector - - org.apache.maven.project.interpolation.ModelInterpolator - org.apache.maven.project.inheritance.ModelInheritanceAssembler diff --git a/maven-embedder/src/test/projects/complex-project/maven-core/src/main/resources/META-INF/plexus/components.xml b/maven-embedder/src/test/projects/complex-project/maven-core/src/main/resources/META-INF/plexus/components.xml index a7e8005b8c..8995e90122 100644 --- a/maven-embedder/src/test/projects/complex-project/maven-core/src/main/resources/META-INF/plexus/components.xml +++ b/maven-embedder/src/test/projects/complex-project/maven-core/src/main/resources/META-INF/plexus/components.xml @@ -27,9 +27,6 @@ under the License. org.apache.maven.extension.ExtensionManager - - org.apache.maven.project.interpolation.ModelInterpolator - org.apache.maven.extension.lineage.ModelLineageBuilder default diff --git a/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml b/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml index 54d08acb47..d586b34ebe 100644 --- a/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml +++ b/maven-embedder/src/test/projects/complex-project/maven-core/src/test/resources/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.xml @@ -23,9 +23,6 @@ under the License. org.apache.maven.project.MavenProjectBuilder org.apache.maven.project.DefaultMavenProjectBuilder - - org.apache.maven.project.interpolation.ModelInterpolator - org.apache.maven.project.validation.ModelValidator diff --git a/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml b/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml index 7dbf08db2f..6a1d26d6b2 100644 --- a/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml +++ b/maven-embedder/src/test/projects/complex-project/maven-project/src/main/resources/META-INF/plexus/components.xml @@ -135,15 +135,6 @@ under the License. - - - org.apache.maven.project.interpolation.ModelInterpolator - org.apache.maven.project.interpolation.RegexBasedModelInterpolator - - - org.apache.maven.project.interpolation.ModelInterpolator - org.apache.maven.project.interpolation.RegexBasedModelInterpolator - - - org.apache.maven.project.path.PathTranslator - - -