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/14 16:36:06 UTC

svn commit: r726476 - in /continuum/branches/continuum-distributed-builds/continuum-builder/src/main/java/org/apache/continuum/builder: distributed/manager/DefaultDistributedBuildManager.java utils/ContinuumBuildConstant.java

Author: ctan
Date: Sun Dec 14 07:36:06 2008
New Revision: 726476

URL: http://svn.apache.org/viewvc?rev=726476&view=rev
Log:
- more fix in distributed build manager

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

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=726476&r1=726475&r2=726476&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 Sun Dec 14 07:36:06 2008
@@ -284,14 +284,12 @@
         }
     }
 
-    public void updateProjectScmRoot( Map context )
+    public void updateScmResult( Map context )
         throws ContinuumException
     {
         try
         {
             int projectId = ContinuumBuildConstant.getProjectId( context );
-            int projectGroupId = ContinuumBuildConstant.getProjectGroupId( context );
-            String scmRootAddress = ContinuumBuildConstant.getScmRootAddress( context );
 
             log.info( "update scm result of project" + projectId );
             Project project = projectDao.getProjectWithScmDetails( projectId );
@@ -301,42 +299,14 @@
             scmResult.setCommandOutput( ContinuumBuildConstant.getScmCommandOutput( context ) );
             scmResult.setException( ContinuumBuildConstant.getScmException( context ) );
             scmResult.setProviderMessage( ContinuumBuildConstant.getScmProviderMessage( context ) );
-
-            String error = convertScmResultToError( scmResult );
-
-            if ( error == null )
-            {
-                scmResult.setSuccess( true );
-            }
-            else
-            {
-                scmResult.setSuccess( false );
-            }
+            scmResult.setSuccess( ContinuumBuildConstant.isScmSuccess( context ) );
 
             project.setScmResult( scmResult );
             projectDao.updateProject( project );
-
-            ProjectScmRoot scmRoot = projectScmRootDao.getProjectScmRootByProjectGroupAndScmRootAddress( projectGroupId, scmRootAddress );
-
-            if ( error != null )
-            {
-                log.info( "scm error, not building" );
-                scmRoot.setError( error );
-                scmRoot.setState( ContinuumProjectState.ERROR );
-                projectScmRootDao.updateProjectScmRoot( scmRoot );
-            }
-            else if ( ContinuumBuildConstant.isPrepareBuildFinished( context ) )
-            {
-                log.info( "prepare build finished" );
-                scmRoot.setState( ContinuumProjectState.UPDATED );
-                projectScmRootDao.updateProjectScmRoot( scmRoot );
-
-                //TODO: set state of project to building
-            }
         }
         catch ( ContinuumStoreException e )
         {
-            throw new ContinuumException( "Error updating project scm root", e );
+            throw new ContinuumException( "Error updating project's scm result", e );
         }
     }
 
@@ -400,6 +370,36 @@
         }
     }
 
+    public void prepareBuildFinished( Map context )
+        throws ContinuumException
+    {
+        int projectGroupId = ContinuumBuildConstant.getProjectGroupId( context );
+        String scmRootAddress = ContinuumBuildConstant.getScmRootAddress( context );
+
+        try
+        {
+            ProjectScmRoot scmRoot = projectScmRootDao.getProjectScmRootByProjectGroupAndScmRootAddress( projectGroupId, scmRootAddress );
+            
+            String error = ContinuumBuildConstant.getScmError( context );
+            
+            if ( StringUtils.isEmpty( error ) )
+            {
+                scmRoot.setState( ContinuumProjectState.UPDATED );
+            }
+            else
+            {
+                scmRoot.setState( ContinuumProjectState.ERROR );
+                scmRoot.setError( error );
+            }
+
+            projectScmRootDao.updateProjectScmRoot( scmRoot );
+        }
+        catch ( ContinuumStoreException e )
+        {
+            throw new ContinuumException( "Error while updating project scm root '" + scmRootAddress + "'", e );
+        }
+    }
+
     public Map<String, PrepareBuildProjectsTask> getDistributedBuildProjects()
     {
         Map<String, PrepareBuildProjectsTask> map = new HashMap<String, PrepareBuildProjectsTask>();
@@ -504,45 +504,5 @@
         return null;
     }
 
-    private String convertScmResultToError( ScmResult result )
-    {
-        String error = "";
-
-        if ( result == null )
-        {
-            error = "Scm result is null.";
-        }
-        else
-        {
-            if ( result.getCommandLine() != null )
-            {
-                error = "Command line: " + StringUtils.clean( result.getCommandLine() ) +
-                    System.getProperty( "line.separator" );
-            }
-
-            if ( result.getProviderMessage() != null )
-            {
-                error = "Provider message: " + StringUtils.clean( result.getProviderMessage() ) +
-                    System.getProperty( "line.separator" );
-            }
-
-            if ( result.getCommandOutput() != null )
-            {
-                error += "Command output: " + System.getProperty( "line.separator" );
-                error += "-------------------------------------------------------------------------------" +
-                    System.getProperty( "line.separator" );
-                error += StringUtils.clean( result.getCommandOutput() ) + System.getProperty( "line.separator" );
-                error += "-------------------------------------------------------------------------------" +
-                    System.getProperty( "line.separator" );
-            }
-
-            if ( result.getException() != null )
-            {
-                error += "Exception:" + System.getProperty( "line.separator" );
-                error += result.getException();
-            }
-        }
-
-        return error;
-    }
+    
 }

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=726476&r1=726475&r2=726476&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 Sun Dec 14 07:36:06 2008
@@ -44,12 +44,14 @@
 
     public static final String KEY_SCM_EXCEPTION = "scm-exception";
 
-    public static final String KEY_PREPARE_BUILD_FINISHED = "prepare-build-finished";
+    public static final String KEY_SCM_SUCCESS = "scm-success";
 
     public static final String KEY_PROJECT_GROUP_ID = "project-group-id";
 
     public static final String KEY_SCM_ROOT_ADDRESS = "scm-root-address";
 
+    public static final String KEY_SCM_ERROR = "scm-error";
+
     public static int getProjectId( Map context )
     {
         return getInteger( context, KEY_PROJECT_ID );
@@ -110,9 +112,9 @@
         return getString( context, KEY_SCM_PROVIDER_MESSAGE );
     }
 
-    public static boolean isPrepareBuildFinished( Map context )
+    public static boolean isScmSuccess( Map context )
     {
-        return getBoolean( context, KEY_PREPARE_BUILD_FINISHED );
+        return getBoolean( context, KEY_SCM_SUCCESS );
     }
 
     public static int getProjectGroupId( Map context )
@@ -125,6 +127,11 @@
         return getString( context, KEY_SCM_ROOT_ADDRESS );
     }
 
+    public static String getScmError( Map context )
+    {
+        return getString( context, KEY_SCM_ERROR );
+    }
+
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------