You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ep...@apache.org on 2006/08/31 23:42:47 UTC

svn commit: r439056 - in /maven/continuum/branches/release-integration: ./ continuum-core/ continuum-core/src/main/java/org/apache/maven/continuum/ continuum-core/src/main/resources/META-INF/plexus/ continuum-release/ continuum-release/src/main/java/or...

Author: epunzalan
Date: Thu Aug 31 14:42:46 2006
New Revision: 439056

URL: http://svn.apache.org/viewvc?rev=439056&view=rev
Log:
PR: CONTINUUM-727

- added the release manager in continuum-core
- enabled prepare and perform releases in continuum release manager
- created plexus tasks and task executors (not yet used, brett said they can come in later)

Added:
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseResult.java   (with props)
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/evaluators/
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java   (with props)
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java   (with props)
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java   (with props)
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java   (with props)
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java   (with props)
Modified:
    maven/continuum/branches/release-integration/continuum-core/pom.xml
    maven/continuum/branches/release-integration/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
    maven/continuum/branches/release-integration/continuum-core/src/main/resources/META-INF/plexus/components.xml
    maven/continuum/branches/release-integration/continuum-release/pom.xml
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseException.java
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
    maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java
    maven/continuum/branches/release-integration/continuum-release/src/main/resources/META-INF/plexus/components.xml
    maven/continuum/branches/release-integration/continuum-release/src/test/java/org/apache/maven/continuum/ContinuumReleaseManagerTest.java
    maven/continuum/branches/release-integration/pom.xml

Modified: maven/continuum/branches/release-integration/continuum-core/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-core/pom.xml?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/continuum-core/pom.xml (original)
+++ maven/continuum/branches/release-integration/continuum-core/pom.xml Thu Aug 31 14:42:46 2006
@@ -155,5 +155,10 @@
       <artifactId>plexus-mail-sender-simple</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.maven.continuum</groupId>
+      <artifactId>continuum-release</artifactId>
+      <version>1.1-SNAPSHOT</version>
+    </dependency>
   </dependencies>
 </project>

Modified: maven/continuum/branches/release-integration/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ maven/continuum/branches/release-integration/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Thu Aug 31 14:42:46 2006
@@ -50,6 +50,7 @@
 import org.apache.maven.continuum.utils.PlexusContainerManager;
 import org.apache.maven.continuum.utils.ProjectSorter;
 import org.apache.maven.continuum.utils.WorkingDirectoryService;
+import org.apache.maven.continuum.release.ContinuumReleaseManager;
 import org.codehaus.plexus.PlexusConstants;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.action.Action;
@@ -136,6 +137,11 @@
     private TaskQueue checkoutQueue;
 
     /**
+     * @plexus.requirement
+     */
+    private ContinuumReleaseManager releaseManager;
+
+    /**
      * @plexus.configuration
      */
     private String workingDirectory;
@@ -170,6 +176,11 @@
         } );
     }
 
+    public ContinuumReleaseManager getReleaseManager()
+    {
+        return releaseManager;
+    }
+
     public void setActionManager( ActionManager actionManager )
     {
         this.actionManager = actionManager;
@@ -479,7 +490,6 @@
      * fire off a build for all of the projects in a project group using their default builds
      *
      * @param projectGroupId
-     * @param trigger
      * @throws ContinuumException
      */
     public void buildProjectGroup( int projectGroupId )

Modified: maven/continuum/branches/release-integration/continuum-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-core/src/main/resources/META-INF/plexus/components.xml?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/continuum-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/continuum/branches/release-integration/continuum-core/src/main/resources/META-INF/plexus/components.xml Thu Aug 31 14:42:46 2006
@@ -22,6 +22,9 @@
         <requirement>
           <role>org.apache.maven.continuum.build.settings.SchedulesActivator</role>
         </requirement>
+        <requirement>
+          <role>org.apache.maven.continuum.release.ContinuumReleaseManager</role>
+        </requirement>
         <!-- from core -->
         <requirement>
           <role>org.codehaus.plexus.taskqueue.TaskQueue</role>

Modified: maven/continuum/branches/release-integration/continuum-release/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/pom.xml?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/pom.xml (original)
+++ maven/continuum/branches/release-integration/continuum-release/pom.xml Thu Aug 31 14:42:46 2006
@@ -18,5 +18,10 @@
       <artifactId>maven-release-plugin</artifactId>
       <version>2.0-beta-5-SNAPSHOT</version>
     </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-taskqueue</artifactId>
+      <version>1.0-alpha-3</version>
+    </dependency>
   </dependencies>
 </project>

Modified: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseException.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseException.java?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseException.java (original)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseException.java Thu Aug 31 14:42:46 2006
@@ -1,5 +1,21 @@
 package org.apache.maven.continuum.release;
 
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 /**
  * @author Jason van Zyl
  */

Modified: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java (original)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java Thu Aug 31 14:42:46 2006
@@ -1,6 +1,25 @@
 package org.apache.maven.continuum.release;
 
-import org.apache.maven.plugins.release.model.Release;
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
+
+import java.io.File;
 
 /**
  * The Continuum Release Manager is responsible for performing releases based on a release descriptor
@@ -16,11 +35,21 @@
     String ROLE = ContinuumReleaseManager.class.getName();
 
     /**
+     * Prepare a project for release which also updates the release descriptor
+     *
+     * @param descriptor
+     * @throws ContinuumReleaseException
+     */
+    void prepare( ReleaseDescriptor descriptor, Settings settings )
+        throws ContinuumReleaseException;
+
+    /**
      * Perform a release based on a release descriptor received by the Maven Release Plugin.
      *
-     * @param release
+     * @param descriptor
      * @throws ContinuumReleaseException
      */
-    void release( Release release )
+    void perform( ReleaseDescriptor descriptor, Settings settings, File buildDirectory,
+                  String goals, boolean useReleaseProfile )
         throws ContinuumReleaseException;
 }

Added: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseResult.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseResult.java?rev=439056&view=auto
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseResult.java (added)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseResult.java Thu Aug 31 14:42:46 2006
@@ -0,0 +1,31 @@
+package org.apache.maven.continuum.release;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.List;
+
+/**
+ * @author Edwin Punzalan
+ */
+public class ContinuumReleaseResult
+{
+    private String id;
+
+    private List finishedPhases;
+
+    
+}

Propchange: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseResult.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java (original)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java Thu Aug 31 14:42:46 2006
@@ -1,20 +1,187 @@
 package org.apache.maven.continuum.release;
 
-import org.apache.maven.plugins.release.model.Release;
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * 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.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.codehaus.plexus.taskqueue.TaskQueue;
+
+import java.util.Map;
+import java.util.List;
+import java.util.Iterator;
+import java.util.ArrayList;
+import java.io.File;
 
 /**
  * @author Jason van Zyl
  */
 public class DefaultContinuumReleaseManager
-    implements ContinuumReleaseManager
+    implements ContinuumReleaseManager, Contextualizable
 {
+    /**
+     * @plexus.requirement
+     */
+    private MavenProjectBuilder projectBuilder;
+
+    /**
+     * @plexus.requirement
+     */
     private ReleaseManager releaseManager;
 
-    public void release( Release release )
+    /**
+     * @plexus.requirement
+     */
+    private TaskQueue prepareReleaseQueue;
+
+    /**
+     * @plexus.requirement
+     */
+    private TaskQueue performReleaseQueue;
+
+    /**
+     * @plexus.configuration
+     */
+    private String localRepository;
+
+    private PlexusContainer container;
+
+    /**
+     * contains previous release:prepare descriptors; one per project
+     */
+    private Map preparedReleases;
+
+    public void prepare( ReleaseDescriptor descriptor, Settings settings )
+        throws ContinuumReleaseException
+    {
+        try
+        {
+            releaseManager.prepare( descriptor, settings, getReactorProjects( descriptor, settings ) );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            throw new ContinuumReleaseException( "Release Manager Execution error occurred.", e );
+        }
+        catch ( ReleaseFailureException e )
+        {
+            throw new ContinuumReleaseException( "Release Manager failure occurred.", e );
+        }
+    }
+
+    public void perform( ReleaseDescriptor descriptor, Settings settings, File buildDirectory,
+                         String goals, boolean useReleaseProfile )
         throws ContinuumReleaseException
     {
-        //TODO:JW The release manager should be taught to use the release descriptor for the release perform.
-        //releaseManager.perform( );
+        try
+        {
+            releaseManager.perform( descriptor, settings, getReactorProjects( descriptor, settings ),
+                                    new File( buildDirectory, "checkout" ), goals, useReleaseProfile );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            throw new ContinuumReleaseException( "Release Manager Execution error occurred.", e );
+        }
+        catch ( ReleaseFailureException e )
+        {
+            throw new ContinuumReleaseException( "Release Manager failure occurred.", e );
+        }
+    }
+
+    private List getReactorProjects( ReleaseDescriptor descriptor, Settings settings )
+        throws ContinuumReleaseException
+    {
+        List reactorProjects = new ArrayList();
+
+        MavenProject project;
+        try
+        {
+            project = projectBuilder.build( getProjectDescriptorFile( descriptor ),
+                                            getLocalRepository(), getProfileManager( settings ) );
+
+            reactorProjects.add( project );
+        }
+        catch ( ProjectBuildingException e )
+        {
+            throw new ContinuumReleaseException( "Failed to build project.", e );
+        }
+
+        for( Iterator modules = project.getModules().iterator(); modules.hasNext(); )
+        {
+            String moduleDir = modules.next().toString();
+
+            File pomFile = new File( project.getBasedir(), moduleDir );
+
+            try
+            {
+                projectBuilder.build( pomFile, getLocalRepository(), getProfileManager( settings ) );
+
+                reactorProjects.add( projectBuilder );
+            }
+            catch ( ProjectBuildingException e )
+            {
+                throw new ContinuumReleaseException( "Failed to build project.", e );
+            }
+        }
+
+        return reactorProjects;
+    }
+
+    private File getProjectDescriptorFile( ReleaseDescriptor descriptor )
+    {
+        String parentPath = descriptor.getWorkingDirectory();
+
+        String pomFilename = descriptor.getPomFileName();
+        if ( pomFilename == null )
+        {
+            pomFilename = "pom.xml";
+        }
+
+        return new File( parentPath, pomFilename );
+    }
+
+    private ArtifactRepository getLocalRepository()
+    {
+        return new DefaultArtifactRepository( "local-repository", "file://" + localRepository,
+                                              new DefaultRepositoryLayout() );
+    }
+
+    private ProfileManager getProfileManager( Settings settings )
+    {
+        return new DefaultProfileManager( container, settings );
+    }
+
+    public void contextualize( Context context )
+        throws ContextException
+    {
+        container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
     }
 }

Added: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java?rev=439056&view=auto
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java (added)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java Thu Aug 31 14:42:46 2006
@@ -0,0 +1,34 @@
+package org.apache.maven.continuum.release.executors;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
+import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
+import org.codehaus.plexus.taskqueue.Task;
+
+/**
+ * @author Edwin Punzalan
+ */
+public class PerformReleaseTaskExecutor
+    implements TaskExecutor
+{
+    public void executeTask( Task task )
+        throws TaskExecutionException
+    {
+
+    }
+}

Propchange: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java?rev=439056&view=auto
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java (added)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java Thu Aug 31 14:42:46 2006
@@ -0,0 +1,34 @@
+package org.apache.maven.continuum.release.executors;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.codehaus.plexus.taskqueue.execution.TaskExecutor;
+import org.codehaus.plexus.taskqueue.execution.TaskExecutionException;
+import org.codehaus.plexus.taskqueue.Task;
+
+/**
+ * @author Edwin Punzalan
+ */
+public class PrepareReleaseTaskExecutor
+    implements TaskExecutor
+{
+    public void executeTask( Task task )
+        throws TaskExecutionException
+    {
+
+    }
+}

Propchange: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PrepareReleaseTaskExecutor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java?rev=439056&view=auto
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java (added)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java Thu Aug 31 14:42:46 2006
@@ -0,0 +1,87 @@
+package org.apache.maven.continuum.release.tasks;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+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 ReleaseDescriptor descriptor;
+
+    private Settings settings;
+
+    private List reactorProjects;
+
+    public AbstractReleaseProjectTask( int projectId, ReleaseDescriptor descriptor,
+                                       Settings settings, List reactorProjects )
+    {
+        this.projectId = projectId;
+        this.descriptor = descriptor;
+        this.settings = settings;
+        this.reactorProjects = reactorProjects;
+    }
+
+    public ReleaseDescriptor getDescriptor()
+    {
+        return descriptor;
+    }
+
+    public void setDescriptor( ReleaseDescriptor descriptor )
+    {
+        this.descriptor = descriptor;
+    }
+
+    public int getProjectId()
+    {
+        return projectId;
+    }
+
+    public void setProjectId( int projectId )
+    {
+        this.projectId = projectId;
+    }
+
+    public Settings getSettings()
+    {
+        return settings;
+    }
+
+    public void setSettings( Settings settings )
+    {
+        this.settings = settings;
+    }
+
+    public List getReactorProjects()
+    {
+        return reactorProjects;
+    }
+
+    public void setReactorProjects( List reactorProjects )
+    {
+        this.reactorProjects = reactorProjects;
+    }
+}

Propchange: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java?rev=439056&view=auto
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java (added)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java Thu Aug 31 14:42:46 2006
@@ -0,0 +1,62 @@
+package org.apache.maven.continuum.release.tasks;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
+
+import java.util.List;
+
+/**
+ * @author Edwin Punzalan
+ */
+public class PerformReleaseProjectTask
+    extends AbstractReleaseProjectTask
+{
+    private String goals;
+
+    private boolean useReleaseProfile = true;
+
+    public PerformReleaseProjectTask( int projectId, ReleaseDescriptor descriptor,
+                                      Settings settings, List reactorProjects,
+                                      String goals, boolean useReleaseProfile )
+    {
+        super( projectId, descriptor, settings, reactorProjects );
+        this.goals = goals;
+        this.useReleaseProfile = useReleaseProfile;
+    }
+
+    public String getGoals()
+    {
+        return goals;
+    }
+
+    public void setGoals( String goals )
+    {
+        this.goals = goals;
+    }
+
+    public boolean isUseReleaseProfile()
+    {
+        return useReleaseProfile;
+    }
+
+    public void setUseReleaseProfile( boolean useReleaseProfile )
+    {
+        this.useReleaseProfile = useReleaseProfile;
+    }
+}

Propchange: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java?rev=439056&view=auto
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java (added)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java Thu Aug 31 14:42:46 2006
@@ -0,0 +1,35 @@
+package org.apache.maven.continuum.release.tasks;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.settings.Settings;
+
+import java.util.List;
+
+/**
+ * @author Edwin Punzalan
+ */
+public class PrepareReleaseProjectTask
+    extends AbstractReleaseProjectTask
+{
+    public PrepareReleaseProjectTask( int projectId, ReleaseDescriptor descriptor,
+                                      Settings settings, List reactorProjects )
+    {
+        super( projectId, descriptor, settings, reactorProjects );
+    }
+}

Propchange: maven/continuum/branches/release-integration/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/continuum/branches/release-integration/continuum-release/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/main/resources/META-INF/plexus/components.xml?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/continuum/branches/release-integration/continuum-release/src/main/resources/META-INF/plexus/components.xml Thu Aug 31 14:42:46 2006
@@ -6,9 +6,121 @@
       <implementation>org.apache.maven.continuum.release.DefaultContinuumReleaseManager</implementation>
       <requirements>
         <requirement>
+          <role>org.apache.maven.project.MavenProjectBuilder</role>          
+        </requirement>
+        <requirement>
           <role>org.apache.maven.plugins.release.ReleaseManager</role>          
         </requirement>
+        <requirement>
+          <role>org.apache.maven.continuum.execution.maven.m2.MavenBuilderHelper</role>
+        </requirement>
+        <requirement>
+          <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
+          <role-hint>perpare-release</role-hint>
+          <field-name>prepareReleaseQueue</field-name>
+        </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>
+      </configuration>
     </component>
   </components>
-</component-set>
\ No newline at end of file
+
+  <!--
+   |
+   | 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>
+
+</component-set>

Modified: maven/continuum/branches/release-integration/continuum-release/src/test/java/org/apache/maven/continuum/ContinuumReleaseManagerTest.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum-release/src/test/java/org/apache/maven/continuum/ContinuumReleaseManagerTest.java?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/continuum-release/src/test/java/org/apache/maven/continuum/ContinuumReleaseManagerTest.java (original)
+++ maven/continuum/branches/release-integration/continuum-release/src/test/java/org/apache/maven/continuum/ContinuumReleaseManagerTest.java Thu Aug 31 14:42:46 2006
@@ -1,5 +1,21 @@
 package org.apache.maven.continuum;
 
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import org.codehaus.plexus.PlexusTestCase;
 import org.apache.maven.continuum.release.ContinuumReleaseManager;
 import org.apache.maven.plugins.release.model.Release;
@@ -17,6 +33,6 @@
 
         Release r = new Release();
 
-        crm.release( r );
+        crm.perform( r );
     }
 }

Modified: maven/continuum/branches/release-integration/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/pom.xml?rev=439056&r1=439055&r2=439056&view=diff
==============================================================================
--- maven/continuum/branches/release-integration/pom.xml (original)
+++ maven/continuum/branches/release-integration/pom.xml Thu Aug 31 14:42:46 2006
@@ -86,6 +86,7 @@
     <!-- module>continuum-web</module --> <!--Remove this when webapp will be ready and packaged as a plexus-application -->
     <module>continuum-webapp</module>
     <module>continuum-xmlrpc</module>
+    <module>continuum-release</module>
   </modules>
   <repositories>
     <repository>