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() );
}
}
}