You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ca...@apache.org on 2006/09/15 03:57:29 UTC

svn commit: r446408 - in /maven/continuum/trunk: continuum-api/src/main/java/org/apache/maven/continuum/ continuum-api/src/main/java/org/apache/maven/continuum/release/ continuum-plexus-application/src/conf/ continuum-release/ continuum-release/src/mai...

Author: carlos
Date: Thu Sep 14 18:57:23 2006
New Revision: 446408

URL: http://svn.apache.org/viewvc?view=rev&rev=446408
Log:
[CONTINUUM-727] Merged rev# 439241-443311 from https://svn.apache.org/repos/asf/maven/continuum/branches/release-integration/continuum

Added:
    maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/
    maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseException.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseException.java
    maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
    maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultReleaseManagerListener.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultReleaseManagerListener.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/AbstractReleaseTaskExecutor.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/AbstractReleaseTaskExecutor.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/ReleaseTaskExecutor.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/ReleaseTaskExecutor.java
    maven/continuum/trunk/continuum-release/src/test/java/org/apache/maven/continuum/release/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/java/org/apache/maven/continuum/release/
    maven/continuum/trunk/continuum-release/src/test/java/org/apache/maven/continuum/release/executors/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/java/org/apache/maven/continuum/release/executors/
    maven/continuum/trunk/continuum-release/src/test/java/org/apache/maven/continuum/release/executors/ReleaseTaskExecutorTest.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/java/org/apache/maven/continuum/release/executors/ReleaseTaskExecutorTest.java
    maven/continuum/trunk/continuum-release/src/test/scm/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/
    maven/continuum/trunk/continuum-release/src/test/scm/README.txt
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/README.txt
    maven/continuum/trunk/continuum-release/src/test/scm/conf/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/conf/
    maven/continuum/trunk/continuum-release/src/test/scm/conf/authz
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/conf/authz
    maven/continuum/trunk/continuum-release/src/test/scm/conf/passwd
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/conf/passwd
    maven/continuum/trunk/continuum-release/src/test/scm/conf/svnserve.conf
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/conf/svnserve.conf
    maven/continuum/trunk/continuum-release/src/test/scm/dav/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/dav/
    maven/continuum/trunk/continuum-release/src/test/scm/db/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/
    maven/continuum/trunk/continuum-release/src/test/scm/db/current
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/current
    maven/continuum/trunk/continuum-release/src/test/scm/db/format
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/format
    maven/continuum/trunk/continuum-release/src/test/scm/db/fs-type
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/fs-type
    maven/continuum/trunk/continuum-release/src/test/scm/db/revprops/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/revprops/
    maven/continuum/trunk/continuum-release/src/test/scm/db/revprops/0
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/revprops/0
    maven/continuum/trunk/continuum-release/src/test/scm/db/revprops/1
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/revprops/1
    maven/continuum/trunk/continuum-release/src/test/scm/db/revprops/2
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/revprops/2
    maven/continuum/trunk/continuum-release/src/test/scm/db/revs/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/revs/
    maven/continuum/trunk/continuum-release/src/test/scm/db/revs/0
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/revs/0
    maven/continuum/trunk/continuum-release/src/test/scm/db/revs/1
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/revs/1
    maven/continuum/trunk/continuum-release/src/test/scm/db/revs/2
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/revs/2
    maven/continuum/trunk/continuum-release/src/test/scm/db/transactions/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/transactions/
    maven/continuum/trunk/continuum-release/src/test/scm/db/transactions/readme.txt
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/transactions/readme.txt
    maven/continuum/trunk/continuum-release/src/test/scm/db/uuid
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/uuid
    maven/continuum/trunk/continuum-release/src/test/scm/db/write-lock
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/db/write-lock
    maven/continuum/trunk/continuum-release/src/test/scm/format
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/format
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/post-commit.tmpl
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/post-commit.tmpl
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/post-lock.tmpl
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/post-lock.tmpl
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/post-revprop-change.tmpl
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/post-revprop-change.tmpl
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/post-unlock.tmpl
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/post-unlock.tmpl
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/pre-commit.tmpl
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/pre-commit.tmpl
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/pre-lock.tmpl
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/pre-lock.tmpl
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/pre-revprop-change.tmpl
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/pre-revprop-change.tmpl
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/pre-unlock.tmpl
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/pre-unlock.tmpl
    maven/continuum/trunk/continuum-release/src/test/scm/hooks/start-commit.tmpl
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/hooks/start-commit.tmpl
    maven/continuum/trunk/continuum-release/src/test/scm/locks/
      - copied from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/locks/
    maven/continuum/trunk/continuum-release/src/test/scm/locks/db-logs.lock
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/locks/db-logs.lock
    maven/continuum/trunk/continuum-release/src/test/scm/locks/db.lock
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-release/src/test/scm/locks/db.lock
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PrepareReleaseAction.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PrepareReleaseAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectAction.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ViewReleaseResultAction.java
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ViewReleaseResultAction.java
    maven/continuum/trunk/continuum-webapp/src/main/webapp/images/releaseproject.gif
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/images/releaseproject.gif
    maven/continuum/trunk/continuum-webapp/src/main/webapp/images/releaseproject_disabled.gif
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/images/releaseproject_disabled.gif
    maven/continuum/trunk/continuum-webapp/src/main/webapp/performRelease.jsp
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performRelease.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/performReleaseFinished.jsp
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performReleaseFinished.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/performReleaseProgress.jsp
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performReleaseProgress.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/prepareRelease.jsp
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareRelease.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/prepareReleaseFinished.jsp
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseFinished.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/prepareReleaseProgress.jsp
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseProgress.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/releaseProject.jsp
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseProject.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/releaseResult.jsp
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseResult.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/viewReleaseResult.jsp
      - copied unchanged from r443311, maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/viewReleaseResult.jsp
