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/19 04:31:08 UTC
svn commit: r219599 - in /maven/continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/
continuum-api/src/main/java/org/apache/maven/continuum/execution/
continuum-api/src/main/java/org/apache/maven/continuum/notification/
continuum-ap...
Author: trygvis
Date: Mon Jul 18 19:30:49 2005
New Revision: 219599
URL: http://svn.apache.org/viewcvs?rev=219599&view=rev
Log:
Fixing CONTINUUM-235: "Collapse standardError and standardOutput to 'output'"
Fixing CONTINUUM-242: "Write the build output to disk instead of keeping it in
the database"
o Removing standardOutput and standardError from the ContinuumBuild object. The
output from the build can be accessed by calling Store.getBuildOutput().
o Removing the ScmResult parameter from the notifiers, it can be read from the
ContinuumProject instance.
o Adding buildOutputDirectory to the ConfigurationService.
Modified:
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutionResult.java
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcher.java
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java
maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/ContinuumXmlRpcClient.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.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/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/execution/AbstractBuildExecutor.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/DefaultShellCommandHelper.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/ExecutionResult.java
maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml
maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm
maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AbstractContinuumTest.java
maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcherTest.java
maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.java
maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java
maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo
maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo
maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/ProjectBuild.vm
maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/Build.java
maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/DelegatingContinuumWebService.java
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Mon Jul 18 19:30:49 2005
@@ -30,7 +30,6 @@
import org.apache.maven.continuum.project.ContinuumSchedule;
import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
import org.apache.maven.continuum.scm.ScmResult;
-import org.apache.maven.continuum.store.ContinuumStoreException;
import org.codehaus.plexus.util.dag.CycleDetectedException;
/**
@@ -171,7 +170,7 @@
ContinuumNotifier getNotifier( String projectId, String notifierType )
throws ContinuumException;
- public void updateNotifier( String projectId, String notifierType, Map configuration )
+ void updateNotifier( String projectId, String notifierType, Map configuration )
throws ContinuumException;
void addNotifier( String projectId, String notifierType, Map configuration )
@@ -184,16 +183,16 @@
// Schedules
// ----------------------------------------------------------------------
- public ContinuumSchedule getSchedule( String scheduleId )
+ ContinuumSchedule getSchedule( String scheduleId )
throws ContinuumException;
- public void addSchedule( ContinuumSchedule schedule )
+ void addSchedule( ContinuumSchedule schedule )
throws ContinuumException;
- public void updateSchedule( ContinuumSchedule schedule )
+ void updateSchedule( ContinuumSchedule schedule )
throws ContinuumException;
- public void removeSchedule( String scheduleId )
+ void removeSchedule( String scheduleId )
throws ContinuumException;
}
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutionResult.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutionResult.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutionResult.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutionResult.java Mon Jul 18 19:30:49 2005
@@ -24,19 +24,16 @@
{
private boolean success;
- private String standardOutput;
-
- private String standardError;
+ private String output;
private int exitCode;
- public ContinuumBuildExecutionResult( boolean success, String standardOutput, String standardError, int exitCode )
+ public ContinuumBuildExecutionResult( boolean success,
+ String output, int exitCode )
{
this.success = success;
- this.standardOutput = standardOutput;
-
- this.standardError = standardError;
+ this.output = output;
this.exitCode = exitCode;
}
@@ -46,14 +43,9 @@
return success;
}
- public String getStandardOutput()
- {
- return standardOutput;
- }
-
- public String getStandardError()
+ public String getOutput()
{
- return standardError;
+ return output;
}
public int getExitCode()
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcher.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcher.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- 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 Mon Jul 18 19:30:49 2005
@@ -46,6 +46,8 @@
String CONTEXT_BUILD = "build";
+ String CONTEXT_BUILD_OUTPUT = "build-output";
+
String CONTEXT_PROJECT = "project";
String CONTEXT_BUILD_RESULT = "result";
@@ -60,7 +62,7 @@
void checkoutStarted( ContinuumProject project );
- void checkoutComplete( ContinuumProject project, ScmResult scmResult );
+ void checkoutComplete( ContinuumProject project );
void runningGoals( ContinuumProject project, ContinuumBuild build );
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/store/ContinuumStore.java Mon Jul 18 19:30:49 2005
@@ -18,14 +18,11 @@
import java.util.Collection;
import java.util.List;
-import java.util.Set;
-import org.apache.maven.continuum.execution.ContinuumBuildExecutionResult;
import org.apache.maven.continuum.project.ContinuumBuild;
import org.apache.maven.continuum.project.ContinuumProject;
import org.apache.maven.continuum.project.ContinuumSchedule;
import org.apache.maven.continuum.scm.ScmResult;
-import org.apache.maven.continuum.ContinuumException;
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
@@ -64,6 +61,9 @@
ContinuumProject getProject( String projectId )
throws ContinuumStoreException;
+ ContinuumProject getProjectForBuild( String buildId )
+ throws ContinuumStoreException;
+
ScmResult getScmResultForProject( String projectId )
throws ContinuumStoreException;
@@ -77,7 +77,13 @@
void updateBuild( ContinuumBuild build )
throws ContinuumStoreException;
+ void setBuildOutput( String buildId, String output )
+ throws ContinuumStoreException;
+
ContinuumBuild getBuild( String buildId )
+ throws ContinuumStoreException;
+
+ String getBuildOutput( String buildId )
throws ContinuumStoreException;
ContinuumBuild getLatestBuildForProject( String projectId )
Modified: maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java (original)
+++ maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/AbstractIntegrationTest.java Mon Jul 18 19:30:49 2005
@@ -63,8 +63,6 @@
private Date startTime;
- private Date endTime;
-
private File rootDirectory;
private File cvsRoot;
@@ -75,11 +73,11 @@
private String remotingMethod;
- public final String REMOTING_METHOD_JVM = "jvm";
+ public static final String REMOTING_METHOD_JVM = "jvm";
- public final String REMOTING_METHOD_XMLRPC = "xmlrpc";
+ public static final String REMOTING_METHOD_XMLRPC = "xmlrpc";
- public final String REMOTING_METHOD_XFIRE = "xfire";
+ public static final String REMOTING_METHOD_XFIRE = "xfire";
// ----------------------------------------------------------------------
//
@@ -110,6 +108,20 @@
}
context.put( "plexus.home", plexusHome.getAbsolutePath() );
+
+ // TODO: Replace with AbstractContinuumTest.makeConfiguration( plexusHome.getAbsolutePath() );
+ File configFile = new File( plexusHome.getAbsolutePath(), "conf/configuration.xml" );
+
+ if ( !configFile.getParentFile().exists() &&
+ !configFile.getParentFile().mkdirs() )
+ {
+ throw new IOException( "Could not make directory: '" + configFile.getParentFile() + "'." );
+ }
+
+ FileUtils.fileWrite( configFile.getAbsolutePath(),
+ "<configuration>" +
+ "<build-output-directory>target/build-output</build-output-directory>" +
+ "</configuration>");
}
public final void setUp()
@@ -141,7 +153,7 @@
deleteAndCreateDirectory( rootDirectory );
- progress( "Connecting to Continuum" );
+ progress( "Connecting to and starting Continuum" );
Continuum continuum = getContinuum();
progress( "Removing all existing projects from Continuum." );
@@ -159,7 +171,7 @@
public final void tearDown()
throws Exception
{
- endTime = new Date();
+ Date endTime = new Date();
super.tearDown();
@@ -235,6 +247,16 @@
}
// ----------------------------------------------------------------------
+ // Component getters
+ // ----------------------------------------------------------------------
+
+ public ContinuumStore getStore()
+ throws Exception
+ {
+ return (ContinuumStore) lookup( ContinuumStore.ROLE );
+ }
+
+ // ----------------------------------------------------------------------
// Utilities
// ----------------------------------------------------------------------
@@ -574,20 +596,18 @@
print( "Build state: " + build.getState() );
line();
- print( "Standard output" );
- line();
- print( build.getStandardOutput() );
- line();
-
- line();
- print( "Standard error" );
+ print( "Output" );
line();
- print( build.getStandardError() );
+ print( getStore().getBuildOutput( buildId ) );
line();
fail( "The build was not successful" );
}
+ String output = getStore().getBuildOutput( buildId );
+
+ assertNotNull( "Output was null.", output );
+
return build;
}
@@ -596,9 +616,10 @@
{
ContinuumBuild build = assertSuccessfulBuild( buildId );
- assertTrue( "Standard output didn't contain the 'BUILD SUCCESSFUL' message.",
- build.getStandardOutput().indexOf( "BUILD SUCCESSFUL" ) != -1 );
- assertEquals( "Standard error wasn't empty.", 0, build.getStandardError().length() );
+ String output = getStore().getBuildOutput( buildId );
+
+ assertTrue( "Output didn't contain the 'BUILD SUCCESSFUL' message.",
+ output.indexOf( "BUILD SUCCESSFUL" ) != -1 );
return build;
}
@@ -608,9 +629,10 @@
{
ContinuumBuild build = assertSuccessfulBuild( buildId );
+ String output = getStore().getBuildOutput( buildId );
+
assertTrue( "Standard output didn't contain the 'BUILD SUCCESSFUL' message.",
- build.getStandardOutput().indexOf( "BUILD SUCCESSFUL" ) != -1 );
- assertEquals( "Standard error wasn't empty.", 0, build.getStandardError().length() );
+ output.indexOf( "BUILD SUCCESSFUL" ) != -1 );
return build;
}
@@ -620,9 +642,10 @@
{
ContinuumBuild build = assertSuccessfulBuild( buildId );
+ String output = getStore().getBuildOutput( buildId );
+
assertTrue( "Standard output didn't contain the 'BUILD SUCCESSFUL' message.",
- build.getStandardOutput().indexOf( "BUILD SUCCESSFUL" ) != -1 );
- assertEquals( "Standard error wasn't empty.", 0, build.getStandardError().length() );
+ output.indexOf( "BUILD SUCCESSFUL" ) != -1 );
return build;
}
@@ -632,9 +655,11 @@
{
ContinuumBuild build = assertSuccessfulBuild( buildId );
- assertEquals( "Standard output didn't contain the expected output.", expectedStandardOutput,
- build.getStandardOutput() );
- assertEquals( "Standard error wasn't empty.", 0, build.getStandardError().length() );
+ String output = getStore().getBuildOutput( buildId );
+
+ assertEquals( "Standard output didn't contain the expected output.",
+ expectedStandardOutput,
+ output );
return build;
}
Modified: maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/ContinuumXmlRpcClient.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/ContinuumXmlRpcClient.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/ContinuumXmlRpcClient.java (original)
+++ maven/continuum/trunk/continuum-core-it/src/test/java/org/apache/maven/continuum/it/ContinuumXmlRpcClient.java Mon Jul 18 19:30:49 2005
@@ -37,6 +37,7 @@
import org.apache.maven.continuum.project.AntProject;
import org.apache.maven.continuum.project.ShellProject;
import org.apache.maven.continuum.project.ContinuumNotifier;
+import org.apache.maven.continuum.project.ContinuumSchedule;
import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
import org.apache.xmlrpc.XmlRpcClientLite;
import org.apache.xmlrpc.XmlRpcClient;
@@ -328,6 +329,34 @@
}
public void removeNotifier( String projectId, String notifierType )
+ throws ContinuumException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ // ----------------------------------------------------------------------
+ // Schedules
+ // ----------------------------------------------------------------------
+
+ public ContinuumSchedule getSchedule( String scheduleId )
+ throws ContinuumException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addSchedule( ContinuumSchedule schedule )
+ throws ContinuumException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateSchedule( ContinuumSchedule schedule )
+ throws ContinuumException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void removeSchedule( String scheduleId )
throws ContinuumException
{
throw new UnsupportedOperationException();
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java Mon Jul 18 19:30:49 2005
@@ -1,6 +1,20 @@
package org.apache.maven.continuum.configuration;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
import java.io.File;
@@ -11,6 +25,30 @@
public interface ConfigurationService
{
String ROLE = ConfigurationService.class.getName();
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ public static final String CONFIGURATION_URL = "url";
+
+ public static final String CONFIGURATION_BUILD_OUTPUT_DIRECTORY = "build-output-directory";
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ String getUrl();
+
+ void setUrl( String url );
+
+ File getBuildOutputDirectory();
+
+ void setBuildOutputDirectory( File buildOutputDirectory );
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
void load()
throws ConfigurationLoadingException;
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java Mon Jul 18 19:30:49 2005
@@ -1,11 +1,5 @@
package org.apache.maven.continuum.configuration;
-import org.codehaus.plexus.util.xml.Xpp3Dom;
-import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
-import org.codehaus.plexus.util.xml.Xpp3DomWriter;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-import org.codehaus.plexus.util.FileUtils;
-
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
@@ -13,6 +7,13 @@
import java.io.IOException;
import java.io.Writer;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
+import org.codehaus.plexus.util.xml.Xpp3DomWriter;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id:$
@@ -20,8 +21,16 @@
public class DefaultConfigurationService
implements ConfigurationService
{
+ /**
+ * @plexus.configuration
+ */
private File source;
+ /**
+ * @plexus.configuration
+ */
+ private File applicationHome;
+
private Xpp3Dom configuration;
// ----------------------------------------------------------------------
@@ -40,20 +49,57 @@
this.url = url;
}
+ private File buildOutputDirectory;
+
+ public File getBuildOutputDirectory()
+ {
+ return buildOutputDirectory;
+ }
+
+ public void setBuildOutputDirectory( File buildOutputDirectory )
+ {
+ this.buildOutputDirectory = buildOutputDirectory;
+ }
+
// ----------------------------------------------------------------------
// Process configuration to glean application specific values
// ----------------------------------------------------------------------
protected void processInboundConfiguration()
+ throws ConfigurationLoadingException
{
- url = configuration.getChild( "url" ).getValue();
+ url = configuration.getChild( CONFIGURATION_URL ).getValue();
+
+ buildOutputDirectory = getFile( configuration, CONFIGURATION_BUILD_OUTPUT_DIRECTORY );
+ }
+
+ private File getFile( Xpp3Dom configuration, String elementName )
+ throws ConfigurationLoadingException
+ {
+ String value = configuration.getChild( elementName ).getValue();
+
+ if ( StringUtils.isEmpty( value ) )
+ {
+ throw new ConfigurationLoadingException( "Missing required element '" + elementName + "'." );
+ }
+
+ File f = new File( value );
+
+ if ( !f.isAbsolute() )
+ {
+ f = new File( applicationHome, value );
+ }
+
+ return f;
}
protected void processOutboundConfiguration()
{
configuration = new Xpp3Dom( "configuration" );
- configuration.addChild( createDom( "url", url ) );
+ configuration.addChild( createDom( CONFIGURATION_URL, url ) );
+
+ configuration.addChild( createFileDom( CONFIGURATION_BUILD_OUTPUT_DIRECTORY, buildOutputDirectory ) );
}
protected Xpp3Dom createDom( String elementName, String value )
@@ -65,6 +111,18 @@
return dom;
}
+ private Xpp3Dom createFileDom( String elementName, File file )
+ {
+ String path = file.getAbsolutePath();
+
+ if ( path.startsWith( applicationHome.getAbsolutePath() ) )
+ {
+ path = path.substring( applicationHome.getAbsolutePath().length() );
+ }
+
+ return createDom( elementName, path );
+ }
+
// ----------------------------------------------------------------------
// Load and Store
// ----------------------------------------------------------------------
@@ -99,7 +157,7 @@
try
{
- File backup = new File( source.getName() + ".backup " );
+ File backup = new File( source.getName() + ".backup" );
FileUtils.rename( source, backup );
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=219599&r1=219598&r2=219599&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 Mon Jul 18 19:30:49 2005
@@ -30,9 +30,7 @@
import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
-import org.codehaus.plexus.action.Action;
import org.codehaus.plexus.action.AbstractAction;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.taskqueue.TaskQueue;
import org.codehaus.plexus.util.StringUtils;
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- 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 Mon Jul 18 19:30:49 2005
@@ -22,7 +22,6 @@
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.utils.ContinuumUtils;
-import org.apache.maven.continuum.buildcontroller.DefaultBuildController;
import org.apache.maven.continuum.execution.ContinuumBuildExecutionResult;
import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
import org.apache.maven.continuum.project.ContinuumBuild;
@@ -89,6 +88,8 @@
build = getStore().getBuild( buildId );
+ String output = null;
+
try
{
getNotifier().runningGoals( project, getBuild( context ) );
@@ -106,11 +107,9 @@
build.setSuccess( result.isSuccess() );
- build.setStandardOutput( result.getStandardOutput() );
-
- build.setStandardError( result.getStandardError() );
-
build.setExitCode( result.getExitCode() );
+
+ output = result.getOutput();
}
catch( Throwable e )
{
@@ -127,6 +126,8 @@
// ----------------------------------------------------------------------
// Copy over the build result
// ----------------------------------------------------------------------
+
+ getStore().setBuildOutput( buildId, output );
getStore().updateBuild( build );
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=219599&r1=219598&r2=219599&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 Mon Jul 18 19:30:49 2005
@@ -45,7 +45,7 @@
}
finally
{
- getNotifier().checkoutComplete( project, scmResult );
+ getNotifier().checkoutComplete( project );
}
}
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java Mon Jul 18 19:30:49 2005
@@ -179,8 +179,7 @@
getLogger().info( "Exit code: " + result.getExitCode() );
return new ContinuumBuildExecutionResult( result.getExitCode() == 0,
- result.getStandardOutput(),
- result.getStandardError(),
+ result.getOutput(),
result.getExitCode() );
}
catch ( Exception e )
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- 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 Mon Jul 18 19:30:49 2005
@@ -24,7 +24,7 @@
import org.apache.maven.continuum.project.ContinuumBuild;
import org.apache.maven.continuum.project.ContinuumNotifier;
import org.apache.maven.continuum.project.ContinuumProject;
-import org.apache.maven.continuum.scm.ScmResult;
+import org.apache.maven.continuum.project.ContinuumProjectState;
import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
@@ -71,7 +71,7 @@
sendNotification( MESSAGE_ID_CHECKOUT_STARTED, project, null );
}
- public void checkoutComplete( ContinuumProject project, ScmResult scmResult )
+ public void checkoutComplete( ContinuumProject project )
{
sendNotification( MESSAGE_ID_CHECKOUT_COMPLETE, project, null );
}
@@ -95,19 +95,10 @@
//
// ----------------------------------------------------------------------
-
private void sendNotification( String messageId,
ContinuumProject project,
ContinuumBuild build )
{
- sendNotification( messageId, project, build, null );
- }
-
- private void sendNotification( String messageId,
- ContinuumProject project,
- ContinuumBuild build,
- ScmResult scmResult )
- {
Map context = new HashMap();
// ----------------------------------------------------------------------
@@ -122,12 +113,16 @@
if ( build != null )
{
- context.put( CONTEXT_BUILD, store.getBuild( build.getId() ) );
- }
+ build = store.getBuild( build.getId() );
- if ( scmResult != null )
- {
- context.put( CONTEXT_UPDATE_SCM_RESULT, scmResult );
+ context.put( CONTEXT_BUILD, build );
+
+ if ( build.getEndTime() != 0 )
+ {
+ context.put( CONTEXT_BUILD_OUTPUT, store.getBuildOutput( build.getId() ) );
+ }
+
+ context.put( CONTEXT_UPDATE_SCM_RESULT, build.getScmResult() );
}
}
catch ( ContinuumStoreException e )
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java Mon Jul 18 19:30:49 2005
@@ -167,6 +167,8 @@
ContinuumBuild build = (ContinuumBuild) context.get( ContinuumNotificationDispatcher.CONTEXT_BUILD );
+ String buildOutput = (String) context.get( ContinuumNotificationDispatcher.CONTEXT_BUILD_OUTPUT );
+
// ----------------------------------------------------------------------
// If there wasn't any building done, don't notify
// ----------------------------------------------------------------------
@@ -184,7 +186,12 @@
{
if ( source.equals( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE ) )
{
- buildComplete( project, build, source, recipients, configuration );
+ buildComplete( project,
+ build,
+ buildOutput,
+ source,
+ recipients,
+ configuration );
}
}
catch ( ContinuumException e )
@@ -195,6 +202,7 @@
private void buildComplete( ContinuumProject project,
ContinuumBuild build,
+ String buildOutput,
String source,
Set recipients,
Map configuration )
@@ -234,6 +242,8 @@
context.put( "project", project );
context.put( "build", build );
+
+ context.put( "buildOutput", buildOutput );
context.put( "previousBuild", previousBuild );
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java Mon Jul 18 19:30:49 2005
@@ -10,7 +10,6 @@
import org.codehaus.plexus.logging.Logger;
import java.util.Iterator;
-import java.util.Map;
import java.util.Set;
/**
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/AbstractContinuumStore.java Mon Jul 18 19:30:49 2005
@@ -16,7 +16,13 @@
* limitations under the License.
*/
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.maven.continuum.configuration.ConfigurationService;
+
import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.FileUtils;
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
@@ -26,4 +32,62 @@
extends AbstractLogEnabled
implements ContinuumStore
{
+ /** @plexus.requirement */
+ private ConfigurationService configurationService;
+
+ public void setBuildOutput( String buildId, String output )
+ throws ContinuumStoreException
+ {
+ File file = getOutputFile( buildId );
+
+ getLogger().warn( "Writing the build output to: " + file.getAbsolutePath() );
+
+ try
+ {
+ FileUtils.fileWrite( file.getAbsolutePath(), output );
+ }
+ catch ( IOException e )
+ {
+ throw new ContinuumStoreException( "Could not write the build output to file: " +
+ "'" + file.getAbsolutePath() + "'.", e );
+ }
+ }
+
+ public String getBuildOutput( String buildId )
+ throws ContinuumStoreException
+ {
+ File file = getOutputFile( buildId );
+
+ try
+ {
+ return FileUtils.fileRead( file.getAbsolutePath() );
+ }
+ catch ( IOException e )
+ {
+ getLogger().warn( "Error reading build output for build '" + buildId + "'.", e );
+
+ return null;
+ }
+ }
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ private File getOutputFile( String buildId )
+ throws ContinuumStoreException
+ {
+ File dir = new File( configurationService.getBuildOutputDirectory(),
+ getProjectForBuild( buildId ).getId() );
+
+ if ( !dir.exists() && !dir.mkdirs() )
+ {
+ throw new ContinuumStoreException( "Could not make the build output directory: " +
+ "'" + dir.getAbsolutePath() + "'." );
+ }
+
+ File file = new File( dir, buildId + ".log.txt" );
+
+ return file;
+ }
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java Mon Jul 18 19:30:49 2005
@@ -1,14 +1,25 @@
package org.apache.maven.continuum.store;
-import org.apache.maven.continuum.project.ContinuumBuild;
-import org.apache.maven.continuum.project.ContinuumProject;
-import org.apache.maven.continuum.project.ContinuumProjectState;
-import org.apache.maven.continuum.project.ContinuumSchedule;
-import org.apache.maven.continuum.scm.ScmResult;
-import org.codehaus.plexus.jdo.JdoFactory;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
import javax.jdo.Extent;
import javax.jdo.JDOObjectNotFoundException;
@@ -17,17 +28,23 @@
import javax.jdo.PersistenceManagerFactory;
import javax.jdo.Query;
import javax.jdo.Transaction;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
+
+import org.apache.maven.continuum.project.ContinuumBuild;
+import org.apache.maven.continuum.project.ContinuumProject;
+import org.apache.maven.continuum.project.ContinuumProjectState;
+import org.apache.maven.continuum.project.ContinuumSchedule;
+import org.apache.maven.continuum.scm.ScmResult;
+
+import org.codehaus.plexus.jdo.JdoFactory;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
*/
public class JdoContinuumStore
- extends AbstractLogEnabled
+ extends AbstractContinuumStore
implements ContinuumStore, Initializable
{
/**
@@ -283,7 +300,7 @@
{
tx.begin();
- ContinuumProject project = getContinuumProject( pm, projectId );
+ ContinuumProject project = getContinuumProject( pm, projectId, true );
project = (ContinuumProject) pm.detachCopy( project );
@@ -301,6 +318,33 @@
}
}
+ public ContinuumProject getProjectForBuild( String buildId )
+ throws ContinuumStoreException
+ {
+ PersistenceManager pm = pmf.getPersistenceManager();
+
+ Transaction tx = pm.currentTransaction();
+
+ try
+ {
+ tx.begin();
+
+ ContinuumBuild build = getContinuumBuild( pm, buildId );
+
+ String projectId = build.getProject().getId();
+
+ ContinuumProject project = getContinuumProject( pm, projectId, true );
+
+ commit( tx );
+
+ return project;
+ }
+ finally
+ {
+ rollback( tx );
+ }
+ }
+
public ScmResult getScmResultForProject( String projectId )
throws ContinuumStoreException
{
@@ -312,7 +356,7 @@
{
tx.begin();
- ContinuumProject project = getContinuumProject( pm, projectId );
+ ContinuumProject project = getContinuumProject( pm, projectId, false );
ScmResult scmResult = project.getScmResult();
@@ -373,7 +417,7 @@
{
tx.begin();
- ContinuumSchedule schedule = getContinuumSchedule( pm, projectId );
+ ContinuumSchedule schedule = getContinuumSchedule( pm, projectId, true );
schedule = (ContinuumSchedule) pm.detachCopy( schedule );
@@ -391,15 +435,6 @@
}
}
- private ContinuumSchedule getContinuumSchedule( PersistenceManager pm, String projectId )
- {
- pm.getFetchPlan().addGroup( "schedule-detail" );
-
- Object id = pm.newObjectIdInstance( ContinuumSchedule.class, projectId );
-
- return (ContinuumSchedule) pm.getObjectById( id );
- }
-
public Collection getSchedules()
throws ContinuumStoreException
{
@@ -502,7 +537,7 @@
{
tx.begin();
- ContinuumProject project = getContinuumProject( pm, projectId );
+ ContinuumProject project = getContinuumProject( pm, projectId, false );
build.setProject( project );
@@ -570,7 +605,7 @@
{
tx.begin();
- ContinuumProject project = getContinuumProject( pm, projectId );
+ ContinuumProject project = getContinuumProject( pm, projectId, false );
String buildId = project.getLatestBuildId();
@@ -643,7 +678,7 @@
{
tx.begin();
- ContinuumBuild build = getContinuumBuild( pm, buildId );
+ ContinuumBuild build = getContinuumBuild( pm, buildId );
ScmResult scmResult = build.getScmResult();
@@ -703,9 +738,14 @@
//
// ----------------------------------------------------------------------
- private ContinuumProject getContinuumProject( PersistenceManager pm, String projectId )
+ private ContinuumProject getContinuumProject( PersistenceManager pm,
+ String projectId,
+ boolean details )
{
- pm.getFetchPlan().addGroup( "project-detail" );
+ if ( details )
+ {
+ pm.getFetchPlan().addGroup( "project-detail" );
+ }
Object id = pm.newObjectIdInstance( ContinuumProject.class, projectId );
@@ -714,13 +754,28 @@
return project;
}
- private ContinuumBuild getContinuumBuild( PersistenceManager pm, String buildId )
+ private ContinuumBuild getContinuumBuild( PersistenceManager pm,
+ String buildId )
{
Object id = pm.newObjectIdInstance( ContinuumBuild.class, buildId );
ContinuumBuild build = (ContinuumBuild) pm.getObjectById( id );
return build;
+ }
+
+ private ContinuumSchedule getContinuumSchedule( PersistenceManager pm,
+ String projectId,
+ boolean details )
+ {
+ if ( details )
+ {
+ pm.getFetchPlan().addGroup( "schedule-detail" );
+ }
+
+ Object id = pm.newObjectIdInstance( ContinuumSchedule.class, projectId );
+
+ return (ContinuumSchedule) pm.getObjectById( id );
}
private Object makePersistent( PersistenceManager pm, Object object )
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/DefaultShellCommandHelper.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/DefaultShellCommandHelper.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/DefaultShellCommandHelper.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/DefaultShellCommandHelper.java Mon Jul 18 19:30:49 2005
@@ -76,21 +76,17 @@
//
// ----------------------------------------------------------------------
- CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
+ CommandLineUtils.StringStreamConsumer consumer = new CommandLineUtils.StringStreamConsumer();
- CommandLineUtils.StringStreamConsumer stdout = new CommandLineUtils.StringStreamConsumer();
-
- int exitCode = CommandLineUtils.executeCommandLine( cl, stdout, stderr );
+ int exitCode = CommandLineUtils.executeCommandLine( cl, consumer, consumer );
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
- String out = stdout.getOutput();
-
- String err = stderr.getOutput();
+ String output = consumer.getOutput();
- ExecutionResult result = new ExecutionResult( out, err, exitCode );
+ ExecutionResult result = new ExecutionResult( output, exitCode );
return result;
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/ExecutionResult.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/ExecutionResult.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/ExecutionResult.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/ExecutionResult.java Mon Jul 18 19:30:49 2005
@@ -22,29 +22,20 @@
*/
public class ExecutionResult
{
- private String standardOutput;
-
- private String standardError;
+ private String output;
private int exitCode;
- public ExecutionResult( String standardOutput, String standardError, int exitCode )
+ public ExecutionResult( String output, int exitCode )
{
- this.standardOutput = standardOutput;
-
- this.standardError = standardError;
+ this.output = output;
this.exitCode = exitCode;
}
- public String getStandardOutput()
- {
- return standardOutput;
- }
-
- public String getStandardError()
+ public String getOutput()
{
- return standardError;
+ return output;
}
public int getExitCode()
Modified: maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml Mon Jul 18 19:30:49 2005
@@ -38,6 +38,7 @@
<implementation>org.apache.maven.continuum.configuration.DefaultConfigurationService</implementation>
<configuration>
<source>${plexus.home}/conf/configuration.xml</source>
+ <application-home>${plexus.home}</application-home>
</configuration>
</component>
@@ -134,6 +135,9 @@
<requirement>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
</requirement>
+ <requirement>
+ <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
+ </requirement>
</requirements>
</component>
@@ -148,6 +152,9 @@
<requirement>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
</requirement>
+ <requirement>
+ <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
+ </requirement>
</requirements>
</component>
@@ -158,6 +165,9 @@
<requirements>
<requirement>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
</requirement>
</requirements>
</component>
Modified: maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm (original)
+++ maven/continuum/trunk/continuum-core/src/main/resources/org/apache/maven/continuum/notification/mail/templates/common.vm Mon Jul 18 19:30:49 2005
@@ -46,23 +46,14 @@
$build.error
#else
****************************************************************************
-Standard Output:
+Output:
****************************************************************************
-#if ( $build.standardOutput && $build.standardOutput != "" )
-$build.standardOutput
+#if ( $build.output && $build.output != "" )
+$build.output
#else
-There was no content on standard output.
+There was no output.
#end
****************************************************************************
-****************************************************************************
-Standard Error:
-****************************************************************************
-#if( $build.standardError && $build.standardError != "" )
-$build.standardError
-#else
-There was no content on standard error.
-#end
-****************************************************************************
#end
#end ## #macro( shellBuildResult )
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AbstractContinuumTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AbstractContinuumTest.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AbstractContinuumTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AbstractContinuumTest.java Mon Jul 18 19:30:49 2005
@@ -16,28 +16,32 @@
* limitations under the License.
*/
-import java.util.List;
-import java.util.Properties;
import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
+import java.util.Properties;
+import java.io.File;
+import java.io.IOException;
-import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
import org.apache.maven.continuum.execution.ContinuumBuildExecutionResult;
-import org.apache.maven.continuum.execution.shell.ShellBuildExecutor;
+import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
import org.apache.maven.continuum.execution.maven.m2.MavenTwoBuildExecutor;
-import org.apache.maven.continuum.project.MavenTwoProject;
+import org.apache.maven.continuum.execution.shell.ShellBuildExecutor;
+import org.apache.maven.continuum.project.ContinuumBuild;
import org.apache.maven.continuum.project.ContinuumNotifier;
import org.apache.maven.continuum.project.ContinuumProject;
-import org.apache.maven.continuum.project.ShellProject;
-import org.apache.maven.continuum.project.ContinuumBuild;
import org.apache.maven.continuum.project.ContinuumProjectState;
+import org.apache.maven.continuum.project.MavenTwoProject;
+import org.apache.maven.continuum.project.ShellProject;
+import org.apache.maven.continuum.scm.ScmFile;
+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.scm.ScmResult;
-import org.apache.maven.continuum.scm.ScmFile;
import org.apache.maven.continuum.utils.ContinuumUtils;
import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.context.Context;
/**
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
@@ -47,6 +51,39 @@
extends PlexusTestCase
{
// ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ Context context = getContainer().getContext();
+
+ String plexusHome = (String) context.get( "plexus.home" );
+
+ makeConfiguration( plexusHome );
+ }
+
+ public static void makeConfiguration( String plexusHome )
+ throws IOException
+ {
+ File configFile = new File( plexusHome, "conf/configuration.xml" );
+
+ if ( !configFile.getParentFile().exists() &&
+ !configFile.getParentFile().mkdirs() )
+ {
+ throw new IOException( "Could not make directory: '" + configFile.getParentFile() + "'." );
+ }
+
+ FileUtils.fileWrite( configFile.getAbsolutePath(),
+ "<configuration>" +
+ "<build-output-directory>target/build-output</build-output-directory>" +
+ "</configuration>");
+ }
+
+ // ----------------------------------------------------------------------
// Store
// ----------------------------------------------------------------------
@@ -305,11 +342,9 @@
build.setSuccess( result.isSuccess() );
- build.setStandardOutput( result.getStandardOutput() );
-
- build.setStandardError( result.getStandardError() );
-
build.setExitCode( result.getExitCode() );
+
+ store.setBuildOutput( build.getId(), result.getOutput() );
store.updateBuild( build );
}
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcherTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/ContinuumNotificationDispatcherTest.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- 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 Mon Jul 18 19:30:49 2005
@@ -46,6 +46,7 @@
build.setForced( false );
String buildId = store.addBuild( projectId, build );
- notificationDispatcher.buildComplete( store.getProject( projectId ), store.getBuild( buildId ) );
+ notificationDispatcher.buildComplete( store.getProject( projectId ),
+ store.getBuild( buildId ) );
}
}
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifierTest.java Mon Jul 18 19:30:49 2005
@@ -51,11 +51,9 @@
ContinuumBuild build = makeBuild( ContinuumProjectState.OK );
- build.setStandardOutput( "stdout" );
-
- build.setStandardError( "stderr" );
-
- MailMessage mailMessage = sendNotificationAndGetMessage( project, build );
+ MailMessage mailMessage = sendNotificationAndGetMessage( project,
+ build,
+ "lots out build output" );
dumpContent( mailMessage );
}
@@ -67,9 +65,9 @@
ContinuumBuild build = makeBuild( ContinuumProjectState.FAILED );
- MailMessage mailMessage = sendNotificationAndGetMessage( project, build );
-
- build.setStandardOutput( "stdout" );
+ MailMessage mailMessage = sendNotificationAndGetMessage( project,
+ build,
+ "output" );
dumpContent( mailMessage );
}
@@ -81,18 +79,21 @@
ContinuumBuild build = makeBuild( ContinuumProjectState.ERROR );
- build.setStandardError( "stderr" );
-
build.setError( "Big long error message" );
- MailMessage mailMessage = sendNotificationAndGetMessage( project, build );
+ MailMessage mailMessage = sendNotificationAndGetMessage( project,
+ build,
+ "lots of stack traces" );
dumpContent( mailMessage );
}
private void dumpContent( MailMessage mailMessage )
{
-// System.err.println( mailMessage.getContent() );
+ if ( false )
+ {
+ System.err.println( mailMessage.getContent() );
+ }
}
// ----------------------------------------------------------------------
@@ -100,7 +101,8 @@
// ----------------------------------------------------------------------
private MailMessage sendNotificationAndGetMessage( ContinuumProject project,
- ContinuumBuild build )
+ ContinuumBuild build,
+ String buildOutput )
throws Exception
{
Set recipients = new HashSet();
@@ -112,6 +114,8 @@
context.put( ContinuumNotificationDispatcher.CONTEXT_PROJECT, project );
context.put( ContinuumNotificationDispatcher.CONTEXT_BUILD, build );
+
+ context.put( ContinuumNotificationDispatcher.CONTEXT_BUILD_OUTPUT, buildOutput );
context.put( "buildHost", "foo.bar.com" );
Modified: maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java (original)
+++ maven/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTest.java Mon Jul 18 19:30:49 2005
@@ -340,7 +340,7 @@
setBuildResult( store,
buildId,
ContinuumProjectState.OK,
- makeContinuumBuildExecutionResult( true, "", "", 0 ),
+ makeContinuumBuildExecutionResult( true, "", 0 ),
scmResult,
null );
@@ -348,13 +348,11 @@
}
private ContinuumBuildExecutionResult makeContinuumBuildExecutionResult( boolean success,
- String standardOutput,
- String standardError,
+ String output,
int exitCode )
{
return new ContinuumBuildExecutionResult( success,
- standardOutput,
- standardError,
+ output,
exitCode );
}
@@ -470,7 +468,7 @@
setBuildComplete( store,
buildId,
scmResult,
- makeContinuumBuildExecutionResult( true, "stdout", "stderr", 10 ) );
+ makeContinuumBuildExecutionResult( true, "output", 10 ) );
// ----------------------------------------------------------------------
// Store and check the build object
@@ -501,12 +499,10 @@
build.setSuccess( result.isSuccess() );
- build.setStandardOutput( result.getStandardOutput() );
-
- build.setStandardError( result.getStandardError() );
-
build.setExitCode( result.getExitCode() );
+ store.setBuildOutput( buildId, "output" );
+
store.updateBuild( build );
}
@@ -641,7 +637,7 @@
setBuildResult( store,
buildId,
ContinuumProjectState.OK,
- makeContinuumBuildExecutionResult( true, "output", "error", 1 ),
+ makeContinuumBuildExecutionResult( true, "output", 1 ),
scmResult,
null );
@@ -653,9 +649,7 @@
assertEquals( 1, build.getExitCode() );
- assertEquals( "output", build.getStandardOutput() );
-
- assertEquals( "error", build.getStandardError() );
+ assertEquals( "output", store.getBuildOutput( buildId ) );
}
// ----------------------------------------------------------------------
Modified: maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo (original)
+++ maven/continuum/trunk/continuum-model/src/main/resources/META-INF/package.jdo Mon Jul 18 19:30:49 2005
@@ -29,7 +29,7 @@
<!-- Collections -->
<field name="builds" persistence-modifier="persistent">
<collection element-type="ContinuumBuild" dependent-element="true"/>
- </field>
+ </field>
<field name="developers" persistence-modifier="persistent">
<collection element-type="ContinuumDeveloper" dependent-element="true"/>
</field>
@@ -49,26 +49,26 @@
<field name="developers"/>
<field name="notifiers"/>
<field name="dependencies"/>
- <field name="schedules"/>
+ <field name="schedules"/>
</fetch-group>
</class>
<class name="ContinuumSchedule" detachable="true" identity-type="application">
- <field name="projects" persistence-modifier="persistent" mapped-by="schedules">
+ <field name="projects" persistence-modifier="persistent" mapped-by="schedules">
<collection element-type="ContinuumProject"/>
</field>
- <field name="id" persistence-modifier="persistent" primary-key="true" value-strategy="native"/>
+ <field name="id" persistence-modifier="persistent" null-value="exception" primary-key="true" value-strategy="native"/>
<field name="name" persistence-modifier="persistent"/>
<field name="description" persistence-modifier="persistent"/>
<field name="active" persistence-modifier="persistent"/>
- <field name="scmMode" persistence-modifier="persistent"/>
- <field name="delay" persistence-modifier="persistent"/>
+ <field name="scmMode" persistence-modifier="persistent"/>
+ <field name="delay" persistence-modifier="persistent"/>
<field name="cronExpression" persistence-modifier="persistent"/>
<fetch-group name="schedule-detail">
<field name="projects"/>
</fetch-group>
</class>
-
+
<class name="ContinuumNotifier" detachable="true" identity-type="datastore">
<field name="type" persistence-modifier="persistent"/>
<field name="configuration" persistence-modifier="persistent" default-fetch-group="true">
@@ -114,12 +114,6 @@
<extension vendor-name="jpox" key="length" value="max 8000"/>
</field>
<field name="success" persistence-modifier="persistent"/>
- <field name="standardOutput" persistence-modifier="persistent">
- <extension vendor-name="jpox" key="length" value="max 8000"/>
- </field>
- <field name="standardError" persistence-modifier="persistent">
- <extension vendor-name="jpox" key="length" value="max 8000"/>
- </field>
<field name="exitCode" persistence-modifier="persistent"/>
<field name="scmResult" persistence-modifier="persistent" default-fetch-group="true" dependent="true"/>
</class>
Modified: maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo (original)
+++ maven/continuum/trunk/continuum-model/src/main/resources/continuum.mdo Mon Jul 18 19:30:49 2005
@@ -15,7 +15,7 @@
|
|-->
<classes>
- <class rootElement="true" stash.storable="true" java.abstract="true"><!-- -->
+ <class rootElement="true" stash.storable="true" java.abstract="true">
<name>ContinuumProject</name>
<version>1.0.0</version>
<fields>
@@ -428,16 +428,6 @@
<name>success</name>
<version>1.0.0</version>
<type>boolean</type>
- </field>
- <field stash.maxSize="8000">
- <name>standardOutput</name>
- <version>1.0.0</version>
- <type>String</type>
- </field>
- <field stash.maxSize="8000">
- <name>standardError</name>
- <version>1.0.0</version>
- <type>String</type>
</field>
<field>
<name>exitCode</name>
Modified: maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/ProjectBuild.vm
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/ProjectBuild.vm?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/ProjectBuild.vm (original)
+++ maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/ProjectBuild.vm Mon Jul 18 19:30:49 2005
@@ -48,26 +48,15 @@
</div>
</p>
#else
- <h4>Standard Output</h4>
+ <h4>Output</h4>
<p>
-#if ( $build.standardOutput && $build.standardOutput != "" )
+#if ( $build.output && $build.output != "" )
<div style="width:100%; height:500px; overflow:auto; border-style: solid; border-width: 1px">
- <code><pre>$build.standardOutput</pre></code>
+ <code><pre>$build.output</pre></code>
</div>
#else
-No output on standard output
+No output.
#end
- </p>
-
- <h4>Standard Error</h4>
- <p>
- #if ( $build.standardError && $build.standardError != "" )
- <div style="width:100%; height:200px; overflow:auto; border-style: solid; border-width: 1px">
- <code><pre>$build.standardError</pre></code>
- </div>
- #else
- No output on standard error
- #end
</p>
#end
Modified: maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/Build.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/Build.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/Build.java (original)
+++ maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/Build.java Mon Jul 18 19:30:49 2005
@@ -10,10 +10,8 @@
private Date startTime;
private Date endTime;
private String error;
- private String standardOutput;
- private String standardError;
private int exitCode;
-
+
private ScmResult scmResult;
public Date getEndTime()
@@ -64,26 +62,6 @@
public void setId(String id)
{
this.id = id;
- }
-
- public String getStandardError()
- {
- return standardError;
- }
-
- public void setStandardError(String standardError)
- {
- this.standardError = standardError;
- }
-
- public String getStandardOutput()
- {
- return standardOutput;
- }
-
- public void setStandardOutput(String standardOutput)
- {
- this.standardOutput = standardOutput;
}
public Date getStartTime()
Modified: maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/DelegatingContinuumWebService.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/DelegatingContinuumWebService.java?rev=219599&r1=219598&r2=219599&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/DelegatingContinuumWebService.java (original)
+++ maven/continuum/trunk/continuum-xfire/src/main/java/org/apache/maven/continuum/xfire/DelegatingContinuumWebService.java Mon Jul 18 19:30:49 2005
@@ -36,7 +36,7 @@
public class DelegatingContinuumWebService
implements ContinuumWebService
{
- Continuum continuum;
+ Continuum continuum;
public void checkoutProject(String id)
throws XFireFault
@@ -70,9 +70,9 @@
{
ShellProject project = new ShellProject();
project.setExecutable(projectInfo.getExecutable());
-
+
convertToLocal(projectInfo, project);
-
+
return continuum.addShellProject(project);
}
else if (projectInfo.getType().equals("ant"))
@@ -80,15 +80,15 @@
AntProject project = new AntProject();
project.setExecutable(projectInfo.getExecutable());
project.setTargets(projectInfo.getTargets());
-
+
convertToLocal(projectInfo, project);
-
+
return continuum.addAntProject(project);
}
else
{
- throw new XFireFault("Invalid project type: " + projectInfo.getType() +
- ". Must be maven-one, maven-two, shell, or ant.",
+ throw new XFireFault("Invalid project type: " + projectInfo.getType() +
+ ". Must be maven-one, maven-two, shell, or ant.",
XFireFault.SENDER);
}
}
@@ -96,13 +96,12 @@
{
if (e instanceof XFireFault)
throw (XFireFault) e;
-
+
throw new XFireFault(e);
}
}
private void convertToLocal(Project info, ContinuumProject project)
- throws XFireFault
{
project.setName(info.getName());
project.setVersion(info.getVersion());
@@ -129,12 +128,12 @@
{
Collection localBuilds = continuum.getBuildsForProject(projectId);
ArrayList builds = new ArrayList();
-
+
for (Iterator itr = localBuilds.iterator(); itr.hasNext();)
{
builds.add(convertToRemote((ContinuumBuild) itr.next()));
}
-
+
return builds;
}
catch (ContinuumException e)
@@ -149,11 +148,11 @@
{
try
{
- org.apache.maven.continuum.scm.ScmResult localCSR =
+ org.apache.maven.continuum.scm.ScmResult localCSR =
continuum.getScmResultForProject(projectId);
-
+
if (localCSR == null) return null;
-
+
return convertToRemote(localCSR);
}
catch (ContinuumException e)
@@ -167,9 +166,9 @@
try
{
ContinuumBuild build = continuum.getLatestBuildForProject(projectId);
-
+
if (build == null) return null;
-
+
return convertToRemote(build);
}
catch (ContinuumException e)
@@ -188,8 +187,6 @@
remBuild.setExitCode(build.getExitCode());
remBuild.setForced(build.isForced());
remBuild.setId(build.getId());
- remBuild.setStandardError(build.getStandardError());
- remBuild.setStandardOutput(build.getStandardOutput());
remBuild.setState(build.getState());
remBuild.setScmResult(convertToRemote(build.getScmResult()));
return remBuild;
@@ -201,7 +198,7 @@
result.setCommandOutput(localUSR.getCommandOutput());
result.setProviderMessage(localUSR.getProviderMessage());
result.setSuccess(localUSR.isSuccess());
-
+
ArrayList files = new ArrayList();
for (Iterator itr = localUSR.getFiles().iterator(); itr.hasNext();)
{
@@ -209,7 +206,7 @@
files.add(file.getPath());
}
result.setFiles(files);
-
+
return result;
}
@@ -231,10 +228,10 @@
throws XFireFault
{
Project projectInfo = convertToRemote(project);
-
+
return projectInfo;
}
-
+
private void convertToRemote(ContinuumProject project, Project projectInfo)
throws XFireFault
{
@@ -261,7 +258,7 @@
}
else
{
- throw new XFireFault("Invalid project type for id " + project.getId(),
+ throw new XFireFault("Invalid project type for id " + project.getId(),
XFireFault.SENDER);
}
@@ -276,7 +273,7 @@
try
{
Collection projects = continuum.getProjects();
-
+
List infos = new ArrayList();
for (Iterator itr = projects.iterator(); itr.hasNext();)
{
@@ -311,9 +308,9 @@
try
{
ContinuumProject project = continuum.getProject(projectInfo.getId());
-
+
convertToLocal(projectInfo, project);
-
+
if (project instanceof MavenOneProject)
{
continuum.updateMavenOneProject((MavenOneProject)project);
@@ -343,14 +340,14 @@
try
{
ContinuumProjectBuildingResult result = continuum.addMavenTwoProject(url);
-
+
if (result.getWarnings().size() > 0)
{
throw new XFireFault(result.getWarnings().toString(), XFireFault.SENDER);
}
-
+
List projects = new ArrayList();
-
+
for (Iterator itr = result.getProjects().iterator(); itr.hasNext();)
{
ContinuumProject project = (ContinuumProject) itr.next();
@@ -371,14 +368,14 @@
try
{
ContinuumProjectBuildingResult result = continuum.addMavenOneProject(url);
-
+
if (result.getWarnings().size() > 0)
{
throw new XFireFault(result.getWarnings().toString(), XFireFault.SENDER);
}
-
+
List projects = new ArrayList();
-
+
for (Iterator itr = result.getProjects().iterator(); itr.hasNext();)
{
ContinuumProject project = (ContinuumProject) itr.next();
@@ -398,7 +395,7 @@
{
Project remote = new Project();
remote.setId(project.getId());
-
+
convertToRemote(project, remote);
return remote;
}