You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2010/01/08 04:42:37 UTC
svn commit: r897084 - in
/continuum/branches/continuum-1.3.x/continuum-webapp/src:
main/java/org/apache/maven/continuum/web/action/
test/java/org/apache/maven/continuum/web/action/
test/java/org/apache/maven/continuum/web/action/stub/
Author: ctan
Date: Fri Jan 8 03:41:00 2010
New Revision: 897084
URL: http://svn.apache.org/viewvc?rev=897084&view=rev
Log:
[CONTINUUM-2394] fixed build result link of project currently building in a distributed build mode
Added:
continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/SummaryActionTest.java
continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/stub/SummaryActionStub.java
Modified:
continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java
continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java
continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/BuildResultActionTest.java
Modified: continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java?rev=897084&r1=897083&r2=897084&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java Fri Jan 8 03:41:00 2010
@@ -93,7 +93,14 @@
// check if there are surefire results to display
project = getContinuum().getProject( getProjectId() );
- buildResult = getContinuum().getBuildResult( getBuildId() );
+ try
+ {
+ buildResult = getContinuum().getBuildResult( getBuildId() );
+ }
+ catch ( ContinuumException e )
+ {
+ buildResult = null;
+ }
ConfigurationService configuration = getContinuum().getConfiguration();
Modified: continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java?rev=897084&r1=897083&r2=897084&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/SummaryAction.java Fri Jan 8 03:41:00 2010
@@ -29,6 +29,7 @@
import org.apache.continuum.buildmanager.BuildManagerException;
import org.apache.continuum.buildmanager.BuildsManager;
import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.configuration.ConfigurationService;
import org.apache.maven.continuum.model.project.BuildResult;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.project.ContinuumProjectState;
@@ -156,6 +157,14 @@
model.setLastBuildDateTime( latestBuild.getEndTime() );
model.setLastBuildDuration( latestBuild.getDurationTime() );
}
+
+ ConfigurationService configuration = getContinuum().getConfiguration();
+
+ if ( configuration.isDistributedBuildEnabled() &&
+ project.getState() == ContinuumProjectState.BUILDING )
+ {
+ model.setLatestBuildId( 0 );
+ }
}
summary.add( model );
@@ -230,4 +239,10 @@
{
this.groupSummary = groupSummary;
}
+
+ // test
+ public void setParallelBuildsManager( BuildsManager parallelBuildsManager )
+ {
+ this.parallelBuildsManager = parallelBuildsManager;
+ }
}
Modified: continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/BuildResultActionTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/BuildResultActionTest.java?rev=897084&r1=897083&r2=897084&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/BuildResultActionTest.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/BuildResultActionTest.java Fri Jan 8 03:41:00 2010
@@ -57,6 +57,7 @@
buildsManager.expects( once() ).method( "getCurrentBuilds" ).will( returnValue( new HashMap<String, BuildProjectTask>() ) );
action.execute();
+ continuum.verify();
}
public void testViewCurrentBuildInDistributedBuildAgent()
@@ -71,6 +72,7 @@
distributedBuildManager.expects( once() ).method( "getBuildResult" ).will( returnValue( new HashMap<String, Object>() ) );
action.execute();
+ continuum.verify();
}
private Project createProject( String name )
Added: continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/SummaryActionTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/SummaryActionTest.java?rev=897084&view=auto
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/SummaryActionTest.java (added)
+++ continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/SummaryActionTest.java Fri Jan 8 03:41:00 2010
@@ -0,0 +1,172 @@
+package org.apache.maven.continuum.web.action;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.continuum.buildmanager.BuildsManager;
+import org.apache.maven.continuum.Continuum;
+import org.apache.maven.continuum.configuration.ConfigurationService;
+import org.apache.maven.continuum.model.project.BuildResult;
+import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.project.ProjectGroup;
+import org.apache.maven.continuum.web.action.stub.SummaryActionStub;
+import org.apache.maven.continuum.web.model.ProjectSummary;
+import org.apache.maven.continuum.xmlrpc.project.ContinuumProjectState;
+import org.jmock.Mock;
+import org.jmock.MockObjectTestCase;
+
+public class SummaryActionTest
+ extends MockObjectTestCase
+{
+ private SummaryActionStub action;
+
+ private Mock continuum;
+
+ private Mock configurationService;
+
+ private Mock buildsManager;
+
+ protected void setUp()
+ {
+ action = new SummaryActionStub();
+
+ continuum = mock( Continuum.class );
+
+ configurationService = mock( ConfigurationService.class );
+
+ buildsManager = mock( BuildsManager.class );
+
+ action.setContinuum( (Continuum) continuum.proxy() );
+ action.setParallelBuildsManager( (BuildsManager ) buildsManager.proxy() );
+ }
+
+ public void testLatestBuildIdWhenCurrentlyBuildingInDistributedBuild()
+ throws Exception
+ {
+ Collection<Project> projectsInGroup = createProjectsInGroup( 1, ContinuumProjectState.BUILDING );
+ Map<Integer, BuildResult> buildResults = createBuildResults( 0, ContinuumProjectState.OK );
+ Map<Integer, BuildResult> buildResultsInSuccess = new HashMap<Integer, BuildResult>();
+
+ continuum.expects( once() ).method( "getProjectsInGroup" ).will( returnValue( projectsInGroup ) );
+ continuum.expects( once() ).method( "getLatestBuildResults" ).will( returnValue( buildResults ) );
+ continuum.expects( once() ).method( "getBuildResultsInSuccess" ).will( returnValue( buildResultsInSuccess ) );
+
+ buildsManager.expects( once() ).method( "isInAnyBuildQueue" ).will( returnValue( false ) );
+ buildsManager.expects( once() ).method( "isInPrepareBuildQueue").will( returnValue( false ) );
+ buildsManager.expects( once() ).method( "isInAnyCheckoutQueue" ).will( returnValue( false ) );
+
+ continuum.expects( once() ).method( "getConfiguration" ).will( returnValue( (ConfigurationService) configurationService.proxy() ) );
+ configurationService.expects( once() ).method( "isDistributedBuildEnabled" ).will( returnValue( true ) );
+
+ action.execute();
+ continuum.verify();
+
+ List<ProjectSummary> projects = action.getProjects();
+
+ assertNotNull( projects );
+ assertEquals( 1, projects.size() );
+
+ ProjectSummary summary = projects.get( 0 );
+ assertEquals( 0, summary.getLatestBuildId() );
+ }
+
+ public void testLatestBuildIdInDistributedBuild()
+ throws Exception
+ {
+ Collection<Project> projectsInGroup = createProjectsInGroup( 1, ContinuumProjectState.OK );
+ Map<Integer, BuildResult> buildResults = createBuildResults( 1, ContinuumProjectState.OK );
+ Map<Integer, BuildResult> buildResultsInSuccess = new HashMap<Integer, BuildResult>();
+
+ continuum.expects( once() ).method( "getProjectsInGroup" ).will( returnValue( projectsInGroup ) );
+ continuum.expects( once() ).method( "getLatestBuildResults" ).will( returnValue( buildResults ) );
+ continuum.expects( once() ).method( "getBuildResultsInSuccess" ).will( returnValue( buildResultsInSuccess ) );
+
+ buildsManager.expects( once() ).method( "isInAnyBuildQueue" ).will( returnValue( false ) );
+ buildsManager.expects( once() ).method( "isInPrepareBuildQueue").will( returnValue( false ) );
+ buildsManager.expects( once() ).method( "isInAnyCheckoutQueue" ).will( returnValue( false ) );
+
+ continuum.expects( once() ).method( "getConfiguration" ).will( returnValue( (ConfigurationService) configurationService.proxy() ) );
+ configurationService.expects( once() ).method( "isDistributedBuildEnabled" ).will( returnValue( true ) );
+
+ action.execute();
+ continuum.verify();
+
+ List<ProjectSummary> projects = action.getProjects();
+
+ assertNotNull( projects );
+ assertEquals( 1, projects.size() );
+
+ ProjectSummary summary = projects.get( 0 );
+ assertEquals( 1, summary.getLatestBuildId() );
+ }
+
+ public void testLatestBuildIdWhenCurrentlyBuilding()
+ throws Exception
+ {
+ Collection<Project> projectsInGroup = createProjectsInGroup( 1, ContinuumProjectState.BUILDING );
+ Map<Integer, BuildResult> buildResults = createBuildResults( 1, ContinuumProjectState.BUILDING );
+ Map<Integer, BuildResult> buildResultsInSuccess = new HashMap<Integer, BuildResult>();
+
+ continuum.expects( once() ).method( "getProjectsInGroup" ).will( returnValue( projectsInGroup ) );
+ continuum.expects( once() ).method( "getLatestBuildResults" ).will( returnValue( buildResults ) );
+ continuum.expects( once() ).method( "getBuildResultsInSuccess" ).will( returnValue( buildResultsInSuccess ) );
+
+ buildsManager.expects( once() ).method( "isInAnyBuildQueue" ).will( returnValue( false ) );
+ buildsManager.expects( once() ).method( "isInPrepareBuildQueue").will( returnValue( false ) );
+ buildsManager.expects( once() ).method( "isInAnyCheckoutQueue" ).will( returnValue( false ) );
+
+ continuum.expects( once() ).method( "getConfiguration" ).will( returnValue( (ConfigurationService) configurationService.proxy() ) );
+ configurationService.expects( once() ).method( "isDistributedBuildEnabled" ).will( returnValue( false ) );
+
+ action.execute();
+ continuum.verify();
+
+ List<ProjectSummary> projects = action.getProjects();
+
+ assertNotNull( projects );
+ assertEquals( 1, projects.size() );
+
+ ProjectSummary summary = projects.get( 0 );
+ assertEquals( 1, summary.getLatestBuildId() );
+ }
+
+ private Collection<Project> createProjectsInGroup( int projectId, int state )
+ {
+ Collection<Project> projectsInGroup = new ArrayList<Project>();
+
+ ProjectGroup group = new ProjectGroup();
+ group.setId( 1 );
+ group.setName( "test-group" );
+
+ Project project = new Project();
+ project.setId( projectId );
+ project.setName( "test-project" );
+ project.setVersion( "1.0" );
+ project.setBuildNumber( 1 );
+ project.setState( state );
+ project.setExecutorId( "maven2" );
+ project.setProjectGroup( group );
+
+ projectsInGroup.add( project );
+
+ return projectsInGroup;
+ }
+
+ private Map<Integer, BuildResult> createBuildResults( int projectId, int state )
+ {
+ Map<Integer, BuildResult> buildResults = new HashMap<Integer, BuildResult>();
+
+ BuildResult br = new BuildResult();
+ br.setId( 1 );
+ br.setStartTime( System.currentTimeMillis() );
+ br.setEndTime( System.currentTimeMillis() );
+ br.setState( state );
+
+ buildResults.put( projectId, br );
+
+ return buildResults;
+ }
+}
Added: continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/stub/SummaryActionStub.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/stub/SummaryActionStub.java?rev=897084&view=auto
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/stub/SummaryActionStub.java (added)
+++ continuum/branches/continuum-1.3.x/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/stub/SummaryActionStub.java Fri Jan 8 03:41:00 2010
@@ -0,0 +1,17 @@
+package org.apache.maven.continuum.web.action.stub;
+
+import org.apache.maven.continuum.web.action.SummaryAction;
+
+public class SummaryActionStub
+ extends SummaryAction
+{
+ public String getProjectGroupName()
+ {
+ return "test-group";
+ }
+
+ protected void checkViewProjectGroupAuthorization( String resource )
+ {
+ // skip authorization check
+ }
+}
Re: svn commit: r897084 - in /continuum/branches/continuum-1.3.x/continuum-webapp/src:
main/java/org/apache/maven/continuum/web/action/ test/java/org/apache/maven/continuum/web/action/
test/java/org/apache/maven/continuum/web/action/stub/
Posted by Marica Tan <ma...@gmail.com>.
Forgot the licenses. Thanks!
On Fri, Jan 8, 2010 at 1:26 PM, Brett Porter <br...@apache.org> wrote:
> On 08/01/2010, at 2:42 PM, ctan@apache.org wrote:
>
> > Author: ctan
> > Date: Fri Jan 8 03:41:00 2010
> > New Revision: 897084
> >
> > URL: http://svn.apache.org/viewvc?rev=897084&view=rev
> > Log:
> > [CONTINUUM-2394] fixed build result link of project currently building in
> a distributed build mode
> >
>
> Your new classes seem to be missing licenses. Should this be merged to
> trunk too or is it unique to 1.3.x?
>
> - Brett
Re: svn commit: r897084 - in /continuum/branches/continuum-1.3.x/continuum-webapp/src: main/java/org/apache/maven/continuum/web/action/ test/java/org/apache/maven/continuum/web/action/ test/java/org/apache/maven/continuum/web/action/stub/
Posted by Brett Porter <br...@apache.org>.
On 08/01/2010, at 2:42 PM, ctan@apache.org wrote:
> Author: ctan
> Date: Fri Jan 8 03:41:00 2010
> New Revision: 897084
>
> URL: http://svn.apache.org/viewvc?rev=897084&view=rev
> Log:
> [CONTINUUM-2394] fixed build result link of project currently building in a distributed build mode
>
Your new classes seem to be missing licenses. Should this be merged to trunk too or is it unique to 1.3.x?
- Brett
Re: svn commit: r897084 - in /continuum/branches/continuum-1.3.x/continuum-webapp/src:
main/java/org/apache/maven/continuum/web/action/ test/java/org/apache/maven/continuum/web/action/
test/java/org/apache/maven/continuum/web/action/stub/
Posted by Marica Tan <ma...@gmail.com>.
On Fri, Jan 8, 2010 at 1:28 PM, Brett Porter <br...@apache.org> wrote:
>
> On 08/01/2010, at 2:42 PM, ctan@apache.org wrote:
>
> > - buildResult = getContinuum().getBuildResult( getBuildId() );
> > + try
> > + {
> > + buildResult = getContinuum().getBuildResult( getBuildId() );
> > + }
> > + catch ( ContinuumException e )
> > + {
> > + buildResult = null;
> > + }
>
> Is there a need to log the exception or does it provide no value?
>
> No. The reason why I tried to catch the exception is so that I'll know if
the user is actually trying to view the current build result.
I think i'll change this.
> > +
> > + ConfigurationService configuration =
> getContinuum().getConfiguration();
> > +
> > + if ( configuration.isDistributedBuildEnabled() &&
> > + project.getState() ==
> ContinuumProjectState.BUILDING )
> > + {
> > + model.setLatestBuildId( 0 );
> > + }
>
> Why is this only 0'd on the distributed build scenario?
>
>
In a distributed build scenario, the latestBuild will point to a previous
build result because the current build result will be created after the
project finishes its build.
> - Brett
>
> --
> Brett Porter
> brett@apache.org
> http://brettporter.wordpress.com/
>
>
>
>
>
Re: svn commit: r897084 - in /continuum/branches/continuum-1.3.x/continuum-webapp/src: main/java/org/apache/maven/continuum/web/action/ test/java/org/apache/maven/continuum/web/action/ test/java/org/apache/maven/continuum/web/action/stub/
Posted by Brett Porter <br...@apache.org>.
On 08/01/2010, at 2:42 PM, ctan@apache.org wrote:
> - buildResult = getContinuum().getBuildResult( getBuildId() );
> + try
> + {
> + buildResult = getContinuum().getBuildResult( getBuildId() );
> + }
> + catch ( ContinuumException e )
> + {
> + buildResult = null;
> + }
Is there a need to log the exception or does it provide no value?
> +
> + ConfigurationService configuration = getContinuum().getConfiguration();
> +
> + if ( configuration.isDistributedBuildEnabled() &&
> + project.getState() == ContinuumProjectState.BUILDING )
> + {
> + model.setLatestBuildId( 0 );
> + }
Why is this only 0'd on the distributed build scenario?
- Brett
--
Brett Porter
brett@apache.org
http://brettporter.wordpress.com/