Removed:
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseException.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseResult.java
    maven/continuum/trunk/continuum-release/src/test/java/org/apache/maven/continuum/ContinuumReleaseManagerTest.java
Modified:
    maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
    maven/continuum/trunk/continuum-plexus-application/src/conf/application.xml
    maven/continuum/trunk/continuum-release/pom.xml
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java
    maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java
    maven/continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml
    maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
    maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
    maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
    maven/continuum/trunk/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp

Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- 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 Thu Sep 14 18:57:23 2006
@@ -27,6 +27,7 @@
 import org.apache.maven.continuum.model.system.UserGroup;
 import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
 import org.apache.maven.continuum.security.ContinuumSecurity;
+import org.apache.maven.continuum.release.ContinuumReleaseManager;
 import org.codehaus.plexus.util.dag.CycleDetectedException;
 
 import java.io.File;
@@ -381,4 +382,9 @@
 
     void removeUserGroup( int userGroupId )
         throws ContinuumException;
+
+    // ----------------------------------------------------------------------
+    // Continuum Release
+    // ----------------------------------------------------------------------
+    ContinuumReleaseManager getReleaseManager();
 }

Modified: maven/continuum/trunk/continuum-plexus-application/src/conf/application.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-plexus-application/src/conf/application.xml?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-plexus-application/src/conf/application.xml (original)
+++ maven/continuum/trunk/continuum-plexus-application/src/conf/application.xml Thu Sep 14 18:57:23 2006
@@ -12,6 +12,14 @@
       <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
       <role-hint>check-out-project</role-hint>
     </component>
+    <component>
+      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
+      <role-hint>prepare-release</role-hint>
+    </component>
+    <component>
+      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
+      <role-hint>perform-release</role-hint>
+    </component>
     <!--
     <component>
       <role>org.codehaus.xfire.plexus.config.ConfigurationService</role>

Modified: maven/continuum/trunk/continuum-release/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-release/pom.xml?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-release/pom.xml (original)
+++ maven/continuum/trunk/continuum-release/pom.xml Thu Sep 14 18:57:23 2006
@@ -14,6 +14,16 @@
   </description>
   <dependencies>
     <dependency>
+      <groupId>org.apache.maven.continuum</groupId>
+      <artifactId>continuum-api</artifactId>
+      <version>1.1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-project</artifactId>
+      <version>2.0.4</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-release-plugin</artifactId>
       <version>2.0-beta-5-SNAPSHOT</version>
@@ -24,4 +34,12 @@
       <version>1.0-alpha-3</version>
     </dependency>
   </dependencies>
+  <build>
+    <testResources>
+      <testResource>
+        <directory>src/test/scm</directory>
+        <targetPath>scm-src</targetPath>
+      </testResource>
+    </testResources>
+  </build>
 </project>

Modified: maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java (original)
+++ maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java Thu Sep 14 18:57:23 2006
@@ -16,51 +16,33 @@
  * limitations under the License.
  */
 
-import org.apache.maven.plugins.release.ReleaseManager;
-import org.apache.maven.plugins.release.ReleaseExecutionException;
-import org.apache.maven.plugins.release.ReleaseFailureException;
+import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.release.tasks.PerformReleaseProjectTask;
+import org.apache.maven.continuum.release.tasks.PrepareReleaseProjectTask;
+import org.apache.maven.plugins.release.ReleaseManagerListener;
 import org.apache.maven.plugins.release.config.ReleaseDescriptor;
-import org.apache.maven.profiles.DefaultProfileManager;
-import org.apache.maven.profiles.ProfileManager;
-import org.apache.maven.project.MavenProjectBuilder;
-import org.apache.maven.project.ProjectBuildingException;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.settings.Settings;
-import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.repository.DefaultArtifactRepository;
-import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
-import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusContainer;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.apache.maven.plugins.release.config.io.xpp3.ReleaseDescriptorXpp3Reader;
 import org.codehaus.plexus.taskqueue.TaskQueue;
