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&oslash;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&oslash;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&oslash;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&oslash;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


Reply via email to