You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/08/26 20:22:00 UTC
svn commit: r689163 [3/3] - in /maven/components/branches/maven-2.1.x: ./
apache-maven/ apache-maven/src/assemble/
maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/
maven-core/ maven-core/src/main/java/org/apache/maven/ maven-core...
Modified: maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java?rev=689163&r1=689162&r2=689163&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java (original)
+++ maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolatorTest.java Tue Aug 26 11:21:59 2008
@@ -19,365 +19,30 @@
* under the License.
*/
-import org.apache.maven.model.Build;
-import org.apache.maven.model.Dependency;
-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.path.DefaultPathTranslator;
import org.apache.maven.project.path.PathTranslator;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import junit.framework.TestCase;
-
/**
* @author jdcasey
* @version $Id$
*/
public class RegexBasedModelInterpolatorTest
- extends TestCase
+ extends AbstractModelInterpolatorTest
{
- private Map context;
-
- protected void setUp()
- throws Exception
- {
- super.setUp();
-
- context = Collections.singletonMap( "basedir", "myBasedir" );
- }
-
- public void testShouldNotThrowExceptionOnReferenceToNonExistentValue()
- throws IOException, ModelInterpolationException
- {
- Model model = new Model();
-
- Scm scm = new Scm();
- scm.setConnection( "${test}/somepath" );
-
- model.setScm( scm );
-
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-
- assertEquals( "${test}/somepath", out.getScm().getConnection() );
- }
-
- public void testShouldThrowExceptionOnRecursiveScmConnectionReference()
- throws IOException
- {
- Model model = new Model();
-
- Scm scm = new Scm();
- scm.setConnection( "${project.scm.connection}/somepath" );
-
- model.setScm( scm );
-
- try
- {
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-
- fail( "The interpolator should not allow self-referencing expressions in POM." );
- }
- catch ( ModelInterpolationException e )
- {
-
- }
- }
-
- public void testShouldNotThrowExceptionOnReferenceToValueContainingNakedExpression()
- throws IOException, ModelInterpolationException
- {
- Model model = new Model();
-
- Scm scm = new Scm();
- scm.setConnection( "${test}/somepath" );
-
- model.setScm( scm );
-
- model.addProperty( "test", "test" );
-
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-
- assertEquals( "test/somepath", out.getScm().getConnection() );
- }
-
- public void testShouldInterpolateOrganizationNameCorrectly()
+ protected ModelInterpolator createInterpolator( PathTranslator translator )
throws Exception
{
- String orgName = "MyCo";
-
- Model model = new Model();
- model.setName( "${pom.organization.name} Tools" );
-
- Organization org = new Organization();
- org.setName( orgName );
-
- model.setOrganization( org );
-
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-
- assertEquals( orgName + " Tools", out.getName() );
- }
-
- public void testShouldInterpolateDependencyVersionToSetSameAsProjectVersion()
- throws Exception
- {
- Model model = new Model();
- model.setVersion( "3.8.1" );
-
- Dependency dep = new Dependency();
- dep.setVersion( "${version}" );
-
- model.addDependency( dep );
-
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-
- assertEquals( "3.8.1", ( (Dependency) out.getDependencies().get( 0 ) ).getVersion() );
- }
-
- public void testShouldNotInterpolateDependencyVersionWithInvalidReference()
- throws Exception
- {
- Model model = new Model();
- model.setVersion( "3.8.1" );
-
- Dependency dep = new Dependency();
- dep.setVersion( "${something}" );
-
- model.addDependency( dep );
-
- /*
- // This is the desired behaviour, however there are too many crappy poms in the repo and an issue with the
- // timing of executing the interpolation
-
- try
- {
- new RegexBasedModelInterpolator().interpolate( model, context );
- fail( "Should have failed to interpolate with invalid reference" );
- }
- catch ( ModelInterpolationException expected )
- {
- assertTrue( true );
- }
- */
-
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-
- assertEquals( "${something}", ( (Dependency) out.getDependencies().get( 0 ) ).getVersion() );
- }
-
- public void testTwoReferences()
- throws Exception
- {
- Model model = new Model();
- model.setVersion( "3.8.1" );
- model.setArtifactId( "foo" );
-
- Dependency dep = new Dependency();
- dep.setVersion( "${artifactId}-${version}" );
-
- model.addDependency( dep );
-
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-
- assertEquals( "foo-3.8.1", ( (Dependency) out.getDependencies().get( 0 ) ).getVersion() );
- }
-
- public void testBasedir()
- throws Exception
- {
- Model model = new Model();
- model.setVersion( "3.8.1" );
- model.setArtifactId( "foo" );
-
- Repository repository = new Repository();
-
- repository.setUrl( "file://localhost/${basedir}/temp-repo" );
-
- model.addRepository( repository );
-
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-
- assertEquals( "file://localhost/myBasedir/temp-repo", ( (Repository) out.getRepositories().get( 0 ) ).getUrl() );
- }
-
- public void testEnvars()
- throws Exception
- {
- Map context = new HashMap();
-
- context.put( "env.HOME", "/path/to/home" );
-
- Model model = new Model();
-
- Properties modelProperties = new Properties();
-
- modelProperties.setProperty( "outputDirectory", "${env.HOME}" );
-
- model.setProperties( modelProperties );
-
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-
- assertEquals( out.getProperties().getProperty( "outputDirectory" ), "/path/to/home" );
- }
-
- public void testEnvarExpressionThatEvaluatesToNullReturnsTheLiteralString()
- throws Exception
- {
- Properties envars = new Properties();
-
- Model model = new Model();
-
- Properties modelProperties = new Properties();
-
- modelProperties.setProperty( "outputDirectory", "${env.DOES_NOT_EXIST}" );
-
- model.setProperties( modelProperties );
-
- Model out = new RegexBasedModelInterpolator( envars ).interpolate( model, context );
-
- assertEquals( out.getProperties().getProperty( "outputDirectory" ), "${env.DOES_NOT_EXIST}" );
- }
-
- public void testExpressionThatEvaluatesToNullReturnsTheLiteralString()
- throws Exception
- {
- Model model = new Model();
-
- Properties modelProperties = new Properties();
-
- modelProperties.setProperty( "outputDirectory", "${DOES_NOT_EXIST}" );
-
- model.setProperties( modelProperties );
-
- Model out = new RegexBasedModelInterpolator().interpolate( model, context );
+ RegexBasedModelInterpolator interpolator = new RegexBasedModelInterpolator( translator );
+ interpolator.initialize();
- assertEquals( out.getProperties().getProperty( "outputDirectory" ), "${DOES_NOT_EXIST}" );
+ return interpolator;
}
- public void testShouldInterpolateSourceDirectoryReferencedFromResourceDirectoryCorrectly()
+ protected ModelInterpolator createInterpolator()
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 );
+ RegexBasedModelInterpolator interpolator = new RegexBasedModelInterpolator();
+ interpolator.initialize();
- 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() );
+ return interpolator;
}
-
- 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 );
- }
-
-// public void testPOMExpressionDoesNotUseSystemProperty()
-// throws Exception
-// {
-// Model model = new Model();
-// model.setVersion( "1.0" );
-//
-// Properties modelProperties = new Properties();
-// modelProperties.setProperty( "version", "prop version" );
-// modelProperties.setProperty( "foo.version", "prop foo.version" );
-// modelProperties.setProperty( "pom.version", "prop pom.version" );
-// modelProperties.setProperty( "project.version", "prop project.version" );
-//
-// model.setProperties( modelProperties );
-//
-// Dependency dep = new Dependency();
-// model.addDependency( dep );
-//
-// checkDep( "prop version", "${version}", model );
-// checkDep( "1.0", "${pom.version}", model );
-// checkDep( "1.0", "${project.version}", model );
-// checkDep( "prop foo.version", "${foo.version}", model );
-// }
-//
-// private void checkDep( String expectedVersion,
-// String depVersionExpr,
-// Model model )
-// throws Exception
-// {
-// ( (Dependency) model.getDependencies().get( 0 ) ).setVersion( depVersionExpr );
-// Model out = new RegexBasedModelInterpolator().interpolate( model, context );
-// String result = ( (Dependency) out.getDependencies().get( 0 ) ).getVersion();
-// assertEquals( "Expected '" + expectedVersion + "' for version expression '"
-// + depVersionExpr + "', but was '" + result + "'", expectedVersion, result );
-// }
-
}
Modified: maven/components/branches/maven-2.1.x/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java?rev=689163&r1=689162&r2=689163&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java (original)
+++ maven/components/branches/maven-2.1.x/maven-settings/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java Tue Aug 26 11:21:59 2008
@@ -192,6 +192,11 @@
for ( Iterator profiles = settings.getProfiles().iterator(); profiles.hasNext(); )
{
Profile profile = (Profile) profiles.next();
+ if ( profile.getId() == null )
+ {
+ profile.setId( "default" );
+ }
+
if ( profile.getActivation() != null && profile.getActivation().isActiveByDefault()
&& !activeProfiles.contains( profile.getId() ) )
{
Modified: maven/components/branches/maven-2.1.x/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/pom.xml?rev=689163&r1=689162&r2=689163&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/pom.xml (original)
+++ maven/components/branches/maven-2.1.x/pom.xml Tue Aug 26 11:21:59 2008
@@ -190,6 +190,7 @@
<configuration>
<tagBase>https://svn.apache.org/repos/asf/maven/components/tags</tagBase>
<autoVersionSubmodules>true</autoVersionSubmodules>
+ <preparationGoals>install</preparationGoals>
</configuration>
</plugin>
<plugin>
@@ -226,6 +227,7 @@
<!-- 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/AbstractArtifactMetadata*</exclude>
<exclude>org/apache/maven/artifact/metadata/ArtifactMetadataSource*</exclude>
<exclude>org/apache/maven/project/MavenProjectBuilder*</exclude>
<exclude>org/apache/maven/project/ProjectBuilderConfiguration*</exclude>
@@ -387,7 +389,7 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interpolation</artifactId>
- <version>1.1</version>
+ <version>1.4</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
@@ -421,8 +423,8 @@
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav</artifactId>
- <version>1.0-beta-2</version>
+ <artifactId>wagon-webdav-jackrabbit</artifactId>
+ <version>${wagonVersion}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
@@ -454,33 +456,6 @@
<profiles>
<profile>
- <id>release</id>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <inherited>false</inherited>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/src.xml</descriptor>
- </descriptors>
- <tarLongFileMode>gnu</tarLongFileMode>
- <finalName>maven-${project.version}-src</finalName>
- </configuration>
- <executions>
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
<id>run-its</id>
<modules>
<module>maven-core-it-runner</module>