You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2008/09/24 03:55:20 UTC
svn commit: r698412 - in /continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/release/
continuum-commons/ continuum-commons/src/main/java/org/apache/continuum/
continuum-commons/src/main/java/org/apache/continuum/utils/ continuum-co...
Author: ctan
Date: Tue Sep 23 18:55:19 2008
New Revision: 698412
URL: http://svn.apache.org/viewvc?rev=698412&view=rev
Log:
merge branch CONTINUUM-1572
Added:
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/
- copied from r698102, continuum/branches/CONTINUUM-1572/continuum-commons/src/main/java/org/apache/continuum/
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/utils/
- copied from r698102, continuum/branches/CONTINUUM-1572/continuum-commons/src/main/java/org/apache/continuum/utils/
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/utils/shell/
- copied from r698102, continuum/branches/CONTINUUM-1572/continuum-commons/src/main/java/org/apache/continuum/utils/shell/
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/utils/shell/DefaultShellCommandHelper.java
- copied unchanged from r698102, continuum/branches/CONTINUUM-1572/continuum-commons/src/main/java/org/apache/continuum/utils/shell/DefaultShellCommandHelper.java
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/utils/shell/ExecutionResult.java
- copied unchanged from r698102, continuum/branches/CONTINUUM-1572/continuum-commons/src/main/java/org/apache/continuum/utils/shell/ExecutionResult.java
continuum/trunk/continuum-commons/src/main/java/org/apache/continuum/utils/shell/ShellCommandHelper.java
- copied unchanged from r698102, continuum/branches/CONTINUUM-1572/continuum-commons/src/main/java/org/apache/continuum/utils/shell/ShellCommandHelper.java
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/
- copied from r698102, continuum/branches/CONTINUUM-1572/continuum-release/src/main/java/org/apache/continuum/
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/
- copied from r698102, continuum/branches/CONTINUUM-1572/continuum-release/src/main/java/org/apache/continuum/release/
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/config/
- copied from r698102, continuum/branches/CONTINUUM-1572/continuum-release/src/main/java/org/apache/continuum/release/config/
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/config/ContinuumPropertiesReleaseDescriptorStore.java
- copied unchanged from r698102, continuum/branches/CONTINUUM-1572/continuum-release/src/main/java/org/apache/continuum/release/config/ContinuumPropertiesReleaseDescriptorStore.java
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/config/ContinuumReleaseDescriptor.java
- copied unchanged from r698102, continuum/branches/CONTINUUM-1572/continuum-release/src/main/java/org/apache/continuum/release/config/ContinuumReleaseDescriptor.java
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/phase/
- copied from r698102, continuum/branches/CONTINUUM-1572/continuum-release/src/main/java/org/apache/continuum/release/phase/
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/phase/AbstractContinuumRunGoalsPhase.java
- copied unchanged from r698102, continuum/branches/CONTINUUM-1572/continuum-release/src/main/java/org/apache/continuum/release/phase/AbstractContinuumRunGoalsPhase.java
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/phase/RunPerformGoalsPhase.java
- copied unchanged from r698102, continuum/branches/CONTINUUM-1572/continuum-release/src/main/java/org/apache/continuum/release/phase/RunPerformGoalsPhase.java
continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/phase/RunPrepareGoalsPhase.java
- copied unchanged from r698102, continuum/branches/CONTINUUM-1572/continuum-release/src/main/java/org/apache/continuum/release/phase/RunPrepareGoalsPhase.java
Removed:
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/utils/shell/
Modified:
continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
continuum/trunk/continuum-commons/pom.xml
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/profile/DefaultProfileService.java
continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/execution/ContinuumBuildExecutorTest.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java
continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/RollbackReleaseProjectTask.java
continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml
continuum/trunk/continuum-release/src/test/java/org/apache/maven/continuum/release/executors/ReleaseTaskExecutorTest.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ProfileAction.java
continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/profilesList.jsp
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePerformFromScm.jsp
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePrepare.jsp
Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java Tue Sep 23 18:55:19 2008
@@ -21,6 +21,7 @@
import org.apache.continuum.model.repository.LocalRepository;
import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.system.Profile;
import java.io.File;
import java.util.Map;
@@ -50,6 +51,22 @@
String prepare( Project project, Properties releaseProperties, Map releaseVersions, Map developmentVersions,
ContinuumReleaseManagerListener listener )
throws ContinuumReleaseException;
+
+ /**
+ * Prepare a project for release
+ *
+ * @param project
+ * @param releaseProperties
+ * @param releaseVersions
+ * @param developmentVersions
+ * @param listener
+ * @param profile
+ * @return
+ * @throws ContinuumReleaseException
+ */
+ String prepare( Project project, Properties releaseProperties, Map releaseVersions, Map developmentVersions,
+ ContinuumReleaseManagerListener listener, Profile profile )
+ throws ContinuumReleaseException;
/**
* Perform a release based on a given releaseId
@@ -99,4 +116,6 @@
void perform( String releaseId, File buildDirectory, String goals, boolean useReleaseProfile,
ContinuumReleaseManagerListener listener, LocalRepository repository )
throws ContinuumReleaseException;
+
+ Map<String, String> getEnvironments( Profile profile );
}
Modified: continuum/trunk/continuum-commons/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-commons/pom.xml?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-commons/pom.xml (original)
+++ continuum/trunk/continuum-commons/pom.xml Tue Sep 23 18:55:19 2008
@@ -43,6 +43,17 @@
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-spring</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven.release</groupId>
+ <artifactId>maven-release-manager</artifactId>
+ <version>1.0-alpha-3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<!-- === Testing Dependencies === -->
<dependency>
<groupId>hsqldb</groupId>
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java Tue Sep 23 18:55:19 2008
@@ -19,6 +19,8 @@
* under the License.
*/
+import org.apache.continuum.utils.shell.ExecutionResult;
+import org.apache.continuum.utils.shell.ShellCommandHelper;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.continuum.installation.InstallationService;
import org.apache.maven.continuum.model.project.BuildDefinition;
@@ -28,8 +30,6 @@
import org.apache.maven.continuum.model.system.Profile;
import org.apache.maven.continuum.project.ContinuumProjectState;
import org.apache.maven.continuum.utils.WorkingDirectoryService;
-import org.apache.maven.continuum.utils.shell.ExecutionResult;
-import org.apache.maven.continuum.utils.shell.ShellCommandHelper;
import org.codehaus.plexus.commandline.ExecutableResolver;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/profile/DefaultProfileService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/profile/DefaultProfileService.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/profile/DefaultProfileService.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/profile/DefaultProfileService.java Tue Sep 23 18:55:19 2008
@@ -131,7 +131,14 @@
public void deleteProfile( int profileId )
throws ProfileException
{
- profileDao.removeProfile( getProfile( profileId ) );
+ try
+ {
+ profileDao.removeProfile( getProfile( profileId ) );
+ }
+ catch ( Exception e )
+ {
+ throw new ProfileException( "Cannot remove the profile", e );
+ }
}
/**
Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/execution/ContinuumBuildExecutorTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/execution/ContinuumBuildExecutorTest.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/execution/ContinuumBuildExecutorTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/execution/ContinuumBuildExecutorTest.java Tue Sep 23 18:55:19 2008
@@ -25,14 +25,14 @@
import junit.framework.TestCase;
+import org.apache.continuum.utils.shell.ExecutionResult;
+import org.apache.continuum.utils.shell.ShellCommandHelper;
import org.apache.maven.continuum.configuration.ConfigurationService;
import org.apache.maven.continuum.configuration.DefaultConfigurationService;
import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.utils.ChrootJailWorkingDirectoryService;
-import org.apache.maven.continuum.utils.shell.ExecutionResult;
-import org.apache.maven.continuum.utils.shell.ShellCommandHelper;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.logging.console.ConsoleLogger;
import org.jmock.Expectations;
Modified: continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java (original)
+++ continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java Tue Sep 23 18:55:19 2008
@@ -20,7 +20,11 @@
*/
import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.continuum.release.config.ContinuumReleaseDescriptor;
+import org.apache.maven.continuum.installation.InstallationService;
import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.system.Installation;
+import org.apache.maven.continuum.model.system.Profile;
import org.apache.maven.continuum.release.tasks.PerformReleaseProjectTask;
import org.apache.maven.continuum.release.tasks.PrepareReleaseProjectTask;
import org.apache.maven.continuum.release.tasks.RollbackReleaseProjectTask;
@@ -32,9 +36,13 @@
import org.codehaus.plexus.taskqueue.Task;
import org.codehaus.plexus.taskqueue.TaskQueue;
import org.codehaus.plexus.taskqueue.TaskQueueException;
+import org.codehaus.plexus.util.StringUtils;
import java.io.File;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.Hashtable;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -69,6 +77,11 @@
* @plexus.requirement
*/
private WorkingDirectoryService workingDirectoryService;
+
+ /**
+ * @plexus.requirement
+ */
+ private InstallationService installationService;
private Map listeners;
@@ -90,16 +103,23 @@
ContinuumReleaseManagerListener listener )
throws ContinuumReleaseException
{
+ return prepare( project, releaseProperties, relVersions, devVersions, listener, null );
+ }
+
+ public String prepare( Project project, Properties releaseProperties, Map relVersions, Map devVersions,
+ ContinuumReleaseManagerListener listener, Profile profile )
+ throws ContinuumReleaseException
+ {
String releaseId = project.getGroupId() + ":" + project.getArtifactId();
- ReleaseDescriptor descriptor = getReleaseDescriptor( project, releaseProperties, relVersions, devVersions );
+ ReleaseDescriptor descriptor = getReleaseDescriptor( project, releaseProperties, relVersions, devVersions, profile );
getListeners().put( releaseId, listener );
try
{
prepareReleaseQueue.put(
- new PrepareReleaseProjectTask( releaseId, descriptor, (ReleaseManagerListener) listener ) );
+ new PrepareReleaseProjectTask( releaseId, descriptor, (ReleaseManagerListener) listener, profile ) );
}
catch ( TaskQueueException e )
@@ -199,10 +219,43 @@
return releaseResults;
}
+ public Map<String, String> getEnvironments( Profile profile )
+ {
+ if ( profile == null )
+ {
+ return Collections.EMPTY_MAP;
+ }
+
+ Map<String, String> envVars = new HashMap<String, String>();
+ if ( profile == null )
+ {
+ return envVars;
+ }
+
+ String javaHome = getJavaHomeValue( profile );
+ if ( !StringUtils.isEmpty( javaHome ) )
+ {
+ envVars.put( installationService.getEnvVar( InstallationService.JDK_TYPE ), javaHome );
+ }
+
+ Installation builder = profile.getBuilder();
+ if ( builder != null )
+ {
+ envVars.put( installationService.getEnvVar( InstallationService.MAVEN2_TYPE ), builder.getVarValue() );
+ }
+
+ List<Installation> installations = profile.getEnvironmentVariables();
+ for ( Installation installation : installations )
+ {
+ envVars.put( installation.getVarName(), installation.getVarValue() );
+ }
+ return envVars;
+ }
+
private ReleaseDescriptor getReleaseDescriptor( Project project, Properties releaseProperties, Map relVersions,
- Map devVersions )
+ Map devVersions, Profile profile )
{
- ReleaseDescriptor descriptor = new ReleaseDescriptor();
+ ContinuumReleaseDescriptor descriptor = new ContinuumReleaseDescriptor();
String workingDirectory = workingDirectoryService.getWorkingDirectory( project ).getPath();
//release properties from the project
@@ -235,7 +288,10 @@
//forced properties
descriptor.setInteractive( false );
-
+
+ //set environments
+ descriptor.setEnvironments( getEnvironments( profile ) );
+
return descriptor;
}
@@ -266,4 +322,14 @@
return listeners;
}
+
+ private String getJavaHomeValue( Profile profile )
+ {
+ Installation jdk = profile.getJdk();
+ if ( jdk == null )
+ {
+ return null;
+ }
+ return jdk.getVarValue();
+ }
}
Modified: continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java (original)
+++ continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java Tue Sep 23 18:55:19 2008
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.maven.continuum.model.system.Profile;
import org.apache.maven.shared.release.ReleaseManagerListener;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.codehaus.plexus.taskqueue.Task;
@@ -37,11 +38,15 @@
private long maxExecutionTime;
- public AbstractReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, ReleaseManagerListener listener )
+ private Profile profile;
+
+ public AbstractReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, ReleaseManagerListener listener,
+ Profile profile )
{
this.releaseId = releaseId;
this.descriptor = descriptor;
this.listener = listener;
+ this.profile = profile;
}
public ReleaseDescriptor getDescriptor()
@@ -83,4 +88,14 @@
{
this.maxExecutionTime = maxTime;
}
+
+ public Profile getProfile()
+ {
+ return profile;
+ }
+
+ public void setProfile( Profile profile )
+ {
+ this.profile = profile;
+ }
}
Modified: continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java (original)
+++ continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java Tue Sep 23 18:55:19 2008
@@ -20,6 +20,7 @@
*/
import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.maven.continuum.model.system.Profile;
import org.apache.maven.shared.release.ReleaseManagerListener;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
@@ -42,13 +43,20 @@
public PerformReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, File buildDirectory, String goals,
boolean useReleaseProfile, ReleaseManagerListener listener )
{
- this( releaseId, descriptor, buildDirectory, goals, useReleaseProfile, listener, null );
+ this( releaseId, descriptor, buildDirectory, goals, useReleaseProfile, listener, null, null );
}
public PerformReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, File buildDirectory, String goals,
boolean useReleaseProfile, ReleaseManagerListener listener, LocalRepository repository )
{
- super( releaseId, descriptor, listener );
+ this( releaseId, descriptor, buildDirectory, goals, useReleaseProfile, listener, repository, null );
+ }
+
+ public PerformReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, File buildDirectory, String goals,
+ boolean useReleaseProfile, ReleaseManagerListener listener, LocalRepository repository,
+ Profile profile )
+ {
+ super( releaseId, descriptor, listener, profile );
setBuildDirectory( buildDirectory );
setGoals( goals );
setUseReleaseProfile( useReleaseProfile );
Modified: continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java (original)
+++ continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java Tue Sep 23 18:55:19 2008
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.maven.continuum.model.system.Profile;
import org.apache.maven.shared.release.ReleaseManagerListener;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
@@ -30,6 +31,11 @@
{
public PrepareReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, ReleaseManagerListener listener )
{
- super( releaseId, descriptor, listener );
+ this( releaseId, descriptor, listener, null );
+ }
+
+ public PrepareReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, ReleaseManagerListener listener, Profile profile )
+ {
+ super( releaseId, descriptor, listener, profile );
}
}
Modified: continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/RollbackReleaseProjectTask.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/RollbackReleaseProjectTask.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/RollbackReleaseProjectTask.java (original)
+++ continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/RollbackReleaseProjectTask.java Tue Sep 23 18:55:19 2008
@@ -1,5 +1,6 @@
package org.apache.maven.continuum.release.tasks;
+import org.apache.maven.continuum.model.system.Profile;
import org.apache.maven.shared.release.ReleaseManagerListener;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
@@ -30,6 +31,11 @@
{
public RollbackReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, ReleaseManagerListener listener )
{
- super( releaseId, descriptor, listener );
+ this( releaseId, descriptor, listener, null );
+ }
+
+ public RollbackReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, ReleaseManagerListener listener, Profile profile )
+ {
+ super( releaseId, descriptor, listener, profile );
}
}
Modified: continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml (original)
+++ continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml Tue Sep 23 18:55:19 2008
@@ -240,7 +240,7 @@
</requirement>
<requirement>
<role>org.apache.maven.shared.release.config.ReleaseDescriptorStore</role>
- <role-hint>properties</role-hint>
+ <role-hint>continuum-release-properties</role-hint>
<field-name>configStore</field-name>
</requirement>
<requirement>
@@ -260,7 +260,7 @@
<phase>map-development-versions</phase>
<phase>rewrite-poms-for-release</phase>
<phase>generate-release-poms</phase>
- <phase>run-preparation-goals</phase>
+ <phase>run-release-prepare-goals</phase>
<phase>scm-commit-release</phase>
<phase>scm-tag</phase>
<phase>rewrite-poms-for-development</phase>
@@ -271,7 +271,7 @@
<performPhases>
<phase>verify-completed-prepare-phases</phase>
<phase>checkout-project-from-scm</phase>
- <phase>run-perform-goals</phase>
+ <phase>run-release-perform-goals</phase>
</performPhases>
<rollbackPhases>
<phase>generate-reactor-projects</phase>
@@ -304,7 +304,27 @@
</requirement>
</requirements>
</component>
-
+ <component>
+ <role>org.apache.maven.shared.release.phase.ReleasePhase</role>
+ <role-hint>run-release-prepare-goals</role-hint>
+ <implementation>org.apache.continuum.release.phase.RunPrepareGoalsPhase</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.continuum.utils.shell.ShellCommandHelper</role>
+ </requirement>
+ </requirements>
+ </component>
+ <component>
+ <role>org.apache.maven.shared.release.phase.ReleasePhase</role>
+ <role-hint>run-release-perform-goals</role-hint>
+ <implementation>org.apache.continuum.release.phase.RunPerformGoalsPhase</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.continuum.utils.shell.ShellCommandHelper</role>
+ </requirement>
+ </requirements>
+ </component>
+
<!-- This needs to be removed once we can upgrade maven-project to 2.1-SNAPSHOT or later. -->
<component>
<role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
@@ -318,12 +338,16 @@
<role>org.apache.maven.artifact.factory.ArtifactFactory</role>
</requirement>
<requirement>
- <role>org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager</role
->
+ <role>org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager</role>
</requirement>
</requirements>
</component>
+ <component>
+ <role>org.apache.maven.shared.release.config.ReleaseDescriptorStore</role>
+ <role-hint>continuum-release-properties</role-hint>
+ <implementation>org.apache.continuum.release.config.ContinuumPropertiesReleaseDescriptorStore</implementation>
+ </component>
</components>
</component-set>
Modified: continuum/trunk/continuum-release/src/test/java/org/apache/maven/continuum/release/executors/ReleaseTaskExecutorTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-release/src/test/java/org/apache/maven/continuum/release/executors/ReleaseTaskExecutorTest.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-release/src/test/java/org/apache/maven/continuum/release/executors/ReleaseTaskExecutorTest.java (original)
+++ continuum/trunk/continuum-release/src/test/java/org/apache/maven/continuum/release/executors/ReleaseTaskExecutorTest.java Tue Sep 23 18:55:19 2008
@@ -21,6 +21,7 @@
import java.io.File;
+import org.apache.continuum.release.config.ContinuumReleaseDescriptor;
import org.apache.maven.continuum.release.ContinuumReleaseManager;
import org.apache.maven.continuum.release.tasks.PerformReleaseProjectTask;
import org.apache.maven.continuum.release.tasks.PrepareReleaseProjectTask;
@@ -98,7 +99,7 @@
File testDir = new File( getBasedir(), "target/test-classes/test-dir" );
FileUtils.deleteDirectory( testDir );
- ReleaseDescriptor descriptor = new ReleaseDescriptor();
+ ContinuumReleaseDescriptor descriptor = new ContinuumReleaseDescriptor();
descriptor.setInteractive( false );
descriptor.setScmSourceUrl( "scm:svn:file://localhost/" + scmPath + "/trunk" );
descriptor.setWorkingDirectory( workDir.getAbsolutePath() );
@@ -140,7 +141,7 @@
File testDir = new File( getBasedir(), "target/test-classes/test-dir" );
FileUtils.deleteDirectory( testDir );
- ReleaseDescriptor descriptor = new ReleaseDescriptor();
+ ContinuumReleaseDescriptor descriptor = new ContinuumReleaseDescriptor();
descriptor.setInteractive( false );
descriptor.setScmSourceUrl( "scm:svn:file://localhost/" + scmPath + "/trunk" );
descriptor.setWorkingDirectory( workDir.getAbsolutePath() );
@@ -185,7 +186,7 @@
File testDir = new File( getBasedir(), "target/test-classes/test-dir" );
FileUtils.deleteDirectory( testDir );
- ReleaseDescriptor descriptor = new ReleaseDescriptor();
+ ContinuumReleaseDescriptor descriptor = new ContinuumReleaseDescriptor();
descriptor.setInteractive( false );
descriptor.setScmSourceUrl( "scm:svn:file://localhost/" + scmPath + "/trunk" );
descriptor.setWorkingDirectory( workDir.getAbsolutePath() );
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java Tue Sep 23 18:55:19 2008
@@ -20,8 +20,10 @@
*/
import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.continuum.release.config.ContinuumReleaseDescriptor;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.system.Profile;
import org.apache.maven.continuum.release.ContinuumReleaseManager;
import org.apache.maven.continuum.release.ContinuumReleaseManagerListener;
import org.apache.maven.continuum.release.DefaultReleaseManagerListener;
@@ -31,6 +33,7 @@
import org.apache.maven.shared.release.config.ReleaseDescriptor;
import java.io.File;
+import java.util.List;
/**
* @author Edwin Punzalan
@@ -63,6 +66,10 @@
private String projectGroupName = "";
+ private List<Profile> profiles;
+
+ private int profileId;
+
public String inputFromScm()
throws Exception
{
@@ -79,6 +86,8 @@
releaseId = "";
+ profiles = this.getContinuum().getProfileService().getAllProfiles();
+
return SUCCESS;
}
@@ -132,12 +141,20 @@
{
ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
- ReleaseDescriptor descriptor = new ReleaseDescriptor();
+ ContinuumReleaseDescriptor descriptor = new ContinuumReleaseDescriptor();
descriptor.setScmSourceUrl( scmUrl );
descriptor.setScmUsername( scmUsername );
descriptor.setScmPassword( scmPassword );
descriptor.setScmReleaseLabel( scmTag );
descriptor.setScmTagBase( scmTagBase );
+
+ Profile profile = null;
+
+ if ( profileId != -1 )
+ {
+ profile = getContinuum().getProfileService().getProfile( profileId );
+ descriptor.setEnvironments( releaseManager.getEnvironments( profile ) );
+ }
do
{
@@ -291,4 +308,25 @@
return projectGroupName;
}
+
+ public List<Profile> getProfiles()
+ {
+ return profiles;
+ }
+
+ public void setProfiles( List<Profile> profiles )
+ {
+ this.profiles = profiles;
+ }
+
+ public int getProfileId()
+ {
+ return profileId;
+ }
+
+ public void setProfileId( int profileId )
+ {
+ this.profileId = profileId;
+ }
+
}
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java Tue Sep 23 18:55:19 2008
@@ -21,6 +21,7 @@
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.system.Profile;
import org.apache.maven.continuum.release.ContinuumReleaseManager;
import org.apache.maven.continuum.release.ContinuumReleaseManagerListener;
import org.apache.maven.continuum.release.DefaultReleaseManagerListener;
@@ -85,6 +86,10 @@
private String projectGroupName = "";
+ private List<Profile> profiles;
+
+ private int profileId;
+
public String input()
throws Exception
{
@@ -138,6 +143,8 @@
processProject( workingDirectory, "pom.xml" );
+ profiles = this.getContinuum().getProfileService().getAllProfiles();
+
return SUCCESS;
}
@@ -210,11 +217,18 @@
{
name = project.getArtifactId();
}
+
+ Profile profile = null;
+
+ if ( profileId != -1 )
+ {
+ profile = getContinuum().getProfileService().getProfile( profileId );
+ }
ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
releaseId =
- releaseManager.prepare( project, getReleaseProperties(), getRelVersionMap(), getDevVersionMap(), listener );
+ releaseManager.prepare( project, getReleaseProperties(), getRelVersionMap(), getDevVersionMap(), listener, profile );
return SUCCESS;
}
@@ -526,4 +540,24 @@
return projectGroupName;
}
+
+ public List<Profile> getProfiles()
+ {
+ return profiles;
+ }
+
+ public void setProfiles( List<Profile> profiles )
+ {
+ this.profiles = profiles;
+ }
+
+ public int getProfileId()
+ {
+ return profileId;
+ }
+
+ public void setProfileId( int profileId )
+ {
+ this.profileId = profileId;
+ }
}
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ProfileAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ProfileAction.java?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ProfileAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ProfileAction.java Tue Sep 23 18:55:19 2008
@@ -37,6 +37,7 @@
import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;
+import com.opensymphony.webwork.ServletActionContext;
import com.opensymphony.xwork.Preparable;
/**
@@ -70,6 +71,8 @@
private List<Installation> profileInstallations;
+ private String message;
+
// -------------------------------------------------------
// Webwork Methods
// -------------------------------------------------------
@@ -84,6 +87,13 @@
public String list()
throws Exception
{
+ String errorMessage = ServletActionContext.getRequest().getParameter( "errorMessage" );
+
+ if ( errorMessage != null )
+ {
+ addActionError( errorMessage );
+ }
+
this.profiles = profileService.getAllProfiles();
return SUCCESS;
}
@@ -149,10 +159,18 @@
public String delete()
throws Exception
- {
- profileService.deleteProfile( profile.getId() );
- this.profiles = profileService.getAllProfiles();
- return SUCCESS;
+ {
+ try
+ {
+ profileService.deleteProfile( profile.getId() );
+ this.profiles = profileService.getAllProfiles();
+ return SUCCESS;
+ }
+ catch ( ProfileException e )
+ {
+ message = "profile.remove.error";
+ return ERROR;
+ }
}
public String confirmDelete()
@@ -283,4 +301,14 @@
{
this.installationId = installationId;
}
+
+ public String getMessage()
+ {
+ return message;
+ }
+
+ public void setMessage( String message )
+ {
+ this.message = message;
+ }
}
Modified: continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Tue Sep 23 18:55:19 2008
@@ -657,6 +657,20 @@
releaseViewResult.noOutput=No Output
releaseViewResult.projectName=Project Name
releaseViewResult.releaseGoal=Release Goal
+releasePrepare.scmUsername.label=SCM Username
+releasePrepare.scmPassword.label=SCM Password
+releasePrepare.scmTag.label=SCM Tag
+releasePrepare.scmTagBase.label=SCM Tag Base
+releasePrepare.prepareGoals.label=Preparation Goals
+releasePrepare.buildEnvironment.label=Build Environment
+releasePerformFromScm.scmUrl.label=SCM Connection URL
+releasePerformFromScm.scmUsername.label=SCM Username
+releasePerformFromScm.scmPassword.label=SCM Password
+releasePerformFromScm.scmTag.label=SCM Tag
+releasePerformFromScm.scmTagBase.label=SCM Tag Base
+releasePerformFromScm.goals.label=Maven Arguments
+releasePerformFromScm.useReleaseProfile.label=Use Release Profile
+releasePerformFromScm.buildEnvironment.label=Build Environment
# ----------------------------------------------------------------------
# Page: User
@@ -700,6 +714,7 @@
profile.no.installations = No installations available
profile.name.already.exists = A Build Environment with the same name already exists
profile.name.required = You must define a name.
+profile.remove.error = The Build Environment can't be removed, it is probably used by a build definition.
# ----------------------------------------------------------------------
# Page: Installations List
Modified: continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/xwork.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/xwork.xml Tue Sep 23 18:55:19 2008
@@ -626,6 +626,12 @@
<param name="namespace">/admin</param>
<param name="method">list</param>
</result>
+ <result name="error" type="redirect-action">
+ <param name="actionName">buildEnvList</param>
+ <param name="namespace">/admin</param>
+ <param name="method">list</param>
+ <param name="errorMessage">${message}</param>
+ </result>
</action>
<action name="confirmDeleteBuildEnv" class="profileAdministration" method="confirmDelete">
Modified: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/profilesList.jsp
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/profilesList.jsp?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/profilesList.jsp (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/profilesList.jsp Tue Sep 23 18:55:19 2008
@@ -33,6 +33,14 @@
<ww:text name="profilesList.section.title"/>
</h3>
+ <c:if test="${!empty actionErrors}">
+ <div class="errormessage">
+ <c:forEach items="${actionErrors}" var="actionError">
+ <p><ww:text name="${actionError}"/></p>
+ </c:forEach>
+ </div>
+ </c:if>
+
<ww:if test="${not empty profiles}">
<ec:table items="profiles"
var="profile"
Modified: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePerformFromScm.jsp
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePerformFromScm.jsp?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePerformFromScm.jsp (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePerformFromScm.jsp Tue Sep 23 18:55:19 2008
@@ -31,15 +31,17 @@
<ww:hidden name="projectId"/>
<div class="axial">
<table border="1" cellspacing="2" cellpadding="3" width="100%">
- <ww:textfield label="SCM Connection URL" name="scmUrl"/>
- <ww:textfield label="SCM Username" name="scmUsername"/>
- <ww:password label="SCM Password" name="scmPassword"/>
- <ww:textfield label="SCM Tag" name="scmTag"/>
+ <ww:textfield label="%{getText('releasePerformFromScm.scmUrl.label')}" name="scmUrl"/>
+ <ww:textfield label="%{getText('releasePerformFromScm.scmUsername.label')}" name="scmUsername"/>
+ <ww:password label="%{getText('releasePerformFromScm.scmPassword.label')}" name="scmPassword"/>
+ <ww:textfield label="%{getText('releasePerformFromScm.scmTag.label')}" name="scmTag"/>
<c:if test="${!empty (scmTagBase)}">
- <ww:textfield label="SCM Tag Base" name="scmTagBase"/>
+ <ww:textfield label="%{getText('releasePerformFromScm.scmTagBase.label')}" name="scmTagBase"/>
</c:if>
- <ww:textfield label="Maven Arguments" name="goals" value="clean deploy"/>
- <ww:checkbox label="Use Release Profile" name="useReleaseProfile" value="true"/>
+ <ww:textfield label="%{getText('releasePerformFromScm.goals.label')}" name="goals" value="clean deploy"/>
+ <ww:checkbox label="%{getText('releasePerformFromScm.useReleaseProfile.label')}" name="useReleaseProfile" value="true"/>
+ <ww:select label="%{getText('releasePerformFromScm.buildEnvironment.label')}" name="profileId" list="profiles" listValue="name"
+ listKey="id" headerKey="-1" headerValue=""/>
</table>
</div>
<ww:submit/>
Modified: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePrepare.jsp
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePrepare.jsp?rev=698412&r1=698411&r2=698412&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePrepare.jsp (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/releasePrepare.jsp Tue Sep 23 18:55:19 2008
@@ -32,14 +32,16 @@
<input type="hidden" name="projectId" value="<ww:property value="projectId"/>"/>
<div class="axial">
<table border="1" cellspacing="2" cellpadding="3" width="100%">
- <ww:textfield label="SCM Username" name="scmUsername" required="true"/>
- <ww:password label="SCM Password" name="scmPassword" required="true"/>
- <ww:textfield label="SCM Tag" name="scmTag" required="true"/>
+ <ww:textfield label="%{getText('releasePrepare.scmUsername.label')}" name="scmUsername" required="true"/>
+ <ww:password label="%{getText('releasePrepare.scmPassword.label')}" name="scmPassword" required="true"/>
+ <ww:textfield label="%{getText('releasePrepare.scmTag.label')}" name="scmTag" required="true"/>
<c:if test="${!empty (scmTagBase)}">
- <ww:textfield label="SCM Tag Base" name="scmTagBase"/>
+ <ww:textfield label="%{getText('releasePrepare.scmTagBase.label')}" name="scmTagBase"/>
</c:if>
- <ww:textfield label="Preparation Goals" name="prepareGoals" required="true"/>
- </table>
+ <ww:textfield label="%{getText('releasePrepare.prepareGoals.label')}" name="prepareGoals" required="true"/>
+ <ww:select label="%{getText('releasePrepare.buildEnvironment.label')}" name="profileId" list="profiles" listValue="name"
+ listKey="id" headerKey="-1" headerValue=""/>
+ </table>
</div>
<ww:iterator value="projects">