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 2008/12/12 13:59:35 UTC

svn commit: r725990 - in /continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed: executor/DistributedBuildProjectTaskExecutor.java manager/DefaultDistributedBuildManager.java

Author: ctan
Date: Fri Dec 12 04:59:35 2008
New Revision: 725990

URL: http://svn.apache.org/viewvc?rev=725990&view=rev
Log:
- fixed remove build agent task queue executor
- add call to cancelBuild() method of slave agent

Modified:
    continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
    continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java

Modified: continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java?rev=725990&r1=725989&r2=725990&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java Fri Dec 12 04:59:35 2008
@@ -89,12 +89,13 @@
                                                         prepareBuildTask.getScmRootAddress() );
 
             startTime = System.currentTimeMillis();
-            if ( client.buildProjects( buildContext ) )
-            {
-                scmRoot.setOldState( scmRoot.getState() );
-                scmRoot.setState( ContinuumProjectState.UPDATING );
-                projectScmRootDao.updateProjectScmRoot( scmRoot );
-            }
+
+            scmRoot.setOldState( scmRoot.getState() );
+            scmRoot.setState( ContinuumProjectState.UPDATING );
+            projectScmRootDao.updateProjectScmRoot( scmRoot );
+
+            client.buildProjects( buildContext );
+
             endTime = System.currentTimeMillis();
         }
         catch ( MalformedURLException e )
@@ -235,7 +236,7 @@
         }
         catch ( ContinuumStoreException e )
         {
-            throw new TaskExecutionException( "" );
+            throw new TaskExecutionException( "Error while creating result", e );
         }
     }
 }

Modified: continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java?rev=725990&r1=725989&r2=725990&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java Fri Dec 12 04:59:35 2008
@@ -32,6 +32,7 @@
 
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.context.Context;
 import org.codehaus.plexus.context.ContextException;
@@ -186,11 +187,16 @@
         try
         {
             executor.stop();
+            container.release( executor );
         }
         catch ( StoppingException e )
         {
             throw new ContinuumException( "Error while stopping task queue executor", e );
         }
+        catch ( ComponentLifecycleException e )
+        {
+            throw new ContinuumException( "Error while releasing task queue executor from container", e );
+        }
 
         taskQueueExecutors.remove( buildAgentUrl );
     }
@@ -226,6 +232,7 @@
     }
 
     public void cancelDistributedBuild( String buildAgentUrl, int projectGroupId, String scmRootAddress )
+        throws ContinuumException
     {
         ThreadedDistributedBuildTaskQueueExecutor taskQueueExecutor = taskQueueExecutors.get( buildAgentUrl );
 
@@ -243,6 +250,17 @@
                         log.info( "cancelling task for project group " + projectGroupId + 
                                   " with scm root address " + scmRootAddress );
                         taskQueueExecutor.cancelTask( currentTask );
+
+                        try
+                        {
+                            ProxySlaveAgentTransportService client = new ProxySlaveAgentTransportService( new URL( buildAgentUrl ) );
+                            client.cancelBuild();
+                        }
+                        catch ( Exception e )
+                        {
+                            log.error( "Error while cancelling build in build agent '" + buildAgentUrl + "'" );
+                            throw new ContinuumException( "Error while cancelling build in build agent '" + buildAgentUrl + "'", e );
+                        }
                     }
                     else
                     {