Skip to content

Commit

Permalink
bug fix on empty release results appearing and some other minor bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
Edwin L. Punzalan committed Sep 20, 2006
1 parent 848c726 commit 358ab50
Show file tree
Hide file tree
Showing 9 changed files with 116 additions and 24 deletions.
Expand Up @@ -38,6 +38,8 @@ public void executeTask( Task task )
{
PerformReleaseProjectTask performTask = (PerformReleaseProjectTask) task;

ReleaseManagerListener listener = performTask.getListener();

ReleaseDescriptor descriptor = performTask.getDescriptor();

Settings settings;
Expand All @@ -47,6 +49,14 @@ public void executeTask( Task task )
}
catch ( ContinuumReleaseException e )
{
ReleaseResult result = new ReleaseResult();

result.appendError( e );

continuumReleaseManager.getReleaseResults().put( performTask.getReleaseId(), result );

listener.error( e.getMessage() );

throw new TaskExecutionException( "Failed to build reactor projects.", e );
}

Expand All @@ -57,21 +67,27 @@ public void executeTask( Task task )
}
catch ( ContinuumReleaseException e )
{
ReleaseResult result = new ReleaseResult();

result.appendError( e );

continuumReleaseManager.getReleaseResults().put( performTask.getReleaseId(), result );

listener.error( e.getMessage() );

throw new TaskExecutionException( "Failed to build reactor projects.", e );
}

ReleaseManagerListener listener = performTask.getListener();

ReleaseResult result =
releasePluginManager.performWithResult( descriptor, settings, reactorProjects,
performTask.getBuildDirectory(), performTask.getGoals(),
performTask.isUseReleaseProfile(), listener );

if ( result.getResultCode() == ReleaseResult.SUCCESS )
{
continuumReleaseManager.getReleaseResults().put( performTask.getReleaseId(), result );

continuumReleaseManager.getPreparedReleases().remove( performTask.getReleaseId() );
}

continuumReleaseManager.getReleaseResults().put( performTask.getReleaseId(), result );
}
}
Expand Up @@ -83,9 +83,9 @@ public void executeTask( Task task )

if ( result.getResultCode() == ReleaseResult.SUCCESS )
{
continuumReleaseManager.getReleaseResults().put( prepareTask.getReleaseId(), result );

continuumReleaseManager.getPreparedReleases().put( prepareTask.getReleaseId(), descriptor );
}

continuumReleaseManager.getReleaseResults().put( prepareTask.getReleaseId(), result );
}
}
Expand Up @@ -18,7 +18,9 @@

import org.apache.maven.continuum.release.tasks.PrepareReleaseProjectTask;
import org.apache.maven.continuum.release.tasks.PerformReleaseProjectTask;
import org.apache.maven.continuum.release.ContinuumReleaseManager;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
import org.apache.maven.plugins.release.ReleaseResult;
import org.apache.maven.scm.manager.NoSuchScmProviderException;
import org.apache.maven.scm.manager.ScmManager;
import org.apache.maven.scm.repository.ScmRepository;
Expand All @@ -28,6 +30,7 @@
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.taskqueue.Task;
import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;

import java.io.File;

Expand All @@ -37,6 +40,8 @@
public class ReleaseTaskExecutorTest
extends PlexusTestCase
{
private ContinuumReleaseManager releaseManager;

private ScmManager scmManager;

private TaskExecutor prepareExec;
Expand All @@ -62,6 +67,11 @@ protected void setUp()
{
performExec = (TaskExecutor) lookup( TaskExecutor.class.getName(), "perform-release" );
}

if ( releaseManager == null )
{
releaseManager = (ContinuumReleaseManager) lookup( ContinuumReleaseManager.ROLE );
}
}

public void testReleaseSimpleProject()
Expand All @@ -85,7 +95,7 @@ public void testReleaseSimpleProject()
String pom = FileUtils.fileRead( new File( workDir, "pom.xml" ) );
assertTrue( "Test dev version", pom.indexOf( "<version>1.0-SNAPSHOT</version>" ) > 0 );

prepareExec.executeTask( getPrepareTask( "testRelease", descriptor ) );
doPrepareWithNoError( descriptor );

pom = FileUtils.fileRead( new File( workDir, "pom.xml" ) );
assertTrue( "Test version increment", pom.indexOf( "<version>1.1-SNAPSHOT</version>" ) > 0 );
Expand Down Expand Up @@ -121,7 +131,7 @@ public void testReleaseSimpleProjectWithNextVersion()
String pom = FileUtils.fileRead( new File( workDir, "pom.xml" ) );
assertTrue( "Test dev version", pom.indexOf( "<version>1.1-SNAPSHOT</version>" ) > 0 );

prepareExec.executeTask( getPrepareTask( "testRelease", descriptor ) );
doPrepareWithNoError( descriptor );

pom = FileUtils.fileRead( new File( workDir, "pom.xml" ) );
assertTrue( "Test version increment", pom.indexOf( "<version>2.1-SNAPSHOT</version>" ) > 0 );
Expand All @@ -133,7 +143,26 @@ public void testReleaseSimpleProjectWithNextVersion()
pom = FileUtils.fileRead( new File( testDir, "pom.xml" ) );
assertTrue( "Test released version", pom.indexOf( "<version>2.0</version>" ) > 0 );