+import org.codehaus.plexus.taskqueue.TaskQueueException;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-import java.util.Map;
-import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
 import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Properties;
 
 /**
  * @author Jason van Zyl
+ * @author Edwin Punzalan
  */
 public class DefaultContinuumReleaseManager
-    implements ContinuumReleaseManager, Contextualizable
+    implements ContinuumReleaseManager
 {
     /**
      * @plexus.requirement
      */
-    private MavenProjectBuilder projectBuilder;
-
-    /**
-     * @plexus.requirement
-     */
-    private ReleaseManager releaseManager;
-
-    /**
-     * @plexus.requirement
-     */
     private TaskQueue prepareReleaseQueue;
 
     /**
@@ -68,120 +50,153 @@
      */
     private TaskQueue performReleaseQueue;
 
+    private Map listeners;
+
     /**
-     * @plexus.configuration
+     * contains previous release:prepare descriptors; one per project
+     * @todo remove static when singleton strategy is working
      */
-    private String localRepository;
-
-    private PlexusContainer container;
+    private static Map preparedReleases;
 
     /**
-     * contains previous release:prepare descriptors; one per project
+     * contains results
+     * @todo remove static when singleton strategy is working
      */
-    private Map preparedReleases;
+    private static Map releaseResults;
 
-    public void prepare( ReleaseDescriptor descriptor, Settings settings )
+    public String prepare( Project project, Properties releaseProperties, Map relVersions,
+                           Map devVersions, ContinuumReleaseManagerListener listener )
         throws ContinuumReleaseException
     {
+        String releaseId = project.getGroupId() + ":" + project.getArtifactId();
+
+        ReleaseDescriptor descriptor = getReleaseDescriptor( project, releaseProperties, relVersions, devVersions );
+
+        getListeners().put( releaseId, listener );
+
         try
         {
-            releaseManager.prepare( descriptor, settings, getReactorProjects( descriptor, settings ) );
+            prepareReleaseQueue.put( new PrepareReleaseProjectTask( releaseId, descriptor,
+                                                                    (ReleaseManagerListener) listener ) );
+
         }
-        catch ( ReleaseExecutionException e )
+        catch ( TaskQueueException e )
         {
-            throw new ContinuumReleaseException( "Release Manager Execution error occurred.", e );
+            throw new ContinuumReleaseException( "Failed to add prepare release task in queue.", e );
         }
-        catch ( ReleaseFailureException e )
+
+        return releaseId;
+    }
+
+    public void perform( String releaseId, File buildDirectory, String goals, boolean useReleaseProfile,
+                         ContinuumReleaseManagerListener listener )
+        throws ContinuumReleaseException
+    {
+        ReleaseDescriptor descriptor = (ReleaseDescriptor) getPreparedReleases().get( releaseId );
+        if ( descriptor != null )
         {
-            throw new ContinuumReleaseException( "Release Manager failure occurred.", e );
+            perform( releaseId, descriptor, buildDirectory, goals, useReleaseProfile, listener );
         }
     }
 
-    public void perform( ReleaseDescriptor descriptor, Settings settings, File buildDirectory,
-                         String goals, boolean useReleaseProfile )
+    public void perform( String releaseId, File descriptorFile, File buildDirectory,
+                         String goals, boolean useReleaseProfile, ContinuumReleaseManagerListener listener )
         throws ContinuumReleaseException
     {
+        ReleaseDescriptor descriptor;
         try
         {
-            releaseManager.perform( descriptor, settings, getReactorProjects( descriptor, settings ),
-                                    new File( buildDirectory, "checkout" ), goals, useReleaseProfile );
+            descriptor = new ReleaseDescriptorXpp3Reader().read( new FileReader( descriptorFile ) );
         }
-        catch ( ReleaseExecutionException e )
+        catch ( IOException e )
         {
-            throw new ContinuumReleaseException( "Release Manager Execution error occurred.", e );
+            throw new ContinuumReleaseException( "Failed to parse descriptor file.", e );
         }
-        catch ( ReleaseFailureException e )
+        catch ( XmlPullParserException e )
         {
-            throw new ContinuumReleaseException( "Release Manager failure occurred.", e );
+            throw new ContinuumReleaseException( "Failed to parse descriptor file.", e );
         }
+
+        perform( releaseId, descriptor, buildDirectory, goals, useReleaseProfile, listener );
     }
 
-    private List getReactorProjects( ReleaseDescriptor descriptor, Settings settings )
+    private void perform( String releaseId, ReleaseDescriptor descriptor, File buildDirectory,
+                          String goals, boolean useReleaseProfile, ContinuumReleaseManagerListener listener )
         throws ContinuumReleaseException
     {
-        List reactorProjects = new ArrayList();
-
-        MavenProject project;
         try
         {
-            project = projectBuilder.build( getProjectDescriptorFile( descriptor ),
-                                            getLocalRepository(), getProfileManager( settings ) );
+            getListeners().put( releaseId, listener );
 
-            reactorProjects.add( project );
+            performReleaseQueue.put( new PerformReleaseProjectTask( releaseId, descriptor, buildDirectory,
+                                                                    goals, useReleaseProfile,
+                                                                    (ReleaseManagerListener) listener ) );
         }
-        catch ( ProjectBuildingException e )
+        catch ( TaskQueueException e )
         {
-            throw new ContinuumReleaseException( "Failed to build project.", e );
+            throw new ContinuumReleaseException( "Failed to add perform release task in queue.", e );
         }
+    }
 
-        for( Iterator modules = project.getModules().iterator(); modules.hasNext(); )
+    public Map getPreparedReleases()
+    {
+        if ( preparedReleases == null )
         {
-            String moduleDir = modules.next().toString();
-
-            File pomFile = new File( project.getBasedir(), moduleDir );
+            preparedReleases = new Hashtable();
+        }
 
-            try
-            {
-                projectBuilder.build( pomFile, getLocalRepository(), getProfileManager( settings ) );
+        return preparedReleases;
+    }
 
-                reactorProjects.add( projectBuilder );
-            }
-            catch ( ProjectBuildingException e )
-            {
-                throw new ContinuumReleaseException( "Failed to build project.", e );
-            }
+    public Map getReleaseResults()
+    {
+        if ( releaseResults == null )
+        {
+            releaseResults = new Hashtable();
         }
 
-        return reactorProjects;
+        return releaseResults;
     }
 
-    private File getProjectDescriptorFile( ReleaseDescriptor descriptor )
+    private ReleaseDescriptor getReleaseDescriptor( Project project, Properties releaseProperties,
+                                                    Map relVersions, Map devVersions )
     {
-        String parentPath = descriptor.getWorkingDirectory();
+        ReleaseDescriptor descriptor = new ReleaseDescriptor();
 
-        String pomFilename = descriptor.getPomFileName();
-        if ( pomFilename == null )
+        //release properties from the project
+        descriptor.setWorkingDirectory( project.getWorkingDirectory() );
+        descriptor.setScmSourceUrl( project.getScmUrl() );
+
+        //required properties
+        descriptor.setScmReleaseLabel( releaseProperties.getProperty( "tag" ) );
+        descriptor.setScmTagBase( releaseProperties.getProperty( "tagBase" ) );
+        descriptor.setReleaseVersions( relVersions );
+        descriptor.setDevelopmentVersions( devVersions );
+        descriptor.setPreparationGoals( releaseProperties.getProperty( "prepareGoals" ) );
+
+        //other properties
+        if ( releaseProperties.containsKey( "username" ) )
         {
-            pomFilename = "pom.xml";
+            descriptor.setScmUsername( releaseProperties.getProperty( "username" ) );
+        }
+        if ( releaseProperties.containsKey( "password" ) )
+        {
+            descriptor.setScmPassword( releaseProperties.getProperty( "password" ) );
         }
 
-        return new File( parentPath, pomFilename );
-    }
+        //forced properties
+        descriptor.setInteractive( false );
 
-    private ArtifactRepository getLocalRepository()
-    {
-        return new DefaultArtifactRepository( "local-repository", "file://" + localRepository,
-                                              new DefaultRepositoryLayout() );
+        return descriptor;
     }
 
-    private ProfileManager getProfileManager( Settings settings )
+    public Map getListeners()
     {
-        return new DefaultProfileManager( container, settings );
-    }
+        if ( listeners == null )
+        {
+            listeners = new Hashtable();
+        }
 
-    public void contextualize( Context context )
-        throws ContextException
-    {
-        container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
+        return listeners;
     }
 }

