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:04:26 UTC
svn commit: r904294 - in /continuum/branches/continuum-1.3.x:
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/we...
Author: ctan
Date: Thu Jan 28 23:04:26 2010
New Revision: 904294
URL: http://svn.apache.org/viewvc?rev=904294&view=rev
Log:
[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/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java
continuum/branches/continuum-1.3.x/continuum-release/pom.xml
continuum/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo
continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java
Modified: continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java?rev=904294&r1=904293&r2=904294&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java Thu Jan 28 23:04:26 2010
@@ -155,6 +155,7 @@
try
{
SlaveBuildAgentTransportClient client = new SlaveBuildAgentTransportClient( new URL( buildAgentUrl ) );
+
String releaseId =
client.releasePrepare( createProjectMap( project ), createPropertiesMap( releaseProperties ),
releaseVersion, developmentVersion, environments );
@@ -298,6 +299,18 @@
boolean useReleaseProfile, LocalRepository repository )
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 ) )
@@ -440,6 +453,8 @@
String result = client.releaseCleanup( releaseId );
removeFromReleaseInProgress( releaseId );
+ removeFromPreparedReleases( releaseId );
+
return result;
}
catch ( MalformedURLException e )
@@ -634,17 +649,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();
@@ -652,41 +661,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 )
@@ -748,4 +741,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/branches/continuum-1.3.x/continuum-release/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-release/pom.xml?rev=904294&r1=904293&r2=904294&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-release/pom.xml (original)
+++ continuum/branches/continuum-1.3.x/continuum-release/pom.xml Thu Jan 28 23:04:26 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/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo?rev=904294&r1=904293&r2=904294&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo (original)
+++ continuum/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo Thu Jan 28 23:04:26 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/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java?rev=904294&r1=904293&r2=904294&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java Thu Jan 28 23:04:26 2010
@@ -94,7 +94,7 @@
List<String> args = new ArrayList<String>();
args.add( e.getMessage() );
- addActionError( getText( "releaseInProgress.error", args ) );
+ addActionError( getText( "distributedBuild.releaseInProgress.error", args ) );
return ERROR;
}
Re: svn commit: r904294 - in /continuum/branches/continuum-1.3.x: 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/we...
Posted by Brett Porter <br...@apache.org>.
did you mean for this to land on 1.3.x? The version in the MDO seems to be 1.4.0.
- Brett
On 29/01/2010, at 10:04 AM, ctan@apache.org wrote:
> Author: ctan
> Date: Thu Jan 28 23:04:26 2010
> New Revision: 904294
>
> URL: http://svn.apache.org/viewvc?rev=904294&view=rev
> Log:
> [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/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java
> continuum/branches/continuum-1.3.x/continuum-release/pom.xml
> continuum/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo
> continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java
>
> Modified: continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java
> URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java?rev=904294&r1=904293&r2=904294&view=diff
> ==============================================================================
> --- continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java (original)
> +++ continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/release/distributed/manager/DefaultDistributedReleaseManager.java Thu Jan 28 23:04:26 2010
> @@ -155,6 +155,7 @@
> try
> {
> SlaveBuildAgentTransportClient client = new SlaveBuildAgentTransportClient( new URL( buildAgentUrl ) );
> +
> String releaseId =
> client.releasePrepare( createProjectMap( project ), createPropertiesMap( releaseProperties ),
> releaseVersion, developmentVersion, environments );
> @@ -298,6 +299,18 @@
> boolean useReleaseProfile, LocalRepository repository )
> 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 ) )
> @@ -440,6 +453,8 @@
> String result = client.releaseCleanup( releaseId );
>
> removeFromReleaseInProgress( releaseId );
> + removeFromPreparedReleases( releaseId );
> +
> return result;
> }
> catch ( MalformedURLException e )
> @@ -634,17 +649,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();
>
> @@ -652,41 +661,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 )
> @@ -748,4 +741,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/branches/continuum-1.3.x/continuum-release/pom.xml
> URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-release/pom.xml?rev=904294&r1=904293&r2=904294&view=diff
> ==============================================================================
> --- continuum/branches/continuum-1.3.x/continuum-release/pom.xml (original)
> +++ continuum/branches/continuum-1.3.x/continuum-release/pom.xml Thu Jan 28 23:04:26 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/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo
> URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo?rev=904294&r1=904293&r2=904294&view=diff
> ==============================================================================
> --- continuum/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo (original)
> +++ continuum/branches/continuum-1.3.x/continuum-release/src/main/mdo/prepared-releases.mdo Thu Jan 28 23:04:26 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/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java
> URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java?rev=904294&r1=904293&r2=904294&view=diff
> ==============================================================================
> --- continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java (original)
> +++ continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java Thu Jan 28 23:04:26 2010
> @@ -94,7 +94,7 @@
> List<String> args = new ArrayList<String>();
> args.add( e.getMessage() );
>
> - addActionError( getText( "releaseInProgress.error", args ) );
> + addActionError( getText( "distributedBuild.releaseInProgress.error", args ) );
> return ERROR;
> }
>
>
>
--
Brett Porter
brett@apache.org
http://brettporter.wordpress.com/