performExec.executeTask( getPerformTask( "testRelease", descriptor, new File( getBasedir(), "target/test-classes/build-dir" ) ) );
performExec.executeTask( getPerformTask( "testRelease", descriptor,
new File( getBasedir(), "target/test-classes/build-dir" ) ) );

ReleaseResult result = (ReleaseResult) releaseManager.getReleaseResults().get( "testRelease" );
if ( result.getResultCode() != ReleaseResult.SUCCESS )
{
fail( "Error in release:perform. Release output follows: " + result.getOutput() );
}
}

private void doPrepareWithNoError( ReleaseDescriptor descriptor )
throws TaskExecutionException
{
prepareExec.executeTask( getPrepareTask( "testRelease", descriptor ) );

ReleaseResult result = (ReleaseResult) releaseManager.getReleaseResults().get( "testRelease" );
if ( result.getResultCode() != ReleaseResult.SUCCESS )
{
fail( "Error in release:prepare. Release output follows:\n" + result.getOutput() );
}
}

private Task getPrepareTask( String releaseId, ReleaseDescriptor descriptor )
Expand Down
31 changes: 30 additions & 1 deletion continuum/continuum-webapp/pom.xml
Expand Up @@ -7,7 +7,6 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>continuum-webapp</artifactId>
<name>Continuum Web APP</name>
<version>1.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<filters>
Expand Down Expand Up @@ -101,13 +100,33 @@
</excludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>src/main/webapp/WEB-INF</directory>
<includes>
<include>database</include>
<include>temp</include>
<include>logs</include>
<include>working-directory</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.maven.continuum</groupId>
<artifactId>continuum-core</artifactId>
</dependency>
<dependency> <!-- added since depMgt doesn't override imported dependencies -->
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-xwork-integration</artifactId>
Expand Down Expand Up @@ -198,6 +217,15 @@
<groupId>org.apache.maven.continuum</groupId>
<artifactId>continuum-notifier-msn</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven.continuum</groupId>
<artifactId>continuum-xmlrpc</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-xmlrpc</artifactId>
<version>1.0-beta-4</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-mail-sender-javamail</artifactId>
Expand All @@ -224,3 +252,4 @@
</dependency>
</dependencies>
</project>

Expand Up @@ -132,13 +132,20 @@ public String checkProgress()

listener = (ContinuumReleaseManagerListener) releaseManager.getListeners().get( releaseId );

if ( listener.getState() == ContinuumReleaseManagerListener.FINISHED )
if ( listener != null )
{
status = "finished";
if ( listener.getState() == ContinuumReleaseManagerListener.FINISHED )
{
status = "finished";
}
else
{
status = "inProgress";
}
}
else
{
status = "inProgress";
throw new Exception( "There is no release on-going or finished with id: " + releaseId );
}

return status;
Expand Down
Expand Up @@ -84,15 +84,18 @@ public String execute()
scmPassword = project.getScmPassword();
scmTag = project.getScmTag();
String scmUrl = project.getScmUrl();

//skip scm:provider in scm url
int idx = scmUrl.indexOf( ":", 4 ) + 1;
scmUrl = scmUrl.substring( idx );

if ( scmUrl.endsWith( "/trunk" ) )
{
//skip scm:provider in scm url
int idx = scmUrl.indexOf( ":", 4 ) + 1;
scmTagBase = scmUrl.substring( idx , scmUrl.lastIndexOf( "/trunk" ) ) + "/branches";
scmTagBase = scmUrl.substring( 0 , scmUrl.lastIndexOf( "/trunk" ) ) + "/branches";
}
else
{
scmTagBase = scmUrl;
scmTagBase = scmUrl.substring( idx );
}
prepareGoals = "clean integration-test";

Expand Down Expand Up @@ -186,17 +189,24 @@ public String checkProgress()

listener = (ContinuumReleaseManagerListener) releaseManager.getListeners().get( releaseId );

if ( listener.getState() == ContinuumReleaseManagerListener.FINISHED )
if ( listener != null )
{
releaseManager.getListeners().remove( releaseId );
if ( listener.getState() == ContinuumReleaseManagerListener.FINISHED )
{
releaseManager.getListeners().remove( releaseId );

result = (ReleaseResult) releaseManager.getReleaseResults().get( releaseId );
result = (ReleaseResult) releaseManager.getReleaseResults().get( releaseId );

status = "finished";
status = "finished";
}
else
{
status = "inProgress";
}
}
else
{
status = "inProgress";
throw new Exception( "There is no release on-going or finished with id: " + releaseId );
}

return status;
Expand Down
Expand Up @@ -22,6 +22,7 @@
<ww:textfield label="Maven Arguments" name="goals"/>
<ww:checkbox label="Use Release Profile" name="useReleaseProfile" value="true"/>
</table>
</div>
<ww:submit/>
</ww:form>
</body>
Expand Down
Expand Up @@ -37,7 +37,7 @@
</ww:if>
<ww:else>
<div style="width:100%; height:500px; overflow:auto; border-style: solid; border-width: 1px">
<code><pre><ww:property value="result.output"/></pre></code>
<pre><ww:property value="result.output"/></pre>
</div>
</ww:else>
</p>
Expand Down
2 changes: 1 addition & 1 deletion continuum/pom.xml
Expand Up @@ -340,7 +340,7 @@
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>1.2</version>
<version>1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
Expand Down

0 comments on commit 358ab50

Please sign in to comment.