You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by tr...@apache.org on 2005/07/08 12:31:03 UTC
svn commit: r209732 - in
/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum:
buildcontroller/ core/action/
Author: trygvis
Date: Fri Jul 8 03:30:59 2005
New Revision: 209732
URL: http://svn.apache.org/viewcvs?rev=209732&view=rev
Log:
o Improving error handling a bit.
Modified:
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/AbstractContinuumAction.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreCheckOutScmResultAction.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java?rev=209732&r1=209731&r2=209732&view=diff
==============================================================================
--- 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 Fri Jul 8 03:30:59 2005
@@ -29,6 +29,8 @@
import org.apache.maven.continuum.scm.CheckOutScmResult;
import org.apache.maven.continuum.scm.ScmFile;
import org.apache.maven.continuum.scm.UpdateScmResult;
+import org.apache.maven.continuum.scm.ContinuumScmException;
+import org.apache.maven.continuum.scm.ScmResult;
import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.apache.maven.continuum.utils.ContinuumUtils;
@@ -116,11 +118,11 @@
actionManager.lookup( "checkout-project" ).execute( actionContext );
- CheckOutScmResult checkOutScmResult = AbstractContinuumAction.getCheckoutResult( actionContext );
+ CheckOutScmResult checkOutScmResult = AbstractContinuumAction.getCheckoutResult( actionContext, null );
- String checkoutErrorMessage = AbstractContinuumAction.getCheckoutErrorMessage( actionContext );
+ String checkoutErrorMessage = AbstractContinuumAction.getCheckoutErrorMessage( actionContext, null );
- String checkoutErrorException = AbstractContinuumAction.getCheckoutErrorException( actionContext );
+ String checkoutErrorException = AbstractContinuumAction.getCheckoutErrorException( actionContext, null );
// ----------------------------------------------------------------------
// Check to see if there was a error while checking out the project
@@ -135,7 +137,7 @@
updateScmResult.setProviderMessage( checkOutScmResult.getProviderMessage() );
- updateScmResult.setSuccess( checkOutScmResult.isSuccess() );
+ updateScmResult.setSuccess( false );
for ( Iterator it = checkOutScmResult.getCheckedOutFiles().iterator(); it.hasNext(); )
{
@@ -154,11 +156,13 @@
if ( !StringUtils.isEmpty( checkoutErrorMessage ) )
{
- error = checkoutErrorMessage + System.getProperty( "line.separator" );
+ error = "Error message:" + System.getProperty( "line.separator" );
+ error = checkoutErrorException;
}
if ( !StringUtils.isEmpty( checkoutErrorException ) )
{
+ error += "Exception:" + System.getProperty( "line.separator" );
error += checkoutErrorException;
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java?rev=209732&r1=209731&r2=209732&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java Fri Jul 8 03:30:59 2005
@@ -181,19 +181,19 @@
return new File( getString( context, KEY_WORKING_DIRECTORY ) );
}
- public static CheckOutScmResult getCheckoutResult( Map context )
+ public static CheckOutScmResult getCheckoutResult( Map context, Object defaultValue )
{
- return (CheckOutScmResult) getObject( context, KEY_CHECKOUT_SCM_RESULT );
+ return (CheckOutScmResult) getObject( context, KEY_CHECKOUT_SCM_RESULT, defaultValue );
}
- public static String getCheckoutErrorMessage( Map context )
+ public static String getCheckoutErrorMessage( Map context, String defaultValue )
{
- return getString( context, KEY_CHECKOUT_ERROR_MESSAGE );
+ return getString( context, KEY_CHECKOUT_ERROR_MESSAGE, defaultValue );
}
- public static String getCheckoutErrorException( Map context )
+ public static String getCheckoutErrorException( Map context, String defaultValue )
{
- return getString( context, KEY_CHECKOUT_ERROR_EXCEPTION );
+ return getString( context, KEY_CHECKOUT_ERROR_EXCEPTION, defaultValue );
}
public static UpdateScmResult getUpdateScmResult( Map context )
@@ -212,7 +212,12 @@
protected static String getString( Map context, String key )
{
- return (String) context.get( key );
+ return (String) getObject( context, key );
+ }
+
+ protected static String getString( Map context, String key, String defaultValue )
+ {
+ return (String) getObject( context, key, defaultValue );
}
public static boolean getBoolean( Map context, String key )
@@ -226,14 +231,6 @@
if ( value == null )
{
-// System.err.println( "context" );
-// for ( Iterator it = context.keySet().iterator(); it.hasNext(); )
-// {
-// String s = (String) it.next();
-//
-// System.err.println( s );
-// }
-
throw new RuntimeException( "Missing value for key '" + key + "'." );
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java?rev=209732&r1=209731&r2=209732&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java Fri Jul 8 03:30:59 2005
@@ -22,10 +22,12 @@
import org.apache.maven.continuum.project.ContinuumProject;
import org.apache.maven.continuum.scm.CheckOutScmResult;
import org.apache.maven.continuum.scm.ContinuumScmException;
-import org.apache.maven.continuum.store.AbstractContinuumStore;
+import org.apache.maven.continuum.scm.ScmResult;
import org.apache.maven.continuum.utils.ContinuumUtils;
import org.apache.maven.scm.manager.NoSuchScmProviderException;
+import org.codehaus.plexus.util.StringUtils;
+
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
@@ -40,21 +42,29 @@
File workingDirectory = getWorkingDirectory( context );
- CheckOutScmResult result = null;
-
- String errorMessage = null;
-
- Throwable exception = null;
-
// ----------------------------------------------------------------------
// Check out the project
// ----------------------------------------------------------------------
try
{
- result = getScm().checkOut( project, workingDirectory );
+ CheckOutScmResult result = getScm().checkOut( project, workingDirectory );
+
+ context.put( KEY_CHECKOUT_SCM_RESULT, result );
}
- catch ( ContinuumScmException e )
+ catch ( Throwable e )
+ {
+ handleThrowable( e, context );
+ }
+ }
+
+ public static void handleThrowable( Throwable e, Map context )
+ {
+ String errorMessage;
+
+ Throwable exception;
+
+ if ( e instanceof ContinuumScmException )
{
// TODO: Dissect the scm exception to be able to give better feedback
Throwable cause = e.getCause();
@@ -62,22 +72,38 @@
if ( cause instanceof NoSuchScmProviderException )
{
errorMessage = cause.getMessage();
+
+ exception = null;
}
else
{
+ ContinuumScmException ex = (ContinuumScmException) e;
+
+ ScmResult result = ex.getResult();
+
+ if ( result != null )
+ {
+ errorMessage = "";
+ errorMessage += "Provider message: " + StringUtils.clean( result.getProviderMessage() ) + System.getProperty( "line.separator" );
+ errorMessage += "Command output: " + System.getProperty( "line.separator" );
+ errorMessage += "-------------------------------------------------------------------------------";
+ errorMessage += StringUtils.clean( result.getCommandOutput() );
+ errorMessage += "-------------------------------------------------------------------------------";
+ }
+ else
+ {
+ errorMessage = "";
+ }
+
exception = e;
}
}
- catch ( Throwable e )
+ else
{
+ errorMessage = "Unknown exception, type: " + e.getClass().getName();
+
exception = e;
}
-
- // ----------------------------------------------------------------------
- // Store the result in the context
- // ----------------------------------------------------------------------
-
- context.put( KEY_CHECKOUT_SCM_RESULT, result );
context.put( KEY_CHECKOUT_ERROR_MESSAGE, errorMessage );
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreCheckOutScmResultAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreCheckOutScmResultAction.java?rev=209732&r1=209731&r2=209732&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreCheckOutScmResultAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreCheckOutScmResultAction.java Fri Jul 8 03:30:59 2005
@@ -40,11 +40,11 @@
//
// ----------------------------------------------------------------------
- CheckOutScmResult checkOutScmResult = (CheckOutScmResult) context.get( KEY_CHECKOUT_SCM_RESULT );
+ CheckOutScmResult checkOutScmResult = AbstractContinuumAction.getCheckoutResult( context, null );
- String checkoutErrorMessage = (String) context.get( KEY_CHECKOUT_ERROR_MESSAGE );
+ String checkoutErrorMessage = AbstractContinuumAction.getCheckoutErrorMessage( context, null );
- String checkoutErrorException = (String) context.get( KEY_CHECKOUT_ERROR_EXCEPTION );
+ String checkoutErrorException = AbstractContinuumAction.getCheckoutErrorException( context, null );
// ----------------------------------------------------------------------
//
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java?rev=209732&r1=209731&r2=209732&view=diff
==============================================================================
--- 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 Fri Jul 8 03:30:59 2005
@@ -47,6 +47,10 @@
context.put( KEY_UPDATE_SCM_RESULT, updateScmResult );
}
+ catch( Throwable e )
+ {
+ CheckoutProjectContinuumAction.handleThrowable( e, context );
+ }
finally
{
getNotifier().checkoutComplete( project, updateScmResult );