You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2008/12/20 21:08:59 UTC
svn commit: r728337 - in /maven/plugins/trunk/maven-invoker-plugin/src:
it/pom-filtering/ it/pom-filtering/src/it/project/
main/java/org/apache/maven/plugin/invoker/ site/apt/examples/
Author: bentmann
Date: Sat Dec 20 12:08:59 2008
New Revision: 728337
URL: http://svn.apache.org/viewvc?rev=728337&view=rev
Log:
[MINVOKER-73] Support filter token @baseurl@
Modified:
maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/pom.xml
maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/src/it/project/pom.xml
maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/verify.bsh
maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java
maven/plugins/trunk/maven-invoker-plugin/src/site/apt/examples/filtering.apt.vm
Modified: maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/pom.xml?rev=728337&r1=728336&r2=728337&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/pom.xml (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/pom.xml Sat Dec 20 12:08:59 2008
@@ -58,6 +58,7 @@
<itProperty>PASSED</itProperty>
<project.nonExistingPomValue>PASSED</project.nonExistingPomValue>
<basedir>FAILED</basedir>
+ <baseurl>FAILED</baseurl>
</filterProperties>
</configuration>
<executions>
Modified: maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/src/it/project/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/src/it/project/pom.xml?rev=728337&r1=728336&r2=728337&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/src/it/project/pom.xml (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/src/it/project/pom.xml Sat Dec 20 12:08:59 2008
@@ -45,8 +45,9 @@
<prop8>@project.nonExistingPomValue@</prop8>
<!-- built-in properties must not be overridden by properties from the plugin configuration -->
<prop9>@basedir@</prop9>
- <prop10>@localRepository@</prop10>
- <prop11>@localRepositoryUrl@</prop11>
+ <prop10>@baseurl@</prop10>
+ <prop11>@localRepository@</prop11>
+ <prop12>@localRepositoryUrl@</prop12>
</properties>
<build>
Modified: maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/verify.bsh?rev=728337&r1=728336&r2=728337&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/verify.bsh (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/it/pom-filtering/verify.bsh Sat Dec 20 12:08:59 2008
@@ -34,6 +34,8 @@
"<prop6>PASSED</prop6>",
"<prop7>PASSED</prop7>",
"<prop8>PASSED</prop8>",
+ "<prop10>file:///",
+ "<prop12>file:///",
};
for ( String value : values )
{
@@ -48,8 +50,10 @@
String[] badValues = {
"<prop9>@basedir@</prop9>",
"<prop9>FAILED</prop9>",
- "<prop10>@localRepository@</prop10>",
- "<prop11>@localRepositoryUrl@</prop11>",
+ "<prop10>@baseurl@</prop10>",
+ "<prop10>FAILED</prop10>",
+ "<prop11>@localRepository@</prop11>",
+ "<prop12>@localRepositoryUrl@</prop12>",
};
for ( String value : badValues )
{
Modified: maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java?rev=728337&r1=728336&r2=728337&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java Sat Dec 20 12:08:59 2008
@@ -1661,25 +1661,37 @@
props.putAll( filterProperties );
}
props.put( "basedir", this.project.getBasedir().getAbsolutePath() );
+ props.put( "baseurl", toUrl( this.project.getBasedir().getAbsolutePath() ) );
if ( settings.getLocalRepository() != null )
{
props.put( "localRepository", settings.getLocalRepository() );
- /*
- * NOTE: Maven fails to properly handle percent-encoded "file:" URLs (WAGON-111) so don't use File.toURI()
- * here and just do it the simple way.
- */
- String url = settings.getLocalRepository();
- if ( !url.startsWith( "/" ) )
- {
- url = '/' + url;
- }
- url = "file://" + url.replace( '\\', '/' );
- props.put( "localRepositoryUrl", url );
+ props.put( "localRepositoryUrl", toUrl( settings.getLocalRepository() ) );
}
return new CompositeMap( this.project, props );
}
/**
+ * Converts the specified filesystem path to a URL. The resulting URL has no trailing slash regardless whether the
+ * path denotes a file or a directory.
+ *
+ * @param filename The filesystem path to convert, must not be <code>null</code>.
+ * @return The <code>file:</code> URL for the specified path, never <code>null</code>.
+ */
+ private static String toUrl( String filename )
+ {
+ /*
+ * NOTE: Maven fails to properly handle percent-encoded "file:" URLs (WAGON-111) so don't use File.toURI() here
+ * as-is but use the decoded path component in the URL.
+ */
+ String url = "file://" + new File( filename ).toURI().getPath();
+ if ( url.endsWith( "/" ) )
+ {
+ url = url.substring( 0, url.length() - 1 );
+ }
+ return url;
+ }
+
+ /**
* Gets goal/profile names for the specified project, either directly from the plugin configuration or from an
* external token file.
*
Modified: maven/plugins/trunk/maven-invoker-plugin/src/site/apt/examples/filtering.apt.vm
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/site/apt/examples/filtering.apt.vm?rev=728337&r1=728336&r2=728337&view=diff
==============================================================================
--- maven/plugins/trunk/maven-invoker-plugin/src/site/apt/examples/filtering.apt.vm (original)
+++ maven/plugins/trunk/maven-invoker-plugin/src/site/apt/examples/filtering.apt.vm Sat Dec 20 12:08:59 2008
@@ -116,6 +116,8 @@
*--------------------------+----------------------------------------------------------------------------------+--------+
| <<<basedir>>> | The absolute path to the project base directory of the main build. | 1.1 |
*--------------------------+----------------------------------------------------------------------------------+--------+
+| <<<baseurl>>> | The <<<file:>>> URL to the project base directory of the main build. | 1.4 |
+*--------------------------+----------------------------------------------------------------------------------+--------+
| <<<localRepository>>> | The absolute path to the local repository used for the main build. | 1.2 |
*--------------------------+----------------------------------------------------------------------------------+--------+
| <<<localRepositoryUrl>>> | The <<<file:>>> URL to the local repository used for the main build. | 1.3 |