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 2009/01/06 08:33:55 UTC

svn commit: r731857 - in /continuum/branches/continuum-distributed-builds: continuum-builder/src/main/java/org/apache/continuum/builder/distributed/manager/ continuum-builder/src/main/java/org/apache/continuum/builder/utils/ continuum-distributed-build...

Author: ctan
Date: Mon Jan  5 23:33:54 2009
New Revision: 731857

URL: http://svn.apache.org/viewvc?rev=731857&view=rev
Log:
-fixed viewing of available installations in slave
-fixed viewing of build result

Modified:
    continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java
    continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java
    continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java
    continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
    continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
    continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java
    continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java
    continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java
    continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java
    continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml

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=731857&r1=731856&r2=731857&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 Mon Jan  5 23:33:54 2009
@@ -380,6 +380,11 @@
             BufferedWriter out = new BufferedWriter(fstream);
             out.write( ContinuumBuildConstant.getBuildOutput( context ) == null ? "" : ContinuumBuildConstant.getBuildOutput( context ) );
             out.close();
+
+            //if ( buildResult.getState() != ContinuumProjectState.CANCELLED )
+            //{
+            //    notifierDispatcher.buildComplete( project, buildDefinition, buildResult );
+            //}
         }
         catch ( ContinuumStoreException e )
         {
@@ -418,6 +423,8 @@
             }
 
             projectScmRootDao.updateProjectScmRoot( scmRoot );
+
+            //notifierDispatcher.prepareBuildComplete( scmRoot );
         }
         catch ( ContinuumStoreException e )
         {
@@ -447,18 +454,30 @@
     public List<Installation> getAvailableInstallations( String buildAgentUrl )
         throws ContinuumException
     {
+        List<Installation> installations = new ArrayList<Installation>();
+
         try
         {
             SlaveBuildAgentTransportClient client = new SlaveBuildAgentTransportClient( new URL( buildAgentUrl ) );
             
-            //return client.getAvailableInstallations();
+            List<Map> installationsList = client.getAvailableInstallations();
+
+            for ( Map context : installationsList )
+            {
+                Installation installation = new Installation();
+                installation.setName( ContinuumBuildConstant.getInstallationName( context ) );
+                installation.setType( ContinuumBuildConstant.getInstallationType( context ) );
+                installation.setVarName( ContinuumBuildConstant.getInstallationVarName( context ) );
+                installation.setVarValue( ContinuumBuildConstant.getInstallationVarValue( context ) );
+                installations.add( installation );
+            }
+            
+            return installations;
         }
         catch ( Exception e )
         {
             throw new ContinuumException( "Unable to get available installations of build agent", e );
         }
-
-        return null;
     }
 
     private List<ProjectDependency> getModifiedDependencies( BuildResult oldBuildResult, Map context )
@@ -574,7 +593,7 @@
         
         if ( buildAgentUrl == null )
         {
-            throw new ContinuumException( "Unable to find build agent for project " + projectId );
+            return null;
         }
 
         try
@@ -610,7 +629,7 @@
         }
         catch ( Exception e )
         {
-            throw new ContinuumException( "", e );
+            throw new ContinuumException( "Error while retrieving build result for project" + projectId, e );
         }
 
         return map;

Modified: continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java Mon Jan  5 23:33:54 2009
@@ -62,6 +62,14 @@
 
     public static final String KEY_PROJECT_STATE = "project-state";
 
+    public static final String KEY_INSTALLATION_NAME = "installation-name";
+
+    public static final String KEY_INSTALLATION_TYPE = "installation-type";
+
+    public static final String KEY_INSTALLATION_VAR_NAME = "installation-var-name";
+
+    public static final String KEY_INSTALLATION_VAR_VALUE = "installation-var-value";
+
     public static int getProjectId( Map context )
     {
         return getInteger( context, KEY_PROJECT_ID );
@@ -152,6 +160,26 @@
         return (BuildResult) getObject( context, KEY_BUILD_RESULT, defaultValue );
     }
 
+    public static String getInstallationName( Map context )
+    {
+        return getString( context, KEY_INSTALLATION_NAME );
+    }
+
+    public static String getInstallationType( Map context )
+    {
+        return getString( context, KEY_INSTALLATION_TYPE );
+    }
+
+    public static String getInstallationVarValue( Map context )
+    {
+        return getString( context, KEY_INSTALLATION_VAR_VALUE );
+    }
+
+    public static String getInstallationVarName( Map context )
+    {
+        return getString( context, KEY_INSTALLATION_VAR_NAME );
+    }
+
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------

Modified: continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java Mon Jan  5 23:33:54 2009
@@ -3,14 +3,12 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.continuum.buildagent.model.Installation;
-
 public interface ContinuumBuildAgentService
 {
     void buildProjects( List<Map> projectsBuildContext )
         throws ContinuumBuildAgentException;
     
-    List<Installation> getAvailableInstallations()
+    List<Map> getAvailableInstallations()
         throws ContinuumBuildAgentException;
 
     Map getBuildResult( int projectId )

Modified: continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java Mon Jan  5 23:33:54 2009
@@ -19,6 +19,7 @@
 import org.apache.maven.continuum.model.project.BuildResult;
 import org.apache.maven.continuum.project.ContinuumProjectState;
 import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,11 +66,57 @@
         }
     }
 
