Author: jdcasey Date: Fri Sep 30 08:45:20 2005 New Revision: 292781 URL: http://svn.apache.org/viewcvs?rev=292781&view=rev Log: Working on: MNG-786
o Changed the profile activation in it0075 to use a system property which is not always present o Added projecthelp:active-profiles, package, and clean:clean to the goals list, in case it was only happening with the clean plugin o Fixed the projecthelp mojos to be aggregators where appropriate o Changed the ordering of modules in the profile injector (used to be that profile modules were prepended; now, they're appended) NOTE: I still cannot reproduce the described behavior. Dan: Am I missing something WRT the test setup? I changed the activation trigger to be non-inherent, and I'm not using a boolean string to trigger the profile. What am I doing wrong?? Added: maven/components/trunk/maven-core-it/it0075/cli-options.txt (with props) Modified: maven/components/trunk/maven-core-it/it0075/expected-results.txt maven/components/trunk/maven-core-it/it0075/goals.txt maven/components/trunk/maven-core-it/it0075/pom.xml maven/components/trunk/maven-core-it/it0075/prebuild-hook.txt maven/components/trunk/maven-core-it/it0075/sub1/pom.xml maven/components/trunk/maven-core-it/it0075/sub2/pom.xml maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/ActiveProfilesPlugin.java maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/DescribeMojo.java maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/EffectivePomPlugin.java maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java Added: maven/components/trunk/maven-core-it/it0075/cli-options.txt URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0075/cli-options.txt?rev=292781&view=auto ============================================================================== --- maven/components/trunk/maven-core-it/it0075/cli-options.txt (added) +++ maven/components/trunk/maven-core-it/it0075/cli-options.txt Fri Sep 30 08:45:20 2005 @@ -0,0 +1 @@ +-Dactivate=anything Propchange: maven/components/trunk/maven-core-it/it0075/cli-options.txt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-core-it/it0075/cli-options.txt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Modified: maven/components/trunk/maven-core-it/it0075/expected-results.txt URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0075/expected-results.txt?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-core-it/it0075/expected-results.txt (original) +++ maven/components/trunk/maven-core-it/it0075/expected-results.txt Fri Sep 30 08:45:20 2005 @@ -1,2 +1,2 @@ -sub1/.classpath -sub2/.classpath +!sub1/target/maven-core-it0075-sub1-1.0.jar +!sub2/target/maven-core-it0075-sub2-1.0.jar Modified: maven/components/trunk/maven-core-it/it0075/goals.txt URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0075/goals.txt?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-core-it/it0075/goals.txt (original) +++ maven/components/trunk/maven-core-it/it0075/goals.txt Fri Sep 30 08:45:20 2005 @@ -1 +1,4 @@ +projecthelp:active-profiles +package eclipse:eclipse +clean:clean Modified: maven/components/trunk/maven-core-it/it0075/pom.xml URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0075/pom.xml?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-core-it/it0075/pom.xml (original) +++ maven/components/trunk/maven-core-it/it0075/pom.xml Fri Sep 30 08:45:20 2005 @@ -2,7 +2,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.maven.it</groupId> <artifactId>maven-core-it0075-root</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <packaging>pom</packaging> <modules> @@ -13,7 +13,9 @@ <profile> <id>include-sub2</id> <activation> - <property><name>user.name</name></property> + <property> + <name>activate</name> + </property> </activation> <modules> Modified: maven/components/trunk/maven-core-it/it0075/prebuild-hook.txt URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0075/prebuild-hook.txt?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-core-it/it0075/prebuild-hook.txt (original) +++ maven/components/trunk/maven-core-it/it0075/prebuild-hook.txt Fri Sep 30 08:45:20 2005 @@ -1,2 +1,2 @@ -rm sub1/.classpath -rm sub2/.classpath +rm sub1/target/maven-core-it0075-sub1-1.0.jar +rm sub2/target/maven-core-it0075-sub2-1.0.jar Modified: maven/components/trunk/maven-core-it/it0075/sub1/pom.xml URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0075/sub1/pom.xml?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-core-it/it0075/sub1/pom.xml (original) +++ maven/components/trunk/maven-core-it/it0075/sub1/pom.xml Fri Sep 30 08:45:20 2005 @@ -3,7 +3,7 @@ <parent> <groupId>org.apache.maven.it</groupId> <artifactId>maven-core-it0075-root</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> </parent> <artifactId>maven-core-it0075-sub1</artifactId> Modified: maven/components/trunk/maven-core-it/it0075/sub2/pom.xml URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0075/sub2/pom.xml?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-core-it/it0075/sub2/pom.xml (original) +++ maven/components/trunk/maven-core-it/it0075/sub2/pom.xml Fri Sep 30 08:45:20 2005 @@ -3,7 +3,7 @@ <parent> <groupId>org.apache.maven.it</groupId> <artifactId>maven-core-it0075-root</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> </parent> <artifactId>maven-core-it0075-sub2</artifactId> Modified: maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/ActiveProfilesPlugin.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/ActiveProfilesPlugin.java?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/ActiveProfilesPlugin.java (original) +++ maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/ActiveProfilesPlugin.java Fri Sep 30 08:45:20 2005 @@ -4,7 +4,13 @@ import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.logging.Log; +import org.apache.maven.project.MavenProject; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.Writer; +import java.util.Date; import java.util.Iterator; import java.util.List; @@ -27,31 +33,110 @@ /** Lists the profiles which are currently active for this build. * * @goal active-profiles + * @aggregator */ public class ActiveProfilesPlugin extends AbstractMojo { /** - * @parameter expression="${project.activeProfiles}" + * This is the list of projects currently slated to be built by Maven. + * + * @parameter expression="${reactorProjects}" * @required * @readonly */ - private List profiles; + private List projects; + + /** + * This is an optional parameter for a file destination for the output + * of this mojo...the listing of active profiles per project. + * + * @parameter expression="${output}" + */ + private File output; public void execute() throws MojoExecutionException { StringBuffer message = new StringBuffer(); + for ( Iterator it = projects.iterator(); it.hasNext(); ) + { + MavenProject project = (MavenProject) it.next(); + + getActiveProfileStatement( project, message ); + + message.append( "\n\n" ); + } + + if ( output != null ) + { + writeFile( message ); + } + else + { + Log log = getLog(); + log.info( message ); + } + } + + private void writeFile( StringBuffer message ) + throws MojoExecutionException + { + Writer writer = null; + try + { + File dir = output.getParentFile(); + + if( !dir.exists() ) + { + dir.mkdirs(); + } + + writer = new FileWriter( output ); + + writer.write( "Created by: " + getClass().getName() + "\n" ); + writer.write( "Created on: " + new Date() + "\n\n" ); + writer.write( message.toString() ); + writer.flush(); + + getLog().info( "Active profile report written to: " + output ); + } + catch ( IOException e ) + { + throw new MojoExecutionException( "Cannot write output to file: " + output, e ); + } + finally + { + if ( writer != null ) + { + try + { + writer.close(); + } + catch ( IOException e ) + { + getLog().debug( "Failed to close output file writer.", e ); + } + } + } + } + + private void getActiveProfileStatement( MavenProject project, StringBuffer message ) + { + List profiles = project.getActiveProfiles(); + message.append( "\n" ); + message.append( "Active Profiles for Project \'" + project.getId() + "\': \n\n" ); + if( profiles == null || profiles.isEmpty() ) { message.append( "There are no active profiles." ); } else { - message.append( "The following profiles are active:\n\n" ); + message.append( "The following profiles are active:\n" ); for ( Iterator it = profiles.iterator(); it.hasNext(); ) { @@ -65,22 +150,12 @@ } - message.append( "\n\n" ); - - Log log = getLog(); - - log.info( message ); - - } - - protected final List getProfiles() - { - return profiles; + message.append( "\n" ); } - protected final void setProfiles( List profiles ) + public final void setProjects( List projects ) { - this.profiles = profiles; + this.projects = projects; } } Modified: maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/DescribeMojo.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/DescribeMojo.java?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/DescribeMojo.java (original) +++ maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/DescribeMojo.java Fri Sep 30 08:45:20 2005 @@ -21,6 +21,7 @@ /** * @goal describe + * @aggregator */ public class DescribeMojo extends AbstractMojo Modified: maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/EffectivePomPlugin.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/EffectivePomPlugin.java?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/EffectivePomPlugin.java (original) +++ maven/components/trunk/maven-plugins/maven-projecthelp-plugin/src/main/java/org/apache/maven/plugins/projecthelp/EffectivePomPlugin.java Fri Sep 30 08:45:20 2005 @@ -4,11 +4,15 @@ import org.apache.maven.model.io.xpp3.MavenXpp3Writer; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.project.MavenProject; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.StringWriter; +import java.util.Date; +import java.util.Iterator; +import java.util.List; /* * Copyright 2001-2005 The Apache Software Foundation. @@ -29,58 +33,58 @@ /** Display the effective POM for this build, with the active profiles factored in. * * @goal effective-pom + * @aggregator */ public class EffectivePomPlugin extends AbstractMojo { - + /** - * @parameter expression="${project.model}" + * @parameter expression="${reactorProjects}" * @required * @readonly */ - private Model pom; - + private List projects; + /** - * @parameter + * @parameter expression="${output}" */ - private String output; + private File output; public void execute() throws MojoExecutionException { - StringWriter sWriter = new StringWriter(); + StringBuffer message = new StringBuffer(); - MavenXpp3Writer pomWriter = new MavenXpp3Writer(); - - try + for ( Iterator it = projects.iterator(); it.hasNext(); ) { - pomWriter.write( sWriter, pom ); - } - catch ( IOException e ) - { - throw new MojoExecutionException( "Cannot serialize POM to XML.", e ); + MavenProject project = (MavenProject) it.next(); + + getEffectivePom( project, message ); + + message.append( "\n\n" ); } - if( output != null && output.trim().length() > 0 ) + if ( output != null ) { FileWriter fWriter = null; try { - File outFile = new File( output ).getAbsoluteFile(); - - File dir = outFile.getParentFile(); - - if( !dir.exists() ) + File dir = output.getParentFile(); + + if ( !dir.exists() ) { dir.mkdirs(); } + + getLog().info( "Writing effective-POM to: " + output ); + + fWriter = new FileWriter( output ); + + fWriter.write( "Created by: " + getClass().getName() + "\n" ); + fWriter.write( "Created on: " + new Date() + "\n\n" ); - getLog().info( "Writing effective-POM to: " + outFile ); - - fWriter = new FileWriter( outFile ); - - fWriter.write( sWriter.toString() ); + fWriter.write( message.toString() ); } catch ( IOException e ) { @@ -88,13 +92,13 @@ } finally { - if( fWriter != null ) + if ( fWriter != null ) { try { fWriter.close(); } - catch( IOException e ) + catch ( IOException e ) { getLog().debug( "Cannot close FileWriter to output location: " + output, e ); } @@ -103,34 +107,51 @@ } else { - StringBuffer message = new StringBuffer(); - - message.append( "\nEffective POM, after all profiles are factored in:\n\n" ); - message.append( sWriter.toString() ); - message.append( "\n\n" ); - + StringBuffer formatted = new StringBuffer(); + + formatted.append( "\nEffective POMs, after inheritance, interpolation, and profiles are applied:\n\n" ); + formatted.append( message.toString() ); + formatted.append( "\n" ); + getLog().info( message ); } } - protected final String getOutput() + private void getEffectivePom( MavenProject project, StringBuffer message ) + throws MojoExecutionException { - return output; - } + Model pom = project.getModel(); + + StringWriter sWriter = new StringWriter(); + + MavenXpp3Writer pomWriter = new MavenXpp3Writer(); + + try + { + pomWriter.write( sWriter, pom ); + + message.append( "\n************************************************************************************" ); + message.append( "\nEffective POM for project \'" + project.getId() + "\'" ); + message.append( "\n************************************************************************************" ); + message.append( "\n" ); + message.append( sWriter.toString() ); + message.append( "\n************************************************************************************" ); + } + catch ( IOException e ) + { + throw new MojoExecutionException( "Cannot serialize POM to XML.", e ); + } - protected final void setOutput( String output ) - { - this.output = output; } - protected final Model getPom() + protected final void setOutput( File output ) { - return pom; + this.output = output; } - protected final void setPom( Model pom ) + protected final void setProjects( List projects ) { - this.pom = pom; + this.projects = projects; } } Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java?rev=292781&r1=292780&r2=292781&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java Fri Sep 30 08:45:20 2005 @@ -298,22 +298,26 @@ modelContainer.setConfiguration( configuration ); } + /** + * Append modules specified in the profile to the end of the list supplied by the model, if + * they don't already exist. + */ private void injectModules( Profile profile, Model model ) { List modules = new ArrayList(); - List profileModules = profile.getModules(); + List modelModules = model.getModules(); - if ( profileModules != null && !profileModules.isEmpty() ) + if ( modelModules != null && !modelModules.isEmpty() ) { - modules.addAll( profileModules ); + modules.addAll( modelModules ); } - List modelModules = model.getModules(); + List profileModules = profile.getModules(); - if ( modelModules != null ) + if ( profileModules != null ) { - for ( Iterator it = modelModules.iterator(); it.hasNext(); ) + for ( Iterator it = profileModules.iterator(); it.hasNext(); ) { String module = (String) it.next(); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]