I wonder if this could be expanded to include an alternate reference
with the SCM version number being used as a build identifier. While
this would suck with CVS, with P4 or SVN it would tend to better
identify the build, as continuum build numbers are local to the build
machine and can end up reset if you have to re-install.
That, or the ability to manually reset the current or base build number.
Christian.
On Aug 10, 2007, at 10:58 AM, [EMAIL PROTECTED] wrote:
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 <a href="mailto:[EMAIL PROTECTED]">Trygve
Laugstøl</a>
@@ -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 <a href="mailto:[EMAIL PROTECTED]">Trygve
Laugstøl</a>
@@ -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<String, String> 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<String, String> 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 <a href="mailto:[EMAIL PROTECTED]">Trygve
Laugstøl</a>
@@ -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<String, String> 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<String, String> 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 <a href="mailto:[EMAIL PROTECTED]">Trygve
Laugstøl</a>
@@ -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<String, String> 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 )
christian gruber + [EMAIL PROTECTED] + mob 410.900.0796 + mob2
416.998.6023
process coach and architect + ISRÁFÍL CONSULTING SERVICES