You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2007/01/10 16:33:07 UTC
svn commit: r494852 - in /maven/continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/notification/
continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/
continuum-core/src/main/java/org/apache/maven/continuum/core/...
Author: evenisse
Date: Wed Jan 10 07:33:05 2007
New Revision: 494852
URL: http://svn.apache.org/viewvc?view=rev&rev=494852
Log:
Put the build definition in the notification dispatcher context
Modified:
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcher.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java
maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcherTest.java
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcher.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcher.java?view=diff&rev=494852&r1=494851&r2=494852
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcher.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcher.java Wed Jan 10 07:33:05 2007
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.BuildResult;
import org.apache.maven.continuum.model.project.Project;
@@ -53,6 +54,8 @@
String CONTEXT_PROJECT = "project";
+ String CONTEXT_BUILD_DEFINITION = "buildDefinition";
+
String CONTEXT_PROJECT_NOTIFIER = "projectNotifier";
String CONTEXT_BUILD_RESULT = "result";
@@ -63,15 +66,15 @@
//
// ----------------------------------------------------------------------
- void buildStarted( Project project );
+ void buildStarted( Project project, BuildDefinition buildDefinition );
- void checkoutStarted( Project project );
+ void checkoutStarted( Project project, BuildDefinition buildDefinition );
- void checkoutComplete( Project project );
+ void checkoutComplete( Project project, BuildDefinition buildDefinition );
- void runningGoals( Project project, BuildResult build );
+ void runningGoals( Project project, BuildDefinition buildDefinition, BuildResult buildResult );
- void goalsCompleted( Project project, BuildResult build );
+ void goalsCompleted( Project project, BuildDefinition buildDefinition, BuildResult buildResult );
- void buildComplete( Project project, BuildResult build );
+ void buildComplete( Project project, BuildDefinition buildDefinition, BuildResult buildResult );
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java?view=diff&rev=494852&r1=494851&r2=494852
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java Wed Jan 10 07:33:05 2007
@@ -141,7 +141,7 @@
//just log the error but don't stop the build from progressing in order not to suppress any build result messages there
getLogger().error( "Error executing action update-project-from-working-directory '", e );
}
-
+
performAction( "execute-builder", context );
performAction( "deploy-artifact", context );
@@ -216,7 +216,7 @@
}
finally
{
- notifierDispatcher.buildComplete( project, context.getBuildResult() );
+ notifierDispatcher.buildComplete( project, context.getBuildDefinition(), context.getBuildResult() );
}
}
@@ -293,7 +293,7 @@
throw new TaskExecutionException( "Error persisting project", e );
}
- notifierDispatcher.buildStarted( project );
+ notifierDispatcher.buildStarted( project, context.getBuildDefinition() );
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java?view=diff&rev=494852&r1=494851&r2=494852
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java Wed Jan 10 07:33:05 2007
@@ -41,10 +41,8 @@
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
- *
- * @plexus.component
- * role="org.codehaus.plexus.action.Action"
- * role-hint="execute-builder"
+ * @plexus.component role="org.codehaus.plexus.action.Action"
+ * role-hint="execute-builder"
*/
public class ExecuteBuilderContinuumAction
extends AbstractContinuumAction
@@ -97,9 +95,8 @@
// ----------------------------------------------------------------------
if ( !isFirstRun && project.getOldState() != ContinuumProjectState.NEW &&
- project.getOldState() != ContinuumProjectState.CHECKEDOUT &&
- scmResult.getChanges().size() == 0 && !hasUpdatedDependencies &&
- trigger != ContinuumProjectState.TRIGGER_FORCED && !isNew( project ) )
+ project.getOldState() != ContinuumProjectState.CHECKEDOUT && scmResult.getChanges().size() == 0 &&
+ !hasUpdatedDependencies && trigger != ContinuumProjectState.TRIGGER_FORCED && !isNew( project ) )
{
getLogger().info( "No files updated, not building. Project id '" + project.getId() + "'." );
@@ -113,69 +110,70 @@
}
// ----------------------------------------------------------------------
- // Make the build
+ // Make the buildResult
// ----------------------------------------------------------------------
- BuildResult build = new BuildResult();
+ BuildResult buildResult = new BuildResult();
- build.setStartTime( new Date().getTime() );
+ buildResult.setStartTime( new Date().getTime() );
- build.setState( ContinuumProjectState.BUILDING );
+ buildResult.setState( ContinuumProjectState.BUILDING );
- build.setTrigger( trigger );
+ buildResult.setTrigger( trigger );
- build.setScmResult( scmResult );
-
- build.setModifiedDependencies( updatedDependencies );
+ buildResult.setScmResult( scmResult );
- store.addBuildResult( project, build );
+ buildResult.setModifiedDependencies( updatedDependencies );
- context.put( KEY_BUILD_ID, Integer.toString( build.getId() ) );
+ store.addBuildResult( project, buildResult );
- build = store.getBuildResult( build.getId() );
+ context.put( KEY_BUILD_ID, Integer.toString( buildResult.getId() ) );
+
+ buildResult = store.getBuildResult( buildResult.getId() );
try
{
- notifier.runningGoals( project, build );
+ notifier.runningGoals( project, buildDefinition, buildResult );
- File buildOutputFile = configurationService.getBuildOutputFile( build.getId(), project.getId() );
+ File buildOutputFile = configurationService.getBuildOutputFile( buildResult.getId(), project.getId() );
ContinuumBuildExecutionResult result = buildExecutor.build( project, buildDefinition, buildOutputFile );
- build.setState( result.getExitCode() == 0 ? ContinuumProjectState.OK : ContinuumProjectState.FAILED );
+ buildResult.setState( result.getExitCode() == 0 ? ContinuumProjectState.OK : ContinuumProjectState.FAILED );
- build.setExitCode( result.getExitCode() );
+ buildResult.setExitCode( result.getExitCode() );
}
catch ( Throwable e )
{
- getLogger().error( "Error running build", e );
+ getLogger().error( "Error running buildResult", e );
- build.setState( ContinuumProjectState.ERROR );
+ buildResult.setState( ContinuumProjectState.ERROR );
- build.setError( ContinuumUtils.throwableToString( e ) );
+ buildResult.setError( ContinuumUtils.throwableToString( e ) );
}
finally
{
- build.setEndTime( new Date().getTime() );
+ buildResult.setEndTime( new Date().getTime() );
- if ( build.getState() == ContinuumProjectState.OK )
+ if ( buildResult.getState() == ContinuumProjectState.OK )
{
project.setBuildNumber( project.getBuildNumber() + 1 );
}
- project.setLatestBuildId( build.getId() );
+ project.setLatestBuildId( buildResult.getId() );
- buildDefinition.setLatestBuildId( build.getId() );
+ buildDefinition.setLatestBuildId( buildResult.getId() );
- build.setBuildNumber( project.getBuildNumber() );
+ buildResult.setBuildNumber( project.getBuildNumber() );
- if ( build.getState() != ContinuumProjectState.OK && build.getState() != ContinuumProjectState.FAILED &&
- build.getState() != ContinuumProjectState.ERROR )
+ if ( buildResult.getState() != ContinuumProjectState.OK &&
+ buildResult.getState() != ContinuumProjectState.FAILED &&
+ buildResult.getState() != ContinuumProjectState.ERROR )
{
- build.setState( ContinuumProjectState.ERROR );
+ buildResult.setState( ContinuumProjectState.ERROR );
}
- project.setState( build.getState() );
+ project.setState( buildResult.getState() );
// ----------------------------------------------------------------------
// Set the test result
@@ -184,7 +182,7 @@
try
{
TestResult testResult = buildExecutor.getTestResults( project );
- build.setTestResult( testResult );
+ buildResult.setTestResult( testResult );
}
catch ( Throwable t )
{
@@ -192,18 +190,18 @@
}
// ----------------------------------------------------------------------
- // Copy over the build result
+ // Copy over the buildResult result
// ----------------------------------------------------------------------
- store.updateBuildResult( build );
+ store.updateBuildResult( buildResult );
- build = store.getBuildResult( build.getId() );
+ buildResult = store.getBuildResult( buildResult.getId() );
store.storeBuildDefinition( buildDefinition );
store.updateProject( project );
- notifier.goalsCompleted( project, build );
+ notifier.goalsCompleted( project, buildDefinition, buildResult );
}
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java?view=diff&rev=494852&r1=494851&r2=494852
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java Wed Jan 10 07:33:05 2007
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.scm.ScmResult;
import org.apache.maven.continuum.notification.ContinuumNotificationDispatcher;
@@ -31,11 +32,8 @@
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
- *
- * @plexus.component
- * role="org.codehaus.plexus.action.Action"
- * role-hint="update-working-directory-from-scm"
-
+ * @plexus.component role="org.codehaus.plexus.action.Action"
+ * role-hint="update-working-directory-from-scm"
*/
public class UpdateWorkingDirectoryFromScmContinuumAction
extends AbstractContinuumAction
@@ -60,6 +58,8 @@
{
Project project = getProject( context );
+ BuildDefinition buildDefinition = getBuildDefinition( context );
+
int state = project.getState();
project.setState( ContinuumProjectState.UPDATING );
@@ -70,7 +70,7 @@
try
{
- notifier.checkoutStarted( project );
+ notifier.checkoutStarted( project, buildDefinition );
scmResult = scm.updateProject( project );
@@ -82,7 +82,7 @@
store.updateProject( project );
- notifier.checkoutComplete( project );
+ notifier.checkoutComplete( project, buildDefinition );
}
}
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java?view=diff&rev=494852&r1=494851&r2=494852
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java Wed Jan 10 07:33:05 2007
@@ -21,10 +21,11 @@
import org.apache.maven.continuum.configuration.ConfigurationException;
import org.apache.maven.continuum.configuration.ConfigurationService;
+import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.BuildResult;
import org.apache.maven.continuum.model.project.Project;
-import org.apache.maven.continuum.model.project.ProjectNotifier;
import org.apache.maven.continuum.model.project.ProjectGroup;
+import org.apache.maven.continuum.model.project.ProjectNotifier;
import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.codehaus.plexus.logging.AbstractLogEnabled;
@@ -41,10 +42,8 @@
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
- *
- * @plexus.component
- * role="org.apache.maven.continuum.notification.ContinuumNotificationDispatcher"
- * role-hint="default"
+ * @plexus.component role="org.apache.maven.continuum.notification.ContinuumNotificationDispatcher"
+ * role-hint="default"
*/
public class DefaultContinuumNotificationDispatcher
extends AbstractLogEnabled
@@ -74,41 +73,42 @@
// ContinuumNotificationDispatcher Implementation
// ----------------------------------------------------------------------
- public void buildStarted( Project project )
+ public void buildStarted( Project project, BuildDefinition buildDefinition )
{
- sendNotification( MESSAGE_ID_BUILD_STARTED, project, null );
+ sendNotification( MESSAGE_ID_BUILD_STARTED, project, buildDefinition, null );
}
- public void checkoutStarted( Project project )
+ public void checkoutStarted( Project project, BuildDefinition buildDefinition )
{
- sendNotification( MESSAGE_ID_CHECKOUT_STARTED, project, null );
+ sendNotification( MESSAGE_ID_CHECKOUT_STARTED, project, buildDefinition, null );
}
- public void checkoutComplete( Project project )
+ public void checkoutComplete( Project project, BuildDefinition buildDefinition )
{
- sendNotification( MESSAGE_ID_CHECKOUT_COMPLETE, project, null );
+ sendNotification( MESSAGE_ID_CHECKOUT_COMPLETE, project, buildDefinition, null );
}
- public void runningGoals( Project project, BuildResult build )
+ public void runningGoals( Project project, BuildDefinition buildDefinition, BuildResult buildResult )
{
- sendNotification( MESSAGE_ID_RUNNING_GOALS, project, build );
+ sendNotification( MESSAGE_ID_RUNNING_GOALS, project, buildDefinition, buildResult );
}
- public void goalsCompleted( Project project, BuildResult build )
+ public void goalsCompleted( Project project, BuildDefinition buildDefinition, BuildResult buildResult )
{
- sendNotification( MESSAGE_ID_GOALS_COMPLETED, project, build );
+ sendNotification( MESSAGE_ID_GOALS_COMPLETED, project, buildDefinition, buildResult );
}
- public void buildComplete( Project project, BuildResult build )
+ public void buildComplete( Project project, BuildDefinition buildDefinition, BuildResult buildResult )
{
- sendNotification( MESSAGE_ID_BUILD_COMPLETE, project, build );
+ sendNotification( MESSAGE_ID_BUILD_COMPLETE, project, buildDefinition, buildResult );
}
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
- private void sendNotification( String messageId, Project project, BuildResult build )
+ private void sendNotification( String messageId, Project project, BuildDefinition buildDefinition,
+ BuildResult buildResult )
{
Map context = new HashMap();
@@ -127,21 +127,21 @@
project = store.getProjectWithAllDetails( project.getId() );
context.put( CONTEXT_PROJECT, project );
+ context.put( CONTEXT_BUILD_DEFINITION, buildDefinition );
- if ( build != null )
+ if ( buildResult != null )
{
- context.put( CONTEXT_BUILD, build );
+ context.put( CONTEXT_BUILD, buildResult );
- if ( build.getEndTime() != 0 )
+ if ( buildResult.getEndTime() != 0 )
{
context.put( CONTEXT_BUILD_OUTPUT,
- configurationService.getBuildOutput( build.getId(), project.getId() ) );
+ configurationService.getBuildOutput( buildResult.getId(), project.getId() ) );
}
- context.put( CONTEXT_UPDATE_SCM_RESULT, build.getScmResult() );
+ context.put( CONTEXT_UPDATE_SCM_RESULT, buildResult.getScmResult() );
}
-
ProjectGroup projectGroup = store.getProjectGroupWithBuildDetails( project.getProjectGroup().getId() );
// perform the project lvl notifications
@@ -157,7 +157,7 @@
{
sendNotification( messageId, (ProjectNotifier) i.next(), context );
}
- }
+ }
}
catch ( ContinuumStoreException e )
{
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcherTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcherTest.java?view=diff&rev=494852&r1=494851&r2=494852
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcherTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcherTest.java Wed Jan 10 07:33:05 2007
@@ -56,6 +56,6 @@
build = store.getBuildResult( build.getId() );
- notificationDispatcher.buildComplete( project, build );
+ notificationDispatcher.buildComplete( project, null, build );
}
}