You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/07/24 20:04:51 UTC
svn commit: r679476 - in /maven/sandbox/branches/SI_MAVEN_2_1_A: ./
maven-core/src/main/java/org/apache/maven/lifecycle/
maven-core/src/main/java/org/apache/maven/lifecycle/binding/
maven-embedder/src/main/resources/META-INF/plexus/ maven-embedder/src/...
Author: sisbell
Date: Thu Jul 24 11:04:50 2008
New Revision: 679476
URL: http://svn.apache.org/viewvc?rev=679476&view=rev
Log:
Merge from trunk.
Added:
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
- copied unchanged from r679474, maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/test/resources/project-dynamism/plugin-level-dep.pom.xml
- copied unchanged from r679474, maven/components/trunk/maven-project/src/test/resources/project-dynamism/plugin-level-dep.pom.xml
Removed:
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/interpolation/PathTranslatingValueSource.java
Modified:
maven/sandbox/branches/SI_MAVEN_2_1_A/ (props changed)
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/main/resources/META-INF/plexus/components.xml
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
maven/sandbox/branches/SI_MAVEN_2_1_A/pom.xml
Propchange: maven/sandbox/branches/SI_MAVEN_2_1_A/
------------------------------------------------------------------------------
svn:mergeinfo = /maven/components/branches/maven-2.0.x:679206
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Thu Jul 24 11:04:50 2008
@@ -28,6 +28,7 @@
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.execution.ReactorManager;
+import org.apache.maven.lifecycle.binding.LifecycleBindingManager;
import org.apache.maven.lifecycle.binding.MojoBindingFactory;
import org.apache.maven.lifecycle.model.MojoBinding;
import org.apache.maven.lifecycle.plan.BuildPlan;
@@ -91,6 +92,8 @@
private BuildPlanner buildPlanner;
private MojoBindingFactory mojoBindingFactory;
+
+ private LifecycleBindingManager lifecycleBindingManager;
// this is needed for setting the lookup realm before we start building a project.
private PlexusContainer container;
@@ -959,4 +962,9 @@
{
container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
}
+
+ public List getLifecycles()
+ {
+ return lifecycleBindingManager.getLifecycles();
+ }
}
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java Thu Jul 24 11:04:50 2008
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.util.List;
+
import org.apache.maven.BuildFailureException;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession;
@@ -56,4 +58,9 @@
void execute( MavenSession session, ReactorManager rm, EventDispatcher dispatcher )
throws LifecycleExecutionException, BuildFailureException;
+ /**
+ * @since 2.0.10
+ */
+ List getLifecycles();
+
}
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java Thu Jul 24 11:04:50 2008
@@ -64,13 +64,18 @@
private Logger logger;
// configured. Moved out of DefaultLifecycleExecutor...
- private List lifecycles;
+ private List<org.apache.maven.lifecycle.binding.Lifecycle> lifecycles;
// configured. Moved out of DefaultLifecycleExecutor...
private List defaultReports;
// contextualized, used for setting lookup realm before retrieving lifecycle bindings for packaging.
private PlexusContainer container;
+
+ public List<org.apache.maven.lifecycle.binding.Lifecycle> getLifecycles()
+ {
+ return lifecycles;
+ }
/**
* {@inheritDoc}
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-core/src/main/java/org/apache/maven/lifecycle/binding/LifecycleBindingManager.java Thu Jul 24 11:04:50 2008
@@ -82,4 +82,6 @@
final LifecycleBindings lifecycleBindings )
throws LifecycleSpecificationException;
+ List<org.apache.maven.lifecycle.binding.Lifecycle> getLifecycles();
+
}
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/main/resources/META-INF/plexus/components.xml?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/main/resources/META-INF/plexus/components.xml Thu Jul 24 11:04:50 2008
@@ -54,7 +54,7 @@
<httpHeaders>
<property>
<name>User-Agent</name>
- <value>Apache Maven/${project.version}</value>
+ <value>Apache-Maven/${project.version} maven-artifact/${artifactVersion}</value>
</property>
</httpHeaders>
</configuration>
@@ -70,7 +70,7 @@
<httpHeaders>
<property>
<name>User-Agent</name>
- <value>Apache Maven/${project.version}</value>
+ <value>Apache-Maven/${project.version} maven-artifact/${artifactVersion}</value>
</property>
</httpHeaders>
</configuration>
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/AbstractEmbedderTestCase.java Thu Jul 24 11:04:50 2008
@@ -16,13 +16,16 @@
*/
import java.io.File;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.Properties;
import java.util.StringTokenizer;
import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.Os;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineUtils;
@@ -31,10 +34,13 @@
{
protected MavenEmbedder maven;
- private String defaultPath;
-
private List defaultPathList;
+ /**
+ * The file extensions used to resolve command names to executables. Each extension must have a leading period.
+ */
+ private List commandExtensions;
+
protected void setUp()
throws Exception
{
@@ -43,6 +49,7 @@
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Configuration configuration = new DefaultConfiguration().setClassLoader( classLoader ).setMavenEmbedderLogger( new MavenEmbedderConsoleLogger() );
+ configuration.setUserSettingsFile( MavenEmbedder.DEFAULT_USER_SETTINGS_FILE );
maven = new MavenEmbedder( configuration );
@@ -50,7 +57,9 @@
// but if they are not present on the machine we don't want tests to fail. Case in point would be using SVN via the SCM plugin. We'll
// run it if we can, pass through gracefully otherwise.
- defaultPath = CommandLineUtils.getSystemEnvVars().getProperty( "PATH" );
+ Properties env = CommandLineUtils.getSystemEnvVars( !Os.isFamily( Os.FAMILY_WINDOWS ) );
+
+ String defaultPath = env.getProperty( "PATH" );
if ( defaultPath == null )
{
@@ -58,9 +67,7 @@
}
else
{
- String separator = System.getProperty( "path.separator" );
-
- StringTokenizer tokenizer = new StringTokenizer( defaultPath, separator );
+ StringTokenizer tokenizer = new StringTokenizer( defaultPath, File.pathSeparator );
defaultPathList = new LinkedList();
@@ -71,6 +78,17 @@
defaultPathList.add( element );
}
}
+
+ String pathExt = env.getProperty( "PATHEXT" );
+
+ if ( pathExt == null )
+ {
+ commandExtensions = Collections.EMPTY_LIST;
+ }
+ else
+ {
+ commandExtensions = Arrays.asList( pathExt.split( "\\" + File.pathSeparatorChar + "+" ) );
+ }
}
protected void tearDown()
@@ -117,12 +135,22 @@
return null;
}
- // TODO: Need to resolve it with defaults extension of system
- // ie. if executable is 'mvn', we must search 'mvn.bat'
for ( Iterator it = path.iterator(); it.hasNext(); )
{
String s = (String) it.next();
+ for ( Iterator ite = commandExtensions.iterator(); ite.hasNext(); )
+ {
+ String ext = (String) ite.next();
+
+ f = new File( s, executable + ext );
+
+ if ( f.isFile() )
+ {
+ return f;
+ }
+ }
+
f = new File( s, executable );
if ( f.isFile() )
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java Thu Jul 24 11:04:50 2008
@@ -74,6 +74,7 @@
Configuration configuration = new DefaultConfiguration()
.setClassLoader( classLoader )
.setMavenEmbedderLogger( new MavenEmbedderConsoleLogger() );
+ configuration.setUserSettingsFile( MavenEmbedder.DEFAULT_USER_SETTINGS_FILE );
maven = new MavenEmbedder( configuration );
}
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/embedder/validation/MavenEmbedderCrappySettingsConfigurationTest.java Thu Jul 24 11:04:50 2008
@@ -31,6 +31,7 @@
import java.io.File;
import java.util.Arrays;
+import java.util.Iterator;
public class MavenEmbedderCrappySettingsConfigurationTest
extends PlexusTestCase
@@ -40,7 +41,7 @@
{
// START SNIPPET: simple-embedder-example
- File projectDirectory = new File( getBasedir(), "src/examples/simple-project" );
+ File projectDirectory = getTestFile( "src/examples/simple-project" );
File user = new File( projectDirectory, "invalid-settings.xml" );
@@ -58,9 +59,17 @@
MavenExecutionRequest request = new DefaultMavenExecutionRequest()
.setBaseDirectory( projectDirectory )
- .setGoals( Arrays.asList( new String[]{"clean", "install"} ) );
+ .setGoals( Arrays.asList( new String[]{"validate"} ) );
MavenExecutionResult result = embedder.execute( request );
+
+ for ( Iterator i = result.getExceptions().iterator(); i.hasNext(); )
+ {
+ Exception e = (Exception) i.next();
+ e.printStackTrace();
+ }
+
+ assertFalse( result.hasExceptions() );
assertNotNull( result.getProject() );
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java Thu Jul 24 11:04:50 2008
@@ -78,7 +78,8 @@
Configuration configuration = new DefaultConfiguration().setClassLoader( classLoader )
.setMavenEmbedderLogger( new MavenEmbedderConsoleLogger() );
-
+ configuration.setUserSettingsFile( MavenEmbedder.DEFAULT_USER_SETTINGS_FILE );
+
maven = new MavenEmbedder( configuration );
}
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Thu Jul 24 11:04:50 2008
@@ -1071,6 +1071,8 @@
dPlugin.setGroupId( iPlugin.getGroupId() );
dPlugin.setArtifactId( iPlugin.getArtifactId() );
dPlugin.setVersion( iPlugin.getVersion() );
+
+ dPlugin.setDependencies( iPlugin.getDependencies() );
}
}
@@ -1092,6 +1094,8 @@
dPlugin.setGroupId( iPlugin.getGroupId() );
dPlugin.setArtifactId( iPlugin.getArtifactId() );
dPlugin.setVersion( iPlugin.getVersion() );
+
+ dPlugin.setDependencies( iPlugin.getDependencies() );
}
}
}
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java Thu Jul 24 11:04:50 2008
@@ -562,6 +562,8 @@
public static Model cloneModel( Model model )
{
// TODO: would be nice for the modello:java code to generate this as a copy constructor
+ // FIXME: Fix deep cloning issues with existing plugin instances (setting
+ // a version when resolved will pollute the original model instance)
Model newModel = new Model();
ModelInheritanceAssembler assembler = new DefaultModelInheritanceAssembler();
newModel.setModelVersion( model.getModelVersion() );
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Thu Jul 24 11:04:50 2008
@@ -101,22 +101,34 @@
return artifact;
}
- ProjectRelocation res = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
- MavenProject project = res.project;
-
+ ProjectRelocation rel = retrieveRelocatedProject( artifact, localRepository, remoteRepositories );
+
+ if ( rel == null )
+ {
+ return artifact;
+ }
+
+ MavenProject project = rel.project;
if ( project == null || getRelocationKey( artifact ).equals( getRelocationKey( project.getArtifact() ) ) )
{
return artifact;
}
+
+ // NOTE: Using artifact information here, since some POMs are deployed
+ // to central with one version in the filename, but another in the <version> string!
+ // Case in point: org.apache.ws.commons:XmlSchema:1.1:pom.
+ //
+ // Since relocation triggers a reconfiguration of the artifact's information
+ // in retrieveRelocatedProject(..), this is safe to do.
Artifact result = null;
if ( artifact.getClassifier() != null )
{
- result = artifactFactory.createArtifactWithClassifier( project.getGroupId(), project.getArtifactId(), project.getVersion(), artifact.getType(), artifact.getClassifier() );
+ result = artifactFactory.createArtifactWithClassifier( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(), artifact.getClassifier() );
}
else
{
- result = artifactFactory.createArtifact( project.getGroupId(), project.getArtifactId(), project.getVersion(), artifact.getScope(), artifact.getType() );
+ result = artifactFactory.createArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getScope(), artifact.getType() );
}
result.setScope( artifact.getScope() );
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java Thu Jul 24 11:04:50 2008
@@ -88,6 +88,12 @@
throws IOException
{
}
+
+ // for testing.
+ protected RegexBasedModelInterpolator( PathTranslator pathTranslator )
+ {
+ this.pathTranslator = pathTranslator;
+ }
public Model interpolate( Model model, Map<String, ?> context )
throws ModelInterpolationException
@@ -199,15 +205,8 @@
timestampFormat = modelProperties.getProperty( BUILD_TIMESTAMP_FORMAT_PROPERTY, timestampFormat );
}
- ValueSource baseModelValueSource1 = new PrefixedObjectValueSource( PROJECT_PREFIXES, model, false );
- ValueSource modelValueSource1 = new PathTranslatingValueSource( baseModelValueSource1,
- TRANSLATED_PATH_EXPRESSIONS,
- projectDir, pathTranslator );
-
- ValueSource baseModelValueSource2 = new ObjectBasedValueSource( model );
- ValueSource modelValueSource2 = new PathTranslatingValueSource( baseModelValueSource2,
- TRANSLATED_PATH_EXPRESSIONS,
- projectDir, pathTranslator );
+ ValueSource modelValueSource1 = new PrefixedObjectValueSource( PROJECT_PREFIXES, model, false );
+ ValueSource modelValueSource2 = new ObjectBasedValueSource( model );
ValueSource basedirValueSource = new PrefixedValueSourceWrapper( new ValueSource(){
public Object getValue( String expression )
@@ -232,6 +231,11 @@
interpolator.addValueSource( new PrefixedValueSourceWrapper( new MapBasedValueSource( modelProperties ), PROJECT_PREFIXES, true ) );
interpolator.addValueSource( modelValueSource2 );
interpolator.addValueSource( new MapBasedValueSource( config.getUserProperties() ) );
+
+ PathTranslatingPostProcessor pathTranslatingPostProcessor =
+ new PathTranslatingPostProcessor( TRANSLATED_PATH_EXPRESSIONS, projectDir, pathTranslator );
+
+ interpolator.addPostProcessor( pathTranslatingPostProcessor );
RecursionInterceptor recursionInterceptor = new PrefixAwareRecursionInterceptor( PROJECT_PREFIXES );
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml Thu Jul 24 11:04:50 2008
@@ -115,7 +115,7 @@
</plugin>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
- <version>2.3</version>
+ <version>2.4.2</version>
</plugin>
<plugin>
<artifactId>maven-rar-plugin</artifactId>
@@ -131,7 +131,7 @@
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
- <version>2.0-beta-6</version>
+ <version>2.0-beta-7</version>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
@@ -139,7 +139,7 @@
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.4.2</version>
+ <version>2.4.3</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java Thu Jul 24 11:04:50 2008
@@ -19,19 +19,25 @@
* under the License.
*/
+import org.apache.maven.model.Build;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DeploymentRepository;
import org.apache.maven.model.DistributionManagement;
import org.apache.maven.model.Model;
import org.apache.maven.model.Organization;
import org.apache.maven.model.Repository;
+import org.apache.maven.model.Resource;
import org.apache.maven.model.Scm;
import org.apache.maven.project.DefaultProjectBuilderConfiguration;
import org.apache.maven.project.ProjectBuilderConfiguration;
+import org.apache.maven.project.path.DefaultPathTranslator;
+import org.apache.maven.project.path.PathTranslator;
import java.io.File;
import java.io.IOException;
import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -297,4 +303,83 @@
assertEquals( "Expected '" + expectedVersion + "' for version expression '" + depVersionExpr + "', but was '" + result + "'", expectedVersion, result );
}
+ public void testShouldInterpolateSourceDirectoryReferencedFromResourceDirectoryCorrectly()
+ throws Exception
+ {
+ Model model = new Model();
+
+ Build build = new Build();
+ build.setSourceDirectory( "correct" );
+
+ Resource res = new Resource();
+ res.setDirectory( "${project.build.sourceDirectory}" );
+
+ build.addResource( res );
+
+ Resource res2 = new Resource();
+ res2.setDirectory( "${pom.build.sourceDirectory}" );
+
+ build.addResource( res2 );
+
+ Resource res3 = new Resource();
+ res3.setDirectory( "${build.sourceDirectory}" );
+
+ build.addResource( res3 );
+
+ model.setBuild( build );
+
+ Model out = new RegexBasedModelInterpolator().interpolate( model, context );
+
+ List outResources = out.getBuild().getResources();
+ Iterator resIt = outResources.iterator();
+
+ assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next() ).getDirectory() );
+ assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next() ).getDirectory() );
+ assertEquals( build.getSourceDirectory(), ( (Resource) resIt.next() ).getDirectory() );
+ }
+
+ public void testShouldInterpolateUnprefixedBasedirExpression()
+ throws ModelInterpolationException, IOException
+ {
+ File basedir = new File( "/test/path" );
+ Model model = new Model();
+ Dependency dep = new Dependency();
+ dep.setSystemPath( "${basedir}/artifact.jar" );
+
+ model.addDependency( dep );
+
+ Model result = new RegexBasedModelInterpolator().interpolate( model, basedir, new DefaultProjectBuilderConfiguration(), true );
+
+ List rDeps = result.getDependencies();
+ assertNotNull( rDeps );
+ assertEquals( 1, rDeps.size() );
+ assertEquals( new File( basedir, "artifact.jar" ).getAbsolutePath(), new File( ( (Dependency) rDeps.get( 0 ) )
+ .getSystemPath() ).getAbsolutePath() );
+ }
+
+ public void testTwoLevelRecursiveBasedirAlignedExpression()
+ throws Exception
+ {
+ Model model = new Model();
+ Build build = new Build();
+
+ model.setBuild( build );
+
+ build.setDirectory( "${project.basedir}/target" );
+ build.setOutputDirectory( "${project.build.directory}/classes" );
+
+ PathTranslator translator = new DefaultPathTranslator();
+ RegexBasedModelInterpolator interpolator = new RegexBasedModelInterpolator( translator );
+
+ File basedir = new File( System.getProperty( "java.io.tmpdir" ), "base" );
+
+ String value = interpolator.interpolate( "${project.build.outputDirectory}/foo", model, basedir, new DefaultProjectBuilderConfiguration(), true );
+ value = value.replace( '/', File.separatorChar ).replace( '\\', File.separatorChar );
+
+ String check = new File( basedir, "target/classes/foo" ).getAbsolutePath();
+ check = check.replace( '/', File.separatorChar ).replace( '\\', File.separatorChar );
+
+ assertEquals( check, value );
+ }
+
}
Modified: maven/sandbox/branches/SI_MAVEN_2_1_A/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/branches/SI_MAVEN_2_1_A/pom.xml?rev=679476&r1=679475&r2=679476&view=diff
==============================================================================
--- maven/sandbox/branches/SI_MAVEN_2_1_A/pom.xml (original)
+++ maven/sandbox/branches/SI_MAVEN_2_1_A/pom.xml Thu Jul 24 11:04:50 2008
@@ -203,16 +203,32 @@
<version>1.0.0</version>
</plugin>
<plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>clirr-maven-plugin</artifactId>
+ <version>2.2.1</version>
+ <configuration>
+ <!-- needed for release: default value "(,${project.version})" for 2.0.10 is 2.0.10-SNAPSHOT -->
+ <comparisonVersion>2.0.9</comparisonVersion>
+ <excludes>
+ <!-- TODO: These represent method ADDITIONS from 2.0.9, and should be removed after
+ 2.0.10 is released. -->
+ <exclude>org/apache/maven/lifecycle/LifecycleExecutor*</exclude>
+ <exclude>org/apache/maven/artifact/metadata/ArtifactMetadataSource*</exclude>
+ <exclude>org/apache/maven/project/MavenProjectBuilder*</exclude>
+ <exclude>org/apache/maven/project/ProjectBuilderConfiguration*</exclude>
+ <exclude>org/apache/maven/project/interpolation/ModelInterpolator*</exclude>
+ <exclude>org/apache/maven/project/inheritance/ModelInheritanceAssembler*</exclude>
+ <exclude>org/apache/maven/execution/MavenExecutionRequest*</exclude>
+ <exclude>org/apache/maven/plugin/DefaultPluginManager*</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
- <artifactId>shade-maven-plugin</artifactId>
- <groupId>org.codehaus.mojo</groupId>
- <version>1.0-alpha-12</version>
- </plugin>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-2</version>
@@ -253,8 +269,8 @@
<junitVersion>3.8.1</junitVersion>
<plexusVersion>1.0-alpha-48</plexusVersion>
<plexusInteractivityVersion>1.0-alpha-6</plexusInteractivityVersion>
- <plexusInterpolationVersion>1.0</plexusInterpolationVersion>
- <plexusUtilsVersion>1.5.4</plexusUtilsVersion>
+ <plexusInterpolationVersion>1.1</plexusInterpolationVersion>
+ <plexusUtilsVersion>1.5.5</plexusUtilsVersion>
<wagonVersion>1.0-beta-3</wagonVersion>
<mavenSharedModelVersion>1.0-SNAPSHOT</mavenSharedModelVersion>
<woodstoxVersion>3.2.6</woodstoxVersion>