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/