You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@continuum.apache.org by Marica Tan <ma...@gmail.com> on 2010/05/26 03:07:29 UTC

Re: 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/

Hi Jev,

Can you add a selenium test for this.

Thanks,
--
Marica

On Sat, May 22, 2010 at 3:30 PM, <jz...@apache.org> wrote:

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