Return-Path: Delivered-To: apmail-maven-commits-archive@www.apache.org Received: (qmail 71746 invoked from network); 19 Apr 2008 22:10:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Apr 2008 22:10:02 -0000 Received: (qmail 82383 invoked by uid 500); 19 Apr 2008 22:10:03 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 82312 invoked by uid 500); 19 Apr 2008 22:10:03 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 82299 invoked by uid 99); 19 Apr 2008 22:10:03 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 19 Apr 2008 15:10:03 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 19 Apr 2008 22:09:18 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id E97C01A9832; Sat, 19 Apr 2008 15:09:37 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r649858 - in /maven/plugins/trunk/maven-invoker-plugin: ./ src/main/java/org/apache/maven/plugin/invoker/ src/test/java/org/apache/maven/plugin/invoker/ Date: Sat, 19 Apr 2008 22:09:37 -0000 To: commits@maven.apache.org From: olamy@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080419220937.E97C01A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: olamy Date: Sat Apr 19 15:09:36 2008 New Revision: 649858 URL: http://svn.apache.org/viewvc?rev=649858&view=rev Log: interpolate settings file add a new key/value localRepository with value settings.localRepository (will help to fix MINVOKER-26) Modified: maven/plugins/trunk/maven-invoker-plugin/pom.xml maven/plugins/trunk/maven-invoker-plugin/src/main/java/org/apache/maven/plugin/invoker/InvokerMojo.java maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InterpolationTest.java maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java Modified: maven/plugins/trunk/maven-invoker-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/pom.xml?rev=649858&r1=649857&r2=649858&view=diff ============================================================================== --- maven/plugins/trunk/maven-invoker-plugin/pom.xml (original) +++ maven/plugins/trunk/maven-invoker-plugin/pom.xml Sat Apr 19 15:09:36 2008 @@ -70,6 +70,11 @@ 2.0 + org.apache.maven + maven-settings + 2.0 + + org.apache.maven.shared file-management 1.1 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=649858&r1=649857&r2=649858&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 Apr 19 15:09:36 2008 @@ -46,6 +46,7 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.project.MavenProject; +import org.apache.maven.settings.Settings; import org.apache.maven.shared.invoker.CommandLineConfigurationException; import org.apache.maven.shared.invoker.DefaultInvocationRequest; import org.apache.maven.shared.invoker.InvocationRequest; @@ -334,6 +335,18 @@ * @since 1.2 */ private String encoding; + + /** + * The current user system settings for use in Maven. + * + * @parameter expression="${settings}" + * @required + * @readonly + * @since 1.2 + */ + private Settings settings; + + public void execute() throws MojoExecutionException, MojoFailureException @@ -609,7 +622,7 @@ File pomFile = new File( projectsDir, pom ); final File basedir = pomFile.getParentFile(); - File interpolatedPomFile = buildInterpolatedPomFile( pomFile, basedir ); + File interpolatedPomFile = buildInterpolatedFile( pomFile, basedir, "interpolated-pom.xml" ); FileLogger logger = null; try { @@ -732,7 +745,10 @@ if ( settingsFile != null ) { - request.setUserSettingsFile( settingsFile ); + buildInterpolatedFile( settingsFile, settingsFile.getParentFile(), settingsFile.getName() + + ".interpolated" ); + request.setUserSettingsFile( new File( settingsFile.getParentFile(), settingsFile.getName() + + ".interpolated" ) ); } if ( mavenOpts != null ) @@ -1123,39 +1139,47 @@ return result; } - protected File buildInterpolatedPomFile( File pomFile, File targetDirectory ) + protected File buildInterpolatedFile( File originalFile, File targetDirectory, String targetFileName ) throws MojoExecutionException { - File interpolatedPomFile = new File( targetDirectory, "interpolated-pom.xml" ); - if (interpolatedPomFile.exists()) + File interpolatedFile = new File( targetDirectory, targetFileName ); + if (interpolatedFile.exists()) + { + interpolatedFile.delete(); + } + interpolatedFile.deleteOnExit(); + if ( settings.getLocalRepository() != null ) { - interpolatedPomFile.delete(); + if (this.interpolationsProperties == null) + { + this.interpolationsProperties = new Properties(); + } + this.interpolationsProperties.put( "localRepository", settings.getLocalRepository() ); } - interpolatedPomFile.deleteOnExit(); Map composite = new CompositeMap( this.project, this.interpolationsProperties ); try { - boolean created = interpolatedPomFile.createNewFile(); + boolean created = interpolatedFile.createNewFile(); if ( !created ) { - throw new MojoExecutionException( "fail to create file " + interpolatedPomFile.getPath() ); + throw new MojoExecutionException( "fail to create file " + interpolatedFile.getPath() ); } } catch ( IOException e ) { - throw new MojoExecutionException( "fail to create file " + interpolatedPomFile.getPath() ); + throw new MojoExecutionException( "fail to create file " + interpolatedFile.getPath() ); } - getLog().debug( "interpolate it pom to create interpolated in " + interpolatedPomFile.getPath() ); + getLog().debug( "interpolate it pom to create interpolated in " + interpolatedFile.getPath() ); BufferedReader reader = null; Writer writer = null; try { - // pom interpolation with token @...@ - reader = new BufferedReader( new InterpolationFilterReader( ReaderFactory.newXmlReader( pomFile ), composite, "@", + // interpolation with token @...@ + reader = new BufferedReader( new InterpolationFilterReader( ReaderFactory.newXmlReader( originalFile ), composite, "@", "@" ) ); - writer = WriterFactory.newXmlWriter( interpolatedPomFile ); + writer = WriterFactory.newXmlWriter( interpolatedFile ); String line = null; while ( ( line = reader.readLine() ) != null ) { @@ -1175,12 +1199,12 @@ IOUtil.close( writer ); } - if ( interpolatedPomFile == null ) + if ( interpolatedFile == null ) { // null check : normally impossibe but :-) throw new MojoExecutionException( "pom file is null after interpolation" ); } - return interpolatedPomFile; + return interpolatedFile; } protected List getProfiles( File projectDirectory ) Modified: maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InterpolationTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InterpolationTest.java?rev=649858&r1=649857&r2=649858&view=diff ============================================================================== --- maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InterpolationTest.java (original) +++ maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InterpolationTest.java Sat Apr 19 15:09:36 2008 @@ -27,6 +27,7 @@ import org.apache.maven.model.Scm; import org.apache.maven.plugin.testing.AbstractMojoTestCase; import org.apache.maven.plugin.testing.stubs.MavenProjectStub; +import org.apache.maven.settings.Settings; import org.codehaus.plexus.util.IOUtil; /** @@ -74,6 +75,7 @@ InvokerMojo invokerMojo = new InvokerMojo(); setVariableValueToObject( invokerMojo, "goalsFile", "goals.txt" ); setVariableValueToObject( invokerMojo, "project", buildMavenProjectStub() ); + setVariableValueToObject( invokerMojo, "settings", new Settings() ); Properties properties = new Properties(); properties.put( "cleanProps", "clean" ); properties.put( "version", "2.0-SNAPSHOT" ); @@ -96,23 +98,24 @@ InvokerMojo invokerMojo = new InvokerMojo(); setVariableValueToObject( invokerMojo, "goalsFile", "goals.txt" ); setVariableValueToObject( invokerMojo, "project", buildMavenProjectStub() ); + setVariableValueToObject( invokerMojo, "settings", new Settings() ); Properties properties = new Properties(); properties.put( "foo", "bar" ); properties.put( "version", "2.0-SNAPSHOT" ); setVariableValueToObject( invokerMojo, "interpolationsProperties", properties ); String dirPath = getBasedir() + File.separatorChar + "src" + File.separatorChar + "test" + File.separatorChar + "resources" + File.separatorChar + "unit" + File.separatorChar + "interpolation"; - interpolatedPomFile = invokerMojo.buildInterpolatedPomFile( new File( dirPath, "pom.xml" ), + interpolatedPomFile = invokerMojo.buildInterpolatedFile( new File( dirPath, "pom.xml" ), new File( getBasedir() + File.separatorChar - + "target" ) ); + + "target" ), "interpolated-pom.xml" ); fileReader = new FileReader( interpolatedPomFile ); String content = IOUtil.toString( fileReader ); assertTrue( content.indexOf( "bar" ) > 0 ); fileReader.close(); // recreate it to test delete if exists before creation - interpolatedPomFile = invokerMojo.buildInterpolatedPomFile( new File( dirPath, "pom.xml" ), + interpolatedPomFile = invokerMojo.buildInterpolatedFile( new File( dirPath, "pom.xml" ), new File( getBasedir() + File.separatorChar - + "target" ) ); + + "target" ), "interpolated-pom.xml" ); fileReader = new FileReader( interpolatedPomFile ); content = IOUtil.toString( fileReader ); assertTrue( content.indexOf( "bar" ) > 0 ); @@ -149,6 +152,7 @@ InvokerMojo invokerMojo = new InvokerMojo(); setVariableValueToObject( invokerMojo, "profiles", Arrays.asList( new String[] { "zloug" } ) ); setVariableValueToObject( invokerMojo, "profilesFile", "emptyProfiles.txt" ); + setVariableValueToObject( invokerMojo, "settings", new Settings() ); String dirPath = getBasedir() + File.separatorChar + "src" + File.separatorChar + "test" + File.separatorChar + "resources" + File.separatorChar + "unit" + File.separatorChar + "profiles-from-file"; List profiles = invokerMojo.getProfiles( new File( dirPath ) ); @@ -164,6 +168,7 @@ InvokerMojo invokerMojo = new InvokerMojo(); setVariableValueToObject( invokerMojo, "profiles", Arrays.asList( new String[] { "zloug" } ) ); setVariableValueToObject( invokerMojo, "profilesFile", "zorglubProfiles.txt" ); + setVariableValueToObject( invokerMojo, "settings", new Settings() ); String dirPath = getBasedir() + File.separatorChar + "src" + File.separatorChar + "test" + File.separatorChar + "resources" + File.separatorChar + "unit" + File.separatorChar + "profiles-from-file"; List profiles = invokerMojo.getProfiles( new File( dirPath ) ); Modified: maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java?rev=649858&r1=649857&r2=649858&view=diff ============================================================================== --- maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java (original) +++ maven/plugins/trunk/maven-invoker-plugin/src/test/java/org/apache/maven/plugin/invoker/InvokerMojoTest.java Sat Apr 19 15:09:36 2008 @@ -25,6 +25,7 @@ import java.util.List; import org.apache.maven.plugin.testing.AbstractMojoTestCase; +import org.apache.maven.settings.Settings; import org.apache.maven.shared.invoker.Invoker; import org.codehaus.plexus.util.FileUtils; @@ -73,6 +74,7 @@ //cloneProjectsTo.getParent() setVariableValueToObject( invokerMojo, "cloneProjectsTo", cloneProjectsTo ); setVariableValueToObject( invokerMojo, "postBuildHookScript", "verify.bsh" ); + setVariableValueToObject( invokerMojo, "settings", new Settings() ); invokerMojo.execute(); }