Author: evenisse Date: Fri Aug 10 07:58:57 2007 New Revision: 564614 URL: http://svn.apache.org/viewvc?view=rev&rev=564614 Log: [CONTINUUM-990] Pass some continuum information to build tools (m1, m2, ant) when executing a build Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/ant/AntBuildExecutor.java maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutor.java maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java?view=diff&rev=564614&r1=564613&r2=564614 ============================================================================== --- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java (original) +++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java Fri Aug 10 07:58:57 2007 @@ -42,6 +42,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Properties; /** * @author Trygve Laugstøl @@ -263,6 +264,16 @@ envVars.put( installation.getVarName(), installation.getVarValue() ); } return envVars; + } + + protected Properties getContinuumSystemProperties( Project project ) + { + Properties properties = new Properties(); + properties.setProperty( "continuum.project.group.name", project.getProjectGroup().getName() ); + properties.setProperty( "continuum.project.lastBuild.state", String.valueOf( project.getOldState() ) ); + properties.setProperty( "continuum.project.lastBuild.number", String.valueOf( project.getBuildNumber() ) ); + properties.setProperty( "continuum.project.nextBuild.number", String.valueOf( project.getBuildNumber() + 1 ) ); + return properties; } public boolean isBuilding( Project project ) Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/ant/AntBuildExecutor.java URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/ant/AntBuildExecutor.java?view=diff&rev=564614&r1=564613&r2=564614 ============================================================================== --- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/ant/AntBuildExecutor.java (original) +++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/ant/AntBuildExecutor.java Fri Aug 10 07:58:57 2007 @@ -32,8 +32,10 @@ import java.io.File; import java.util.Collections; +import java.util.Enumeration; import java.util.HashMap; import java.util.Map; +import java.util.Properties; /** * @author Trygve Laugstøl @@ -72,17 +74,26 @@ String executable = getInstallationService().getExecutorConfigurator( InstallationService.ANT_TYPE ) .getExecutable(); - String arguments = ""; + StringBuffer arguments = new StringBuffer(); String buildFile = buildDefinition.getBuildFile(); if ( !StringUtils.isEmpty( buildFile ) ) { - arguments = "-f " + buildFile + " "; + arguments.append( "-f " ).append( buildFile ).append( " " ); } - arguments += - StringUtils.clean( buildDefinition.getArguments() ) + " " + StringUtils.clean( buildDefinition.getGoals() ); + arguments.append( StringUtils.clean( buildDefinition.getArguments() ) ).append( " " ); + + Properties props = getContinuumSystemProperties( project ); + for ( Enumeration itr = props.propertyNames(); itr.hasMoreElements(); ) + { + String name = (String) itr.nextElement(); + String value = props.getProperty( name ); + arguments.append( "\"-D" ).append( name ).append( "=" ).append( value ).append( "\" " ); + } + + arguments.append( StringUtils.clean( buildDefinition.getGoals() ) ); Map environments = getEnvironments( buildDefinition ); String antHome = environments.get( getInstallationService().getEnvVar( InstallationService.ANT_TYPE ) ); @@ -92,7 +103,7 @@ setResolveExecutable( false ); } - return executeShellCommand( project, executable, arguments, buildOutput, environments ); + return executeShellCommand( project, executable, arguments.toString(), buildOutput, environments ); } protected Map getEnvironments( BuildDefinition buildDefinition ) Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutor.java URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutor.java?view=diff&rev=564614&r1=564613&r2=564614 ============================================================================== --- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutor.java (original) +++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutor.java Fri Aug 10 07:58:57 2007 @@ -32,8 +32,10 @@ import java.io.File; import java.util.Collections; +import java.util.Enumeration; import java.util.HashMap; import java.util.Map; +import java.util.Properties; /** * @author Trygve Laugstøl @@ -71,17 +73,26 @@ String executable = getInstallationService().getExecutorConfigurator( InstallationService.MAVEN1_TYPE ) .getExecutable(); - String arguments = ""; + StringBuffer arguments = new StringBuffer(); String buildFile = StringUtils.clean( buildDefinition.getBuildFile() ); if ( !StringUtils.isEmpty( buildFile ) && !"project.xml".equals( buildFile ) ) { - arguments = "-p " + buildFile + " "; + arguments.append( "-p " ).append( buildFile ).append( " " ); } - arguments += - StringUtils.clean( buildDefinition.getArguments() ) + " " + StringUtils.clean( buildDefinition.getGoals() ); + arguments.append( StringUtils.clean( buildDefinition.getArguments() ) ).append( " " ); + + Properties props = getContinuumSystemProperties( project ); + for ( Enumeration itr = props.propertyNames(); itr.hasMoreElements(); ) + { + String name = (String) itr.nextElement(); + String value = props.getProperty( name ); + arguments.append( "\"-D" ).append( name ).append( "=" ).append( value ).append( "\" " ); + } + + arguments.append( StringUtils.clean( buildDefinition.getGoals() ) ); Map environments = getEnvironments( buildDefinition ); String m1Home = environments.get( getInstallationService().getEnvVar( InstallationService.MAVEN1_TYPE ) ); @@ -91,7 +102,7 @@ setResolveExecutable( false ); } - return executeShellCommand( project, executable, arguments, buildOutput, environments ); + return executeShellCommand( project, executable, arguments.toString(), buildOutput, environments ); } protected Map getEnvironments( BuildDefinition buildDefinition ) Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java?view=diff&rev=564614&r1=564613&r2=564614 ============================================================================== --- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java (original) +++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java Fri Aug 10 07:58:57 2007 @@ -51,11 +51,13 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.Collections; +import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Properties; /** * @author Trygve Laugstøl @@ -106,17 +108,27 @@ String executable = getInstallationService().getExecutorConfigurator( InstallationService.MAVEN2_TYPE ) .getExecutable(); - String arguments = ""; + StringBuffer arguments = new StringBuffer(); String buildFile = StringUtils.clean( buildDefinition.getBuildFile() ); if ( !StringUtils.isEmpty( buildFile ) && !"pom.xml".equals( buildFile ) ) { - arguments = "-f " + buildFile + " "; + arguments.append( "-f " ).append( buildFile ).append( " " ); } - arguments += - StringUtils.clean( buildDefinition.getArguments() ) + " " + StringUtils.clean( buildDefinition.getGoals() ); + arguments.append( StringUtils.clean( buildDefinition.getArguments() ) ).append( " " ); + + Properties props = getContinuumSystemProperties( project ); + for ( Enumeration itr = props.propertyNames(); itr.hasMoreElements(); ) + { + String name = (String) itr.nextElement(); + String value = props.getProperty( name ); + arguments.append( "\"-D" ).append( name ).append( "=" ).append( value ).append( "\" " ); + } + + arguments.append( StringUtils.clean( buildDefinition.getGoals() ) ); + Map environments = getEnvironments( buildDefinition ); String m2Home = environments.get( getInstallationService().getEnvVar( InstallationService.MAVEN2_TYPE ) ); if ( StringUtils.isNotEmpty( m2Home ) ) @@ -125,7 +137,7 @@ setResolveExecutable( false ); } - return executeShellCommand( project, executable, arguments, buildOutput, environments ); + return executeShellCommand( project, executable, arguments.toString(), buildOutput, environments ); } public void updateProjectFromCheckOut( File workingDirectory, Project project, BuildDefinition buildDefinition )