You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2010/01/29 00:34:30 UTC
svn commit: r904304 - in /continuum/trunk:
continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/
continuum-release/ continuum-release/src/main/mdo/
continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/
Author: ctan
Date: Thu Jan 28 23:34:29 2010
New Revision: 904304
URL: http://svn.apache.org/viewvc?rev=904304&view=rev
Log:
[CONTINUUM-2450] [CONTINUUM-2450] removed if-else which is the cause why the prepared-releases.xml is not populated during the first release of any project on a fresh installation of continuum. also made sure that the prepared-releases.xml is updated every release
Modified:
continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java
continuum/trunk/continuum-release/pom.xml
continuum/trunk/continuum-release/src/main/mdo/prepared-releases.mdo
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java?rev=904304&r1=904303&r2=904304&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java Thu Jan 28 23:34:29 2010
@@ -155,6 +155,7 @@
try
{
SlaveBuildAgentTransportClient client = new SlaveBuildAgentTransportClient( new URL( buildAgentUrl ) );
+
String releaseId =
client.releasePrepare( createProjectMap( project ), createPropertiesMap( releaseProperties ),
releaseVersion, developmentVersion, environments, username );
@@ -298,6 +299,18 @@
boolean useReleaseProfile, LocalRepository repository, String username )
throws ContinuumReleaseException, BuildAgentConfigurationException
{
+ List<PreparedRelease> releases = getPreparedReleases();
+
+ for ( PreparedRelease release: releases )
+ {
+ if ( release.getReleaseId().equals( releaseId ) )
+ {
+ release.setReleaseType( "perform" );
+ savePreparedReleases( releases );
+ break;
+ }
+ }
+
String buildAgentUrl = getBuildAgentUrl( releaseId );
if ( !checkBuildAgent( buildAgentUrl ) )
@@ -442,6 +455,8 @@
String result = client.releaseCleanup( releaseId );
removeFromReleaseInProgress( releaseId );
+ removeFromPreparedReleases( releaseId );
+
return result;
}
catch ( MalformedURLException e )
@@ -636,17 +651,11 @@
private void addReleasePrepare( String releaseId, String buildAgentUrl, String releaseName )
throws ContinuumReleaseException
{
- File file = getPreparedReleasesFile();
-
- if ( !file.exists() )
- {
- file.getParentFile().mkdirs();
- }
-
PreparedRelease release = new PreparedRelease();
release.setReleaseId( releaseId );
release.setBuildAgentUrl( buildAgentUrl );
release.setReleaseName( releaseName );
+ release.setReleaseType( "prepare" );
List<PreparedRelease> preparedReleases = getPreparedReleases();
@@ -654,41 +663,25 @@
{
preparedReleases = new ArrayList<PreparedRelease>();
}
- else
- {
- boolean found = false;
- for ( PreparedRelease preparedRelease : preparedReleases )
- {
- if ( preparedRelease.getReleaseId().equals( release.getReleaseId() ) &&
- preparedRelease.getReleaseName().equals( release.getReleaseName() ) )
- {
- preparedRelease.setBuildAgentUrl( release.getBuildAgentUrl() );
- found = true;
- }
- }
+ boolean found = false;
- if ( !found )
+ for ( PreparedRelease preparedRelease : preparedReleases )
+ {
+ if ( preparedRelease.getReleaseId().equals( release.getReleaseId() ) &&
+ preparedRelease.getReleaseName().equals( release.getReleaseName() ) )
{
- preparedReleases.add( release );
+ preparedRelease.setBuildAgentUrl( release.getBuildAgentUrl() );
+ found = true;
}
}
- PreparedReleaseModel model = new PreparedReleaseModel();
- model.setPreparedReleases( preparedReleases );
-
- try
- {
- ContinuumPrepareReleasesModelXpp3Writer writer = new ContinuumPrepareReleasesModelXpp3Writer();
- FileWriter fileWriter = new FileWriter( file );
- writer.write( fileWriter, model );
- fileWriter.flush();
- fileWriter.close();
- }
- catch ( IOException e )
+ if ( !found )
{
- throw new ContinuumReleaseException( "Failed to write prepared releases in file", e );
+ preparedReleases.add( release );
}
+
+ savePreparedReleases( preparedReleases );
}
private void addReleaseInProgress( String releaseId, String releaseType, int projectId, String username )
@@ -751,4 +744,61 @@
log.info( "Build agent: " + buildAgentUrl + " is either disabled or removed" );
return false;
}
+
+ private void removeFromPreparedReleases( String releaseId )
+ throws ContinuumReleaseException
+ {
+ List<PreparedRelease> releases = getPreparedReleases();
+
+ for ( PreparedRelease release : releases )
+ {
+ if ( release.getReleaseId().equals( releaseId ) )
+ {
+ if ( release.getReleaseType().equals( "perform" ) )
+ {
+ releases.remove( release );
+ savePreparedReleases( releases );
+ break;
+ }
+ }
+ }
+ }
+
+ private void savePreparedReleases( List<PreparedRelease> preparedReleases)
+ throws ContinuumReleaseException
+ {
+ File file = getPreparedReleasesFile();
+
+ if ( !file.exists() )
+ {
+ file.getParentFile().mkdirs();
+ }
+
+ PreparedReleaseModel model = new PreparedReleaseModel();
+ model.setPreparedReleases( preparedReleases );
+
+ try
+ {
+ ContinuumPrepareReleasesModelXpp3Writer writer = new ContinuumPrepareReleasesModelXpp3Writer();
+ FileWriter fileWriter = new FileWriter( file );
+ writer.write( fileWriter, model );
+ fileWriter.flush();
+ fileWriter.close();
+ }
+ catch ( IOException e )
+ {
+ throw new ContinuumReleaseException( "Failed to write prepared releases in file", e );
+ }
+ }
+
+ // for testing
+ public void setBuildResultDao( BuildResultDao buildResultDao )
+ {
+ this.buildResultDao = buildResultDao;
+ }
+
+ public void setConfigurationService( ConfigurationService configurationService )
+ {
+ this.configurationService = configurationService;
+ }
}
\ No newline at end of file
Modified: continuum/trunk/continuum-release/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/pom.xml?rev=904304&r1=904303&r2=904304&view=diff
==============================================================================
--- continuum/trunk/continuum-release/pom.xml (original)
+++ continuum/trunk/continuum-release/pom.xml Thu Jan 28 23:34:29 2010
@@ -121,7 +121,7 @@
<models>
<model>src/main/mdo/prepared-releases.mdo</model>
</models>
- <version>1.0.0</version>
+ <version>1.4.0</version>
<useJava5>true</useJava5>
</configuration>
<executions>
Modified: continuum/trunk/continuum-release/src/main/mdo/prepared-releases.mdo
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/mdo/prepared-releases.mdo?rev=904304&r1=904303&r2=904304&view=diff
==============================================================================
--- continuum/trunk/continuum-release/src/main/mdo/prepared-releases.mdo (original)
+++ continuum/trunk/continuum-release/src/main/mdo/prepared-releases.mdo Thu Jan 28 23:34:29 2010
@@ -29,11 +29,11 @@
<classes>
<class rootElement="true" xml.tagName="prepared-releases">
<name>PreparedReleaseModel</name>
- <version>1.0.0</version>
+ <version>1.0.0+</version>
<fields>
<field>
<name>preparedReleases</name>
- <version>1.0.0</version>
+ <version>1.0.0+</version>
<description></description>
<required>true</required>
<association>
@@ -45,29 +45,36 @@
</class>
<class>
<name>PreparedRelease</name>
- <version>1.0.0</version>
+ <version>1.0.0+</version>
<fields>
<field>
<name>releaseId</name>
- <version>1.0.0</version>
+ <version>1.0.0+</version>
<required>true</required>
<description>release id</description>
<type>String</type>
</field>
<field>
<name>releaseName</name>
- <version>1.0.0</version>
+ <version>1.0.0+</version>
<required>true</required>
<description>prepared release name</description>
<type>String</type>
</field>
<field>
<name>buildAgentUrl</name>
- <version>1.0.0</version>
+ <version>1.0.0+</version>
<required>true</required>
<description>build agent url</description>
<type>String</type>
</field>
+ <field>
+ <name>releaseType</name>
+ <version>1.4.0+</version>
+ <required>true</required>
+ <description>type of release. possible values are "prepare" or "perform"</description>
+ <type>String</type>
+ </field>
</fields>
</class>
</classes>
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java?rev=904304&r1=904303&r2=904304&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java Thu Jan 28 23:34:29 2010
@@ -96,7 +96,7 @@
List<String> args = new ArrayList<String>();
args.add( e.getMessage() );
- addActionError( getText( "releaseInProgress.error", args ) );
+ addActionError( getText( "distributedBuild.releaseInProgress.error", args ) );
return ERROR;
}