Modified: maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java (original)
+++ maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java Thu Sep 14 18:57:23 2006
@@ -16,19 +16,62 @@
  * limitations under the License.
  */
 
-import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
-import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
+import org.apache.maven.continuum.release.ContinuumReleaseException;
+import org.apache.maven.continuum.release.tasks.PerformReleaseProjectTask;
+import org.apache.maven.plugins.release.ReleaseManagerListener;
+import org.apache.maven.plugins.release.ReleaseResult;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.taskqueue.Task;
+import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
+
+import java.util.List;
 
 /**
  * @author Edwin Punzalan
  */
 public class PerformReleaseTaskExecutor
-    implements TaskExecutor
+    extends AbstractReleaseTaskExecutor
 {
     public void executeTask( Task task )
         throws TaskExecutionException
     {
+        PerformReleaseProjectTask performTask = (PerformReleaseProjectTask) task;
+
+        ReleaseDescriptor descriptor = performTask.getDescriptor();
+
+        Settings settings;
+        try
+        {
+            settings = getSettings();
+        }
+        catch ( ContinuumReleaseException e )
+        {
+            throw new TaskExecutionException( "Failed to build reactor projects.", e );
+        }
+
+        List reactorProjects;
+        try
+        {
+            reactorProjects = getReactorProjects( descriptor );
+        }
+        catch ( ContinuumReleaseException e )
+        {
+            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() );
+        }
     }
 }

