You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2009/01/29 03:37:07 UTC

svn commit: r738719 - in /maven/components/branches/maven-2.1.x/maven-project/src: main/java/org/apache/maven/project/interpolation/ test/java/org/apache/maven/project/interpolation/

Author: brett
Date: Thu Jan 29 02:37:06 2009
New Revision: 738719

URL: http://svn.apache.org/viewvc?rev=738719&view=rev
Log:
[MNG-3760] add the ${project.baseUri} expression

Modified:
    maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
    maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java

Modified: maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java?rev=738719&r1=738718&r2=738719&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java (original)
+++ maven/components/branches/maven-2.1.x/maven-project/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java Thu Jan 29 02:37:06 2009
@@ -235,16 +235,27 @@
                 {
                     return projectDir.getAbsolutePath();
                 }
-
                 return null;
             }
         },
         PROJECT_PREFIXES, true );
+        ValueSource baseUriValueSource = new PrefixedValueSourceWrapper( new AbstractValueSource( false ){
+            public Object getValue( String expression )
+            {
+                if ( projectDir != null && "baseUri".equals( expression ) )
+                {
+                    return projectDir.getAbsoluteFile().toURI().toString();
+                }
+                return null;
+            }
+        },
+        PROJECT_PREFIXES, false );
         
-        List valueSources = new ArrayList( 8 );
+        List valueSources = new ArrayList( 9 );
         
         // NOTE: Order counts here!
         valueSources.add( basedirValueSource );
+        valueSources.add( baseUriValueSource );
         valueSources.add( new BuildTimestampValueSource( config.getBuildStartTime(), timestampFormat ) );
         valueSources.add( modelValueSource1 );
         valueSources.add( new MapBasedValueSource( config.getUserProperties() ) );

Modified: maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java?rev=738719&r1=738718&r2=738719&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java (original)
+++ maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java Thu Jan 29 02:37:06 2009
@@ -59,7 +59,9 @@
     {
         super.setUp();
 
-        context = Collections.singletonMap( "basedir", "myBasedir" );
+        context = new HashMap();
+        context.put( "basedir", "myBasedir" );
+        context.put( "project.baseUri", "myBaseUri" );
     }
     
     public void testDefaultBuildTimestampFormatShouldParseTimeIn24HourFormat()
@@ -260,6 +262,26 @@
         assertEquals( "file://localhost/myBasedir/temp-repo", ( (Repository) out.getRepositories().get( 0 ) ).getUrl() );
     }
 
+    public void testBaseUri()
+        throws Exception
+    {
+        Model model = new Model();
+        model.setVersion( "3.8.1" );
+        model.setArtifactId( "foo" );
+
+        Repository repository = new Repository();
+
+        repository.setUrl( "${project.baseUri}/temp-repo" );
+
+        model.addRepository( repository );
+
+        ModelInterpolator interpolator = createInterpolator();
+
+        Model out = interpolator.interpolate( model, context );
+
+        assertEquals( "myBaseUri/temp-repo", ( (Repository) out.getRepositories().get( 0 ) ).getUrl() );
+    }
+
     public void testEnvars()
         throws Exception
     {