-    //TODO: fix this
-    public List<Installation> getAvailableInstallations()
+    public List<Map> getAvailableInstallations()
         throws ContinuumBuildAgentException
     {
-        return buildAgentConfigurationService.getAvailableInstallations();
+        List<Map> installationsList = new ArrayList<Map>();
+        
+        List<Installation> installations = buildAgentConfigurationService.getAvailableInstallations();
+
+        for ( Installation installation : installations )
+        {
+            Map map = new HashMap();
+            
+            if ( StringUtils.isBlank( installation.getName() ) )
+            {
+                map.put( ContinuumBuildAgentUtil.KEY_INSTALLATION_NAME, "" );
+            }
+            else
+            {
+                map.put( ContinuumBuildAgentUtil.KEY_INSTALLATION_NAME, installation.getName() );
+            }
+
+            if ( StringUtils.isBlank( installation.getType() ) )
+            {
+                map.put( ContinuumBuildAgentUtil.KEY_INSTALLATION_TYPE, "" );
+            }
+            else
+            {
+                map.put( ContinuumBuildAgentUtil.KEY_INSTALLATION_TYPE, installation.getType() );
+            }
+
+            if ( StringUtils.isBlank( installation.getVarName() ) )
+            {
+                map.put( ContinuumBuildAgentUtil.KEY_INSTALLATION_VAR_NAME, "" );
+            }
+            else
+            {
+                map.put( ContinuumBuildAgentUtil.KEY_INSTALLATION_VAR_VALUE, installation.getVarValue() );
+            }
+
+            if ( StringUtils.isBlank( installation.getVarValue() ) )
+            {
+                map.put( ContinuumBuildAgentUtil.KEY_INSTALLATION_VAR_VALUE, "" );
+            }
+            else
+            {
+                map.put( ContinuumBuildAgentUtil.KEY_INSTALLATION_VAR_VALUE, installation.getVarValue() );
+            }
+
+            installationsList.add( map );
+        }
+
+        return installationsList;
     }
 
     public Map getBuildResult( int projectId )

Modified: continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfigurationService.java Mon Jan  5 23:33:54 2009
@@ -3,8 +3,6 @@
 import java.io.File;
 import java.util.List;
 
-import org.apache.continuum.buildagent.model.Installation;
-
 public interface BuildAgentConfigurationService
 {
     String ROLE = BuildAgentConfigurationService.class.getName();
@@ -25,5 +23,5 @@
     File getBuildOutputFile( int projectId )
         throws BuildAgentConfigurationException;
 
-    List<Installation> getAvailableInstallations();
+    List getAvailableInstallations();
 }

Modified: continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java Mon Jan  5 23:33:54 2009
@@ -4,7 +4,6 @@
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.continuum.buildagent.model.Installation;
 import org.codehaus.plexus.util.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

Modified: continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java Mon Jan  5 23:33:54 2009
@@ -87,6 +87,14 @@
 
     public static final String KEY_PROJECT_STATE = "project-state";
 
+    public static final String KEY_INSTALLATION_NAME = "installation-name";
+
+    public static final String KEY_INSTALLATION_TYPE = "installation-type";
+
+    public static final String KEY_INSTALLATION_VAR_NAME = "installation-var-name";
+
+    public static final String KEY_INSTALLATION_VAR_VALUE = "installation-var-value";
+
     public static Integer getProjectId( Map context )
     {
         return getInteger( context, KEY_PROJECT_ID );

Modified: continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java Mon Jan  5 23:33:54 2009
@@ -36,7 +36,7 @@
     
     public Integer getProjectCurrentlyBuilding() throws Exception;
     
-    public List<Object> getAvailableInstallations() throws Exception;
+    public List<Map> getAvailableInstallations() throws Exception;
     
     public Boolean ping() throws Exception;
 

Modified: continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java Mon Jan  5 23:33:54 2009
@@ -83,10 +83,10 @@
         return result;
     }
 
-    public List<Object> getAvailableInstallations()
+    public List<Map> getAvailableInstallations()
         throws Exception
     {
-        List<Object> installations = null;
+        List<Map> installations = null;
         
         try
         {

Modified: continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-distributed-build/continuum-distributed-build-transport/continuum-distributed-build-transport-slave/continuum-distributed-build-transport-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java Mon Jan  5 23:33:54 2009
@@ -64,14 +64,11 @@
         return result;
     }
 
-    // TODO: fix this
-    public List<Object> getAvailableInstallations()
+    public List<Map> getAvailableInstallations()
         throws Exception
     {
-        List<Object> installationsObj = null;
+        List<Map> installations = null;
 
-        List<Installation> installations = null;
-        
         try
         {
             installations = continuumBuildAgentService.getAvailableInstallations();
@@ -82,7 +79,7 @@
             log.error( "Failed to get available installations.", e );
         }
 
-        return installationsObj;
+        return installations;
     }
 
     public Map getBuildResult( int projectId )

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildResultAction.java Mon Jan  5 23:33:54 2009
@@ -70,6 +70,8 @@
 
     private String projectGroupName = "";
 
+    private int projectGroupId;
+
     public String execute()
         throws ContinuumException, ConfigurationException, IOException
     {
@@ -90,6 +92,13 @@
         {
             Map<String, Object> map = distributedBuildManager.getBuildResult( project.getId() );
 
+            if ( map == null )
+            {
+                projectGroupId = project.getProjectGroup().getId();
+
+                return ERROR;
+            }
+
             if ( map.size() > 0 )
             {
                 buildResult = ContinuumBuildConstant.getBuildResult( map, null );
@@ -234,4 +243,8 @@
         return projectGroupName;
     }
 
+    public int getProjectGroupId()
+    {
+        return projectGroupId;
+    }
 }

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml?rev=731857&r1=731856&r2=731857&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml Mon Jan  5 23:33:54 2009
@@ -369,6 +369,10 @@
 
     <action name="buildResult" class="buildResult">
       <result name="success">/WEB-INF/jsp/buildResult.jsp</result>
+      <result name="error" type="redirect-action">
+        <param name="actionName">projectGroupSummary</param>
+        <param name="projectGroupId">${projectGroupId}</param>
+      </result>
     </action>
     
     <action name="buildOutputText" class="buildResult">