Modified: maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java (original)
+++ maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java Thu Sep 14 18:57:23 2006
@@ -16,19 +16,76 @@
  * limitations under the License.
  */
 
-import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
-import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
+import org.apache.maven.continuum.release.ContinuumReleaseException;
+import org.apache.maven.continuum.release.tasks.PrepareReleaseProjectTask;
+import org.apache.maven.plugins.release.ReleaseManagerListener;
+import org.apache.maven.plugins.release.ReleaseResult;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.taskqueue.Task;
+import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
+
+import java.util.List;
 
 /**
  * @author Edwin Punzalan
  */
 public class PrepareReleaseTaskExecutor
-    implements TaskExecutor
+    extends AbstractReleaseTaskExecutor
 {
     public void executeTask( Task task )
         throws TaskExecutionException
     {
+        PrepareReleaseProjectTask prepareTask = (PrepareReleaseProjectTask) task;
+
+        ReleaseManagerListener listener = prepareTask.getListener();
+
+        Settings settings;
+        try
+        {
+            settings = getSettings();
+        }
+        catch ( ContinuumReleaseException e )
+        {
+            ReleaseResult result = new ReleaseResult();
+
+            result.appendError( e );
+
+            continuumReleaseManager.getReleaseResults().put( prepareTask.getReleaseId(), result );
+
+            listener.error( e.getMessage() );
+
+            throw new TaskExecutionException( "Failed to build reactor projects.", e );
+        }
+
+        ReleaseDescriptor descriptor = prepareTask.getDescriptor();
+
+        List reactorProjects;
+        try
+        {
+            reactorProjects = getReactorProjects( descriptor );
+        }
+        catch ( ContinuumReleaseException e )
+        {
+            ReleaseResult result = new ReleaseResult();
+
+            result.appendError( e );
+
+            continuumReleaseManager.getReleaseResults().put( prepareTask.getReleaseId(), result );
+
+            listener.error( e.getMessage() );
+
+            throw new TaskExecutionException( "Failed to build reactor projects.", e );
+        }
+
+        ReleaseResult result = releasePluginManager.prepareWithResult( descriptor, settings, reactorProjects,
+                                                                       false, false, listener );
+
+        if ( result.getResultCode() == ReleaseResult.SUCCESS )
+        {
+            continuumReleaseManager.getReleaseResults().put( prepareTask.getReleaseId(), result );
 
+            continuumReleaseManager.getPreparedReleases().put( prepareTask.getReleaseId(), descriptor );
+        }
     }
 }

Modified: maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java (original)
+++ maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java Thu Sep 14 18:57:23 2006
@@ -16,33 +16,28 @@
  * limitations under the License.
  */
 
+import org.apache.maven.plugins.release.ReleaseManagerListener;
 import org.apache.maven.plugins.release.config.ReleaseDescriptor;
-import org.apache.maven.settings.Settings;
 import org.codehaus.plexus.taskqueue.Task;
 
-import java.util.List;
-
 /**
  * @author Edwin Punzalan
  */
 public abstract class AbstractReleaseProjectTask
     implements Task
 {
-    private int projectId;
+    private String releaseId;
 
     private ReleaseDescriptor descriptor;
 
-    private Settings settings;
-
-    private List reactorProjects;
+    private ReleaseManagerListener listener;
 
-    public AbstractReleaseProjectTask( int projectId, ReleaseDescriptor descriptor,
-                                       Settings settings, List reactorProjects )
+    public AbstractReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor,
+                                       ReleaseManagerListener listener )
     {
-        this.projectId = projectId;
+        this.releaseId = releaseId;
         this.descriptor = descriptor;
-        this.settings = settings;
-        this.reactorProjects = reactorProjects;
+        this.listener = listener;
     }
 
     public ReleaseDescriptor getDescriptor()
@@ -55,33 +50,23 @@
         this.descriptor = descriptor;
     }
 
-    public int getProjectId()
-    {
-        return projectId;
-    }
-
-    public void setProjectId( int projectId )
-    {
-        this.projectId = projectId;
-    }
-
-    public Settings getSettings()
+    public String getReleaseId()
     {
-        return settings;
+        return releaseId;
     }
 
-    public void setSettings( Settings settings )
+    public void setReleaseId( String releaseId )
     {
-        this.settings = settings;
+        this.releaseId = releaseId;
     }
 
-    public List getReactorProjects()
+    public ReleaseManagerListener getListener()
     {
-        return reactorProjects;
+        return listener;
     }
 
-    public void setReactorProjects( List reactorProjects )
+    public void setListener( ReleaseManagerListener listener )
     {
-        this.reactorProjects = reactorProjects;
+        this.listener = listener;
     }
 }

Modified: maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java (original)
+++ maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java Thu Sep 14 18:57:23 2006
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
+import org.apache.maven.plugins.release.ReleaseManagerListener;
 import org.apache.maven.plugins.release.config.ReleaseDescriptor;
-import org.apache.maven.settings.Settings;
 
-import java.util.List;
+import java.io.File;
 
 /**
  * @author Edwin Punzalan
@@ -27,17 +27,19 @@
 public class PerformReleaseProjectTask
     extends AbstractReleaseProjectTask
 {
+    private File buildDirectory;
+
     private String goals;
 
     private boolean useReleaseProfile = true;
 
-    public PerformReleaseProjectTask( int projectId, ReleaseDescriptor descriptor,
-                                      Settings settings, List reactorProjects,
-                                      String goals, boolean useReleaseProfile )
+    public PerformReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, File buildDirectory,
+                                      String goals, boolean useReleaseProfile, ReleaseManagerListener listener )
     {
-        super( projectId, descriptor, settings, reactorProjects );
-        this.goals = goals;
-        this.useReleaseProfile = useReleaseProfile;
+        super( releaseId, descriptor, listener );
+        setBuildDirectory( buildDirectory );
+        setGoals( goals );
+        setUseReleaseProfile( useReleaseProfile );
     }
 
     public String getGoals()
@@ -58,5 +60,15 @@
     public void setUseReleaseProfile( boolean useReleaseProfile )
     {
         this.useReleaseProfile = useReleaseProfile;
+    }
+
+    public File getBuildDirectory()
+    {
+        return buildDirectory;
+    }
+
+    public void setBuildDirectory( File buildDirectory )
+    {
+        this.buildDirectory = buildDirectory;
     }
 }

Modified: maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java (original)
+++ maven/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java Thu Sep 14 18:57:23 2006
@@ -16,10 +16,8 @@
  * limitations under the License.
  */
 
+import org.apache.maven.plugins.release.ReleaseManagerListener;
 import org.apache.maven.plugins.release.config.ReleaseDescriptor;
-import org.apache.maven.settings.Settings;
-
-import java.util.List;
 
 /**
  * @author Edwin Punzalan
@@ -27,9 +25,9 @@
 public class PrepareReleaseProjectTask
     extends AbstractReleaseProjectTask
 {
-    public PrepareReleaseProjectTask( int projectId, ReleaseDescriptor descriptor,
-                                      Settings settings, List reactorProjects )
+    public PrepareReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor,
+                                      ReleaseManagerListener listener )
     {
-        super( projectId, descriptor, settings, reactorProjects );
+        super( releaseId, descriptor, listener );
     }
 }

Modified: maven/continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml Thu Sep 14 18:57:23 2006
@@ -6,121 +6,144 @@
       <implementation>org.apache.maven.continuum.release.DefaultContinuumReleaseManager</implementation>
       <requirements>
         <requirement>
-          <role>org.apache.maven.project.MavenProjectBuilder</role>          
+          <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+          <role-hint>prepare-release</role-hint>
+          <field-name>prepareReleaseQueue</field-name>
         </requirement>
         <requirement>
-          <role>org.apache.maven.plugins.release.ReleaseManager</role>          
+          <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+          <role-hint>perform-release</role-hint>
+          <field-name>performReleaseQueue</field-name>
         </requirement>
+      </requirements>
+    </component>
+
+    <!--
+     |
+     | Prepare Release Project Task Queue
+     |
+     |-->
+
+    <component>
+      <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+      <role-hint>prepare-release</role-hint>
+      <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
+      <lifecycle-handler>plexus-configurable</lifecycle-handler>
+      <configuration>
+        <task-entry-evaluators>
+        </task-entry-evaluators>
+        <task-exit-evaluators>
+        </task-exit-evaluators>
+        <task-viability-evaluators>
+        </task-viability-evaluators>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
+      <role-hint>prepare-release</role-hint>
+      <implementation>org.apache.maven.continuum.release.executors.PrepareReleaseTaskExecutor</implementation>
+      <requirements>
         <requirement>
-          <role>org.apache.maven.continuum.execution.maven.m2.MavenBuilderHelper</role>
+          <role>org.apache.maven.continuum.release.ContinuumReleaseManager</role>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.plugins.release.ReleaseManager</role>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.project.MavenProjectBuilder</role>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.settings.MavenSettingsBuilder</role>
+        </requirement>
+      </requirements>
+      <configuration>
+        <local-repository>${plexus.home}/local-repository</local-repository>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
+      <role-hint>prepare-release</role-hint>
+      <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
+      <requirements>
+        <requirement>
+          <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
+          <role-hint>prepare-release</role-hint>
         </requirement>
         <requirement>
           <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-          <role-hint>perpare-release</role-hint>
-          <field-name>prepareReleaseQueue</field-name>
+          <role-hint>prepare-release</role-hint>
+        </requirement>
+      </requirements>
+      <configuration>
+        <name>prepare-release</name>
+      </configuration>
+    </component>
+
+    <!--
+     |
+     | Perform Release Project Task Queue
+     |
+     |-->
+
+    <component>
+      <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+      <role-hint>perform-release</role-hint>
+      <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
+      <lifecycle-handler>plexus-configurable</lifecycle-handler>
+      <configuration>
+        <task-entry-evaluators>
+        </task-entry-evaluators>
+        <task-exit-evaluators>
+        </task-exit-evaluators>
+        <task-viability-evaluators>
+        </task-viability-evaluators>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
+      <role-hint>perform-release</role-hint>
+      <implementation>org.apache.maven.continuum.release.executors.PerformReleaseTaskExecutor</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.continuum.release.ContinuumReleaseManager</role>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.plugins.release.ReleaseManager</role>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.project.MavenProjectBuilder</role>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.settings.MavenSettingsBuilder</role>
+        </requirement>
+      </requirements>
+      <configuration>
+        <local-repository>${plexus.home}/local-repository</local-repository>
+      </configuration>
+    </component>
+
+    <component>
+      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
+      <role-hint>perform-release</role-hint>
+      <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
+      <requirements>
+        <requirement>
+          <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
+          <role-hint>perform-release</role-hint>
         </requirement>
         <requirement>
           <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
           <role-hint>perform-release</role-hint>
-          <field-name>performReleaseQueue</field-name>
         </requirement>
       </requirements>
       <configuration>
-        <local-repository>${plexus.home}/local-repository</local-repository>
+        <name>perform-release</name>
       </configuration>
     </component>
-  </components>
 
-  <!--
-   |
-   | Prepare Release Project Task Queue
-   |
-   |-->
-
-  <component>
-    <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-    <role-hint>prepare-release</role-hint>
-    <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
-    <lifecycle-handler>plexus-configurable</lifecycle-handler>
-    <configuration>
-      <task-entry-evaluators>
-      </task-entry-evaluators>
-      <task-exit-evaluators>
-      </task-exit-evaluators>
-      <task-viability-evaluators>
-      </task-viability-evaluators>
-    </configuration>
-  </component>
-
-  <component>
-    <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
-    <role-hint>prepare-release</role-hint>
-    <implementation>org.apache.maven.continuum.release.executors.PrepareReleaseTaskExecutor</implementation>
-  </component>
-
-  <component>
-    <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
-    <role-hint>prepare-release</role-hint>
-    <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
-    <requirements>
-      <requirement>
-        <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
-        <role-hint>prepare-release</role-hint>
-      </requirement>
-      <requirement>
-        <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-        <role-hint>prepare-release</role-hint>
-      </requirement>
-    </requirements>
-    <configuration>
-      <name>prepare-release</name>
-    </configuration>
-  </component>
-
-  <!--
-   |
-   | Perform Release Project Task Queue
-   |
-   |-->
-
-  <component>
-    <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-    <role-hint>perform-release</role-hint>
-    <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
-    <lifecycle-handler>plexus-configurable</lifecycle-handler>
-    <configuration>
-      <task-entry-evaluators>
-      </task-entry-evaluators>
-      <task-exit-evaluators>
-      </task-exit-evaluators>
-      <task-viability-evaluators>
-      </task-viability-evaluators>
-    </configuration>
-  </component>
-
-  <component>
-    <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
-    <role-hint>perform-release</role-hint>
-    <implementation>org.apache.maven.continuum.release.executors.PerformReleaseTaskExecutor</implementation>
-  </component>
-
-  <component>
-    <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
-    <role-hint>perform-release</role-hint>
-    <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
-    <requirements>
-      <requirement>
-        <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
-        <role-hint>perform-release</role-hint>
-      </requirement>
-      <requirement>
-        <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-        <role-hint>perform-release</role-hint>
-      </requirement>
-    </requirements>
-    <configuration>
-      <name>perform-release</name>
-    </configuration>
-  </component>
+  </components>
 
 </component-set>

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml Thu Sep 14 18:57:23 2006
@@ -14,6 +14,14 @@
     <component>
       <role>org.apache.maven.continuum.web.xmlrpc.XmlRpcService</role>
     </component>
+    <component>
+      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
+      <role-hint>prepare-release</role-hint>
+    </component>
+    <component>
+      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
+      <role-hint>perform-release</role-hint>
+    </component>
   </load-on-start>
 
   <components>

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Thu Sep 14 18:57:23 2006
@@ -380,3 +380,33 @@
 surefireReport.class = Class
 surefireReport.testCase = Test Case
 surefireReport.failureDetails = Failure Details
+
+# ----------------------------------------------------------------------
+# Page: Continuum Release Support
+# ----------------------------------------------------------------------
+releaseProject.page.title=Continuum - Release Project
+releaseProject.section.title=Choose Release Goal for {0}
+
+prepareRelease.section.title=Prepare Project Release
+prepareRelease.releaseParameters=Release Parameters
+prepareRelease.releaseVersion=Release Version*
+prepareRelease.nextDevelopmentVersion=Next Development Version*
+
+prepareReleaseProgress.section.title=Executing Prepare Project Release
+prepareReleaseFinished.section.title=Prepare Project Release Result
+
+performReleaseProgress.section.title=Executing Perform Project Release
+performReleaseFinished.section.title=Perform Project Release Result
+
+releaseProject.prepareReleaseOption=Prepare project for release
+releaseProject.performReleaseOption=Perform project release
+releaseProject.provideReleaseParameters=Project Release Parameters
+releaseProject.status=Status
+releaseProject.phase=Phase
+releaseProject.viewOutput=View Output
+
+viewReleaseResult.section.title=View Project Release Summary
+viewReleaseResult.summary=Release Project Details
+viewReleaseResult.success=SUCCESSFUL
+viewReleaseResult.error=ERROR
+viewReleaseResult.output=Release Execution Output
\ No newline at end of file

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml Thu Sep 14 18:57:23 2006
@@ -302,6 +302,49 @@
       <result name="success" type="chain">buildResults</result>
     </action>
 
+    <!--
+    - continuum release
+    -->
+    <action name="releaseProject" class="releaseProject">
+      <result name="prompt">releaseProject.jsp</result>
+      <result name="prepareRelease" type="redirect-action">
+        <param name="actionName">prepareRelease</param>
+        <param name="projectId">${projectId}</param>
+      </result>
+      <result name="performRelease" type="redirect-action">
+        <param name="actionName">performRelease</param>
+        <param name="projectId">${projectId}</param>
+        <param name="releaseId">${preparedReleaseId}</param>
+      </result>
+    </action>
+
+    <action name="prepareRelease" class="prepareRelease">
+      <result name="prompt">prepareRelease.jsp</result>
+      <!-- should be exec and wait -->
+      <result name="initialized" type="redirect-action">
+        <param name="actionName">prepareRelease!checkProgress.action</param>
+        <param name="releaseId">${releaseId}</param>
+        <param name="projectId">${projectId}</param>
+      </result>
+      <result name="inProgress">prepareReleaseProgress.jsp</result>
+      <result name="finished">prepareReleaseFinished.jsp</result>
+    </action>
+
+    <action name="performRelease" class="performRelease">
+      <result name="prompt">performRelease.jsp</result>
+      <!-- should be exec and wait -->
+      <result name="initialized" type="redirect-action">
+        <param name="actionName">performRelease!checkProgress.action</param>
+        <param name="releaseId">${releaseId}</param>
+      </result>
+      <result name="inProgress">performReleaseProgress.jsp</result>
+      <result name="finished">performReleaseFinished.jsp</result>
+    </action>
+
+    <action name="viewReleaseResult" class="viewReleaseResult">
+      <result name="success">viewReleaseResult.jsp</result>
+    </action>
+
   </package>
 
   <package name="component" extends="default">

Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp?view=diff&rev=446408&r1=446407&r2=446408
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp Thu Sep 14 18:57:23 2006
@@ -55,6 +55,23 @@
           </c:otherwise>
         </c:choose>
       </ec:column>
+      <ec:column property="releaseAction" title="&nbsp;" width="1%" sortable="false">
+        <c:choose>
+          <c:when test="${pageScope.project.state == 2}">
+            <ww:url id="releaseProjectUrl" action="releaseProject!promptReleaseGoal.action" namespace="/">
+              <ww:param name="projectId" value="${project.id}"/>
+            </ww:url>
+            <ww:a href="%{releaseProjectUrl}">
+              <img src="<ww:url value='/images/releaseproject.gif'/>" alt="Release Project" title="Release Project"
+                border="0"/>
+            </ww:a>
+          </c:when>
+          <c:otherwise>
+            <img src="<ww:url value='/images/releaseproject_disabled.gif'/>" alt="Release Project"
+              title="Release Project" border="0"/>
+          </c:otherwise>
+        </c:choose>
+      </ec:column>
       <ec:column property="deleteAction" title="&nbsp;" width="1%" sortable="false">
         <c:choose>
           <c:when
@@ -74,4 +91,4 @@
       </ec:column>
     </ec:row>
   </ec:table>
-</ww:i18n>
\ No newline at end of file
+</ww:i18n>