You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by jz...@apache.org on 2010/05/22 09:30:45 UTC

svn commit: r947263 - in /continuum/trunk: continuum-api/src/main/java/org/apache/continuum/utils/build/ continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ continuum-buildagent/continuum-buildagent-core/src/ma...

Author: jzurbano
Date: Sat May 22 07:30:44 2010
New Revision: 947263

URL: http://svn.apache.org/viewvc?rev=947263&view=rev
Log:
[CONTINUUM-2503] 'Triggered by' should not be blank when it's a scheduled build
* refactored BuildTrigger; renamed "username" to "triggeredBy"
* set schedule name for "triggeredBy" field during scheduled builds
* added unit tests to check the username/schedule name is set in context
* updated documentation


Modified:
    continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/build/BuildTrigger.java
    continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
    continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java
    continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
    continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
    continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java
    continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java
    continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/build_results.apt
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java

Modified: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/build/BuildTrigger.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/build/BuildTrigger.java?rev=947263&r1=947262&r2=947263&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/build/BuildTrigger.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/utils/build/BuildTrigger.java Sat May 22 07:30:44 2010
@@ -28,22 +28,22 @@ public class BuildTrigger
 {
     private int trigger;
     
-    private String username;
+    private String triggeredBy;
     
     public BuildTrigger( int trigger )
     {
         this.trigger = trigger;
     }
     
-    public BuildTrigger( String username )
+    public BuildTrigger( String triggeredBy )
     {
-        this.username = username;
+        this.triggeredBy = triggeredBy;
     }
     
-    public BuildTrigger( int trigger, String username )
+    public BuildTrigger( int trigger, String triggeredBy )
     {
         this.trigger = trigger;
-        this.username = username;
+        this.triggeredBy = triggeredBy;
     }
     
     public void setTrigger( int trigger )
@@ -56,14 +56,14 @@ public class BuildTrigger
         return this.trigger;
     }
     
-    public void setUsername( String username )
+    public void setTriggeredBy( String triggeredBy )
     {
-        this.username = username;
+        this.triggeredBy = triggeredBy;
     }
     
-    public String getUsername()
+    public String getTriggeredBy()
     {
-        return this.username;
+        return this.triggeredBy;
     }
 }
 

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java?rev=947263&r1=947262&r2=947263&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java Sat May 22 07:30:44 2010
@@ -614,7 +614,7 @@ public class ContinuumBuildAgentServiceI
                 map.put( ContinuumBuildAgentUtil.KEY_SCM_ROOT_ID, new Integer( task.getScmRootId() ) );
                 map.put( ContinuumBuildAgentUtil.KEY_SCM_ROOT_ADDRESS, task.getScmRootAddress() );
                 map.put( ContinuumBuildAgentUtil.KEY_TRIGGER, task.getBuildTrigger().getTrigger() );
-                map.put( ContinuumBuildAgentUtil.KEY_USERNAME, task.getBuildTrigger().getUsername() );
+                map.put( ContinuumBuildAgentUtil.KEY_USERNAME, task.getBuildTrigger().getTriggeredBy() );
 
                 projects.add( map );
             }
@@ -670,7 +670,7 @@ public class ContinuumBuildAgentServiceI
                 map.put( ContinuumBuildAgentUtil.KEY_PROJECT_ID, new Integer( task.getProjectId() ) );
                 map.put( ContinuumBuildAgentUtil.KEY_BUILD_DEFINITION_ID, new Integer( task.getBuildDefinitionId() ) );
                 map.put( ContinuumBuildAgentUtil.KEY_TRIGGER, task.getBuildTrigger().getTrigger() );
-                map.put( ContinuumBuildAgentUtil.KEY_USERNAME, task.getBuildTrigger().getUsername() );
+                map.put( ContinuumBuildAgentUtil.KEY_USERNAME, task.getBuildTrigger().getTriggeredBy() );
                 map.put( ContinuumBuildAgentUtil.KEY_PROJECT_GROUP_ID, new Integer( task.getProjectGroupId() ) );
                 map.put( ContinuumBuildAgentUtil.KEY_BUILD_DEFINITION_LABEL, task.getBuildDefinitionLabel() );
 
@@ -701,7 +701,7 @@ public class ContinuumBuildAgentServiceI
                 project.put( ContinuumBuildAgentUtil.KEY_SCM_ROOT_ID, new Integer( task.getScmRootId() ) );
                 project.put( ContinuumBuildAgentUtil.KEY_SCM_ROOT_ADDRESS, task.getScmRootAddress() );
                 project.put( ContinuumBuildAgentUtil.KEY_TRIGGER, task.getBuildTrigger().getTrigger() );
-                project.put( ContinuumBuildAgentUtil.KEY_USERNAME, task.getBuildTrigger().getUsername() );
+                project.put( ContinuumBuildAgentUtil.KEY_USERNAME, task.getBuildTrigger().getTriggeredBy() );
             }
 
             return project;
@@ -757,7 +757,7 @@ public class ContinuumBuildAgentServiceI
                 project.put( ContinuumBuildAgentUtil.KEY_PROJECT_ID, new Integer( task.getProjectId() ) );
                 project.put( ContinuumBuildAgentUtil.KEY_BUILD_DEFINITION_ID, new Integer( task.getBuildDefinitionId() ) );
                 project.put( ContinuumBuildAgentUtil.KEY_TRIGGER, task.getBuildTrigger().getTrigger() );
-                project.put( ContinuumBuildAgentUtil.KEY_USERNAME, task.getBuildTrigger().getUsername() );
+                project.put( ContinuumBuildAgentUtil.KEY_USERNAME, task.getBuildTrigger().getTriggeredBy() );
                 project.put( ContinuumBuildAgentUtil.KEY_PROJECT_GROUP_ID, new Integer( task.getProjectGroupId() ) );
                 project.put( ContinuumBuildAgentUtil.KEY_BUILD_DEFINITION_LABEL, task.getBuildDefinitionLabel() );
             }

Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java?rev=947263&r1=947262&r2=947263&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java Sat May 22 07:30:44 2010
@@ -361,7 +361,7 @@ public class ContinuumBuildAgentUtil
     
     public static String getUsername( Map<String, Object> context )
     {
-         return getString( context, KEY_USERNAME, "" );
+         return getString( context, KEY_USERNAME, "scheduled" );
     }
     
     public static BuildTrigger getBuildTrigger( Map<String, Object> context )

Modified: continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java?rev=947263&r1=947262&r2=947263&view=diff
==============================================================================
--- continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java (original)
+++ continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java Sat May 22 07:30:44 2010
@@ -229,7 +229,16 @@ public class DistributedBuildProjectTask
                     context.put( ContinuumBuildConstant.KEY_ARGUMENTS, buildDef.getArguments() );
                 }
                 context.put( ContinuumBuildConstant.KEY_TRIGGER, buildTrigger.getTrigger() );
-                context.put( ContinuumBuildConstant.KEY_USERNAME, buildTrigger.getUsername() );
+                
+                if ( buildTrigger.getTrigger() == ContinuumProjectState.TRIGGER_FORCED )
+                {
+                    context.put( ContinuumBuildConstant.KEY_USERNAME, buildTrigger.getTriggeredBy() );
+                }
+                else
+                {
+                    context.put( ContinuumBuildConstant.KEY_USERNAME, buildDef.getSchedule().getName() );
+                }
+                
                 context.put( ContinuumBuildConstant.KEY_BUILD_FRESH, buildDef.isBuildFresh() );
                 context.put( ContinuumBuildConstant.KEY_ALWAYS_BUILD, buildDef.isAlwaysBuild() );
                 context.put( ContinuumBuildConstant.KEY_OLD_SCM_CHANGES,
@@ -283,7 +292,7 @@ public class DistributedBuildProjectTask
                         buildResult.setError( error );
                         buildResult.setState( ContinuumProjectState.ERROR );
                         buildResult.setTrigger( task.getBuildTrigger().getTrigger() );
-                        buildResult.setUsername( task.getBuildTrigger().getUsername() );
+                        buildResult.setUsername( task.getBuildTrigger().getTriggeredBy() );
                         buildResult.setStartTime( startTime );
                         buildResult.setEndTime( endTime );
 

Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java?rev=947263&r1=947262&r2=947263&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java Sat May 22 07:30:44 2010
@@ -337,8 +337,6 @@ public class DefaultBuildController
 
         context.setStartTime( System.currentTimeMillis() );
 
-        context.setBuildTrigger( buildTrigger );
-        
         Map actionContext = context.getActionContext();
 
         try
@@ -348,6 +346,15 @@ public class DefaultBuildController
             context.setProject( project );
 
             BuildDefinition buildDefinition = buildDefinitionDao.getBuildDefinition( buildDefinitionId );
+            
+            BuildTrigger newBuildTrigger = buildTrigger;
+            
+            if ( newBuildTrigger.getTrigger() == ContinuumProjectState.TRIGGER_SCHEDULED )
+            {
+                newBuildTrigger.setTriggeredBy( buildDefinition.getSchedule().getName() );
+            }
+            
+            context.setBuildTrigger( newBuildTrigger );
 
             context.setBuildDefinition( buildDefinition );
 
@@ -733,7 +740,7 @@ public class DefaultBuildController
 
         build.setTrigger( context.getBuildTrigger().getTrigger() );
         
-        build.setUsername( context.getBuildTrigger().getUsername() );
+        build.setUsername( context.getBuildTrigger().getTriggeredBy() );
 
         build.setStartTime( context.getStartTime() );
 

Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java?rev=947263&r1=947262&r2=947263&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java Sat May 22 07:30:44 2010
@@ -108,7 +108,7 @@ public class ExecuteBuilderContinuumActi
 
         buildResult.setTrigger( buildTrigger.getTrigger() );
         
-        buildResult.setUsername( buildTrigger.getUsername() );
+        buildResult.setUsername( buildTrigger.getTriggeredBy() );
 
         buildResult.setScmResult( scmResult );
 

Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java?rev=947263&r1=947262&r2=947263&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java Sat May 22 07:30:44 2010
@@ -30,6 +30,7 @@ import org.apache.maven.continuum.model.
 import org.apache.maven.continuum.model.project.BuildResult;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectDependency;
+import org.apache.maven.continuum.model.project.Schedule;
 import org.apache.maven.continuum.model.scm.ScmResult;
 import org.apache.maven.continuum.project.ContinuumProjectState;
 
@@ -45,7 +46,11 @@ public class DefaultBuildControllerTest
     extends AbstractContinuumTest
 {
     private DefaultBuildController controller;
-
+    
+    private static String FORCED_BUILD_USER = "TestUsername";
+    
+    private static String SCHEDULE_NAME = "TEST_SCHEDULE";
+    
     int projectId1;
 
     int projectId2;
@@ -121,23 +126,33 @@ public class DefaultBuildControllerTest
     private BuildDefinition createBuildDefinition()
     {
         BuildDefinition builddef = new BuildDefinition();
+        Schedule schedule = new Schedule();
+        schedule.setName( SCHEDULE_NAME );
+        builddef.setSchedule( schedule );
         builddef.setBuildFile( "pom.xml" );
         builddef.setGoals( "clean" );
         builddef.setDefaultForProject( true );
         return builddef;
     }
 
-    private BuildContext getContext()
+    private BuildContext getScheduledBuildContext()
+        throws Exception
+    {
+        return controller.initializeBuildContext( projectId2, buildDefinitionId2,
+                          new BuildTrigger( ContinuumProjectState.TRIGGER_SCHEDULED ), new ScmResult() );
+    }
+
+    private BuildContext getForcedBuildContext()
         throws Exception
     {
         return controller.initializeBuildContext( projectId2, buildDefinitionId2,
-                          new BuildTrigger( ContinuumProjectState.TRIGGER_SCHEDULED, "" ), new ScmResult() );
+                          new BuildTrigger( ContinuumProjectState.TRIGGER_FORCED, FORCED_BUILD_USER ), new ScmResult() );
     }
 
     private BuildContext getContext( int hourOfLastExecution )
         throws Exception
     {
-        BuildContext context = getContext();
+        BuildContext context = getScheduledBuildContext();
         BuildResult oldBuildResult = new BuildResult();
         oldBuildResult.setEndTime( Calendar.getInstance().getTimeInMillis() + ( hourOfLastExecution * 3600000 ) );
         context.setOldBuildResult( oldBuildResult );
@@ -172,7 +187,7 @@ public class DefaultBuildControllerTest
         p2.setState( ContinuumProjectState.NEW );
         getProjectDao().updateProject( p2 );
 
-        BuildContext context = getContext();
+        BuildContext context = getScheduledBuildContext();
         controller.checkProjectDependencies( context );
         assertEquals( 0, context.getModifiedDependencies().size() );
         assertTrue( controller.shouldBuild( context ) );
@@ -181,7 +196,7 @@ public class DefaultBuildControllerTest
     public void testWithNewBuildDefinition()
         throws Exception
     {
-        BuildContext context = getContext();
+        BuildContext context = getScheduledBuildContext();
         assertNull( context.getOldBuildResult() );
         assertTrue( controller.shouldBuild( context ) );
     }
@@ -205,6 +220,33 @@ public class DefaultBuildControllerTest
         assertFalse( controller.shouldBuild( context ) );
     }
 
+    public void testForcedBuildTriggeredByField()
+        throws Exception
+    {
+        BuildContext context = getForcedBuildContext();
+        assertEquals( FORCED_BUILD_USER, context.getBuildTrigger().getTriggeredBy() );
+    }
+
+    public void testScheduledBuildTriggeredByField()
+        throws Exception
+    {
+        BuildContext context = getScheduledBuildContext();
+        assertEquals( SCHEDULE_NAME, context.getBuildTrigger().getTriggeredBy() );
+    }
+
+    public void testScheduledBuildTriggeredByField_UsernameProvided()
+        throws Exception
+    {
+        BuildTrigger buildTrigger = new BuildTrigger( ContinuumProjectState.TRIGGER_SCHEDULED, "test-user" );
+        
+        BuildContext context = controller.initializeBuildContext( projectId2, buildDefinitionId2,
+                                                                  buildTrigger, new ScmResult() );
+        
+        String contextTriggeredBy = context.getBuildTrigger().getTriggeredBy();
+        assertFalse( "test-user".equals( contextTriggeredBy ) );
+        assertEquals( SCHEDULE_NAME, contextTriggeredBy );
+    }
+
     private File getWorkingDirectory()
         throws Exception
     {

Modified: continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/build_results.apt
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/build_results.apt?rev=947263&r1=947262&r2=947263&view=diff
==============================================================================
--- continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/build_results.apt (original)
+++ continuum/trunk/continuum-docs/src/site/apt/user_guides/building_project/build_results.apt Sat May 22 07:30:44 2010
@@ -32,8 +32,8 @@ Build Results Management
 
 [../../images/build_result-1.png] Build Results page
 
-    The <<Triggered by>> field displays the username of the person who forced the build. 
-    However, this field is empty when the build is triggered by a schedule.
+    The <<Triggered by>> field displays the username of the person who forced the build,
+    or the name of the schedule if the build is triggered by a schedule.
 
     Or you can click on the name of the project that you want to delete build results from.
 

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java?rev=947263&r1=947262&r2=947263&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java Sat May 22 07:30:44 2010
@@ -74,7 +74,7 @@ public class BuildProjectAction
                 }
                 else
                 {
-                	getContinuum().buildProject( projectId, buildTrigger.getUsername() );
+                	getContinuum().buildProject( projectId, buildTrigger.getTriggeredBy() );
                 }
             }
             else
@@ -87,7 +87,7 @@ public class BuildProjectAction
                 {
                     //TODO: Check if this code is called, I don't think
                     //If it is, it should used the projectId
-                	getContinuum().buildProjects( buildTrigger.getUsername() );
+                	getContinuum().buildProjects( buildTrigger.getTriggeredBy() );
                 }
             }
         }