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/09/08 12:53:53 UTC
svn commit: r441470 - in
/maven/continuum/branches/release-integration/continuum:
continuum-api/src/main/java/org/apache/maven/continuum/release/
continuum-release/src/main/java/org/apache/maven/continuum/release/
continuum-release/src/main/java/org/ap...
Author: epunzalan
Date: Fri Sep 8 03:53:52 2006
New Revision: 441470
URL: http://svn.apache.org/viewvc?view=rev&rev=441470
Log:
PR: CONTINUUM-727
release:prepare part is almost complete... can't test it yet though bec the executors don't seem to run even if the queue has tasks already.
release:perform part is half-way through
Added:
maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java (with props)
maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultReleaseManagerListener.java (with props)
maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performRelease.jsp (with props)
maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseProgress.jsp (with props)
Modified:
maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java
maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java
maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java
maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java
maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java
maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PrepareReleaseAction.java
maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectAction.java
maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/xwork.xml
maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareRelease.jsp
maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseProject.jsp
Modified: maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java Fri Sep 8 03:53:52 2006
@@ -39,7 +39,8 @@
* @param releaseProperties
* @throws ContinuumReleaseException
*/
- void prepare( Project project, Properties releaseProperties, Map releaseVersions, Map developmentVersions )
+ void prepare( Project project, Properties releaseProperties, Map releaseVersions,
+ Map developmentVersions, ContinuumReleaseManagerListener listener )
throws ContinuumReleaseException;
/**
Added: maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java?view=auto&rev=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java Fri Sep 8 03:53:52 2006
@@ -0,0 +1,29 @@
+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 interface ContinuumReleaseManagerListener
+{
+ List getCompletedPhases();
+
+ String getInProgress();
+}
Propchange: maven/continuum/branches/release-integration/continuum/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultContinuumReleaseManager.java Fri Sep 8 03:53:52 2006
@@ -28,9 +28,9 @@
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
-import java.util.HashMap;
/**
* @author Jason van Zyl
@@ -49,12 +49,15 @@
*/
private TaskQueue performReleaseQueue;
+ private Map listeners;
+
/**
* contains previous release:prepare descriptors; one per project
*/
private Map preparedReleases;
- public void prepare( Project project, Properties releaseProperties, Map relVersions, Map devVersions )
+ public void prepare( Project project, Properties releaseProperties, Map relVersions,
+ Map devVersions, ContinuumReleaseManagerListener listener )
throws ContinuumReleaseException
{
String releaseId = project.getGroupId() + ":" + project.getArtifactId();
@@ -63,7 +66,9 @@
try
{
- prepareReleaseQueue.put( new PrepareReleaseProjectTask( releaseId, descriptor ) );
+ prepareReleaseQueue.put( new PrepareReleaseProjectTask( releaseId, descriptor, listener ) );
+
+ System.out.println( "Added to Prepare Queue" );
}
catch ( TaskQueueException e )
{
@@ -108,8 +113,11 @@
{
try
{
+ DefaultReleaseManagerListener listener = new DefaultReleaseManagerListener();
+ listeners.put( releaseId, listener );
+
performReleaseQueue.put( new PerformReleaseProjectTask( releaseId, descriptor, buildDirectory,
- goals, useReleaseProfile ) );
+ goals, useReleaseProfile, listener ) );
}
catch ( TaskQueueException e )
{
@@ -138,8 +146,6 @@
ReleaseDescriptor descriptor = new ReleaseDescriptor();
//release properties from the project
- descriptor.setScmUsername( project.getScmUsername() );
- descriptor.setScmPassword( project.getScmPassword() );
descriptor.setWorkingDirectory( project.getWorkingDirectory() );
descriptor.setScmSourceUrl( project.getScmUrl() );
@@ -149,9 +155,29 @@
descriptor.setReleaseVersions( relVersions );
descriptor.setDevelopmentVersions( devVersions );
+ //other properties
+ if ( releaseProperties.containsKey( "username" ) )
+ {
+ descriptor.setScmUsername( releaseProperties.getProperty( "username" ) );
+ }
+ if ( releaseProperties.containsKey( "password" ) )
+ {
+ descriptor.setScmPassword( releaseProperties.getProperty( "password" ) );
+ }
+
//forced properties
descriptor.setInteractive( false );
return descriptor;
+ }
+
+ public Map getListeners()
+ {
+ if ( listeners == null )
+ {
+ listeners = new HashMap();
+ }
+
+ return listeners;
}
}
Added: maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultReleaseManagerListener.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultReleaseManagerListener.java?view=auto&rev=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultReleaseManagerListener.java (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultReleaseManagerListener.java Fri Sep 8 03:53:52 2006
@@ -0,0 +1,87 @@
+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 org.apache.maven.plugins.release.ReleaseManagerListener;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Collections;
+
+/**
+ * @author Edwin Punzalan
+ */
+public class DefaultReleaseManagerListener
+ implements ReleaseManagerListener, ContinuumReleaseManagerListener
+{
+ private List completed;
+
+ private String inProgress;
+
+ private List phases;
+
+ public void goalStart( String name, List phases )
+ {
+ this.phases = phases;
+ completed = Collections.synchronizedList( new ArrayList() );
+ inProgress = null;
+ }
+
+ public void phaseStart( String name )
+ {
+ inProgress = name;
+ }
+
+ public void phaseEnd()
+ {
+ completed.add( inProgress );
+ inProgress = null;
+ }
+
+ public void phaseSkip( String name )
+ {
+ completed.add( name );
+ }
+
+ public void goalEnd()
+ {
+ }
+
+ public void error( String message )
+ {
+ }
+
+ public List getCompletedPhases()
+ {
+ return completed;
+ }
+
+ public String getInProgress()
+ {
+ return inProgress;
+ }
+
+ public List getPhases()
+ {
+ return phases;
+ }
+
+ public void setPhases( List phases )
+ {
+ this.phases = phases;
+ }
+}
Propchange: maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/DefaultReleaseManagerListener.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/continuum/branches/release-integration/continuum/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/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/AbstractReleaseProjectTask.java Fri Sep 8 03:53:52 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.continuum.release.ContinuumReleaseManagerListener;
import org.codehaus.plexus.taskqueue.Task;
/**
@@ -29,7 +30,10 @@
private ReleaseDescriptor descriptor;
- public AbstractReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor )
+ private ContinuumReleaseManagerListener listener;
+
+ public AbstractReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor,
+ ContinuumReleaseManagerListener listener )
{
this.releaseId = releaseId;
this.descriptor = descriptor;
Modified: maven/continuum/branches/release-integration/continuum/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/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PerformReleaseProjectTask.java Fri Sep 8 03:53:52 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.continuum.release.ContinuumReleaseManagerListener;
import java.io.File;
@@ -33,9 +34,9 @@
private boolean useReleaseProfile = true;
public PerformReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor, File buildDirectory,
- String goals, boolean useReleaseProfile )
+ String goals, boolean useReleaseProfile, ContinuumReleaseManagerListener listener )
{
- super( releaseId, descriptor );
+ super( releaseId, descriptor, listener );
setBuildDirectory( buildDirectory );
setGoals( goals );
setUseReleaseProfile( useReleaseProfile );
Modified: maven/continuum/branches/release-integration/continuum/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/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-release/src/main/java/org/apache/maven/continuum/release/tasks/PrepareReleaseProjectTask.java Fri Sep 8 03:53:52 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+import org.apache.maven.continuum.release.ContinuumReleaseManagerListener;
/**
* @author Edwin Punzalan
@@ -24,8 +25,9 @@
public class PrepareReleaseProjectTask
extends AbstractReleaseProjectTask
{
- public PrepareReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor )
+ public PrepareReleaseProjectTask( String releaseId, ReleaseDescriptor descriptor,
+ ContinuumReleaseManagerListener listener )
{
- super( releaseId, descriptor );
+ super( releaseId, descriptor, listener );
}
}
Modified: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PerformReleaseAction.java Fri Sep 8 03:53:52 2006
@@ -32,11 +32,27 @@
{
private String releaseId;
+ private String scmUrl;
+
+ private String scmUsername;
+
+ private String scmPassword;
+
+ private String scmTag;
+
+ private String scmTagBase;
+
private String goals;
private boolean useReleaseProfile;
public String execute()
+ throws Exception
+ {
+ return "prompt";
+ }
+
+ public String doPerform()
throws Exception
{
ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
Modified: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PrepareReleaseAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PrepareReleaseAction.java?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PrepareReleaseAction.java (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/PrepareReleaseAction.java Fri Sep 8 03:53:52 2006
@@ -18,11 +18,21 @@
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.release.ContinuumReleaseManager;
+import org.apache.maven.continuum.release.DefaultReleaseManagerListener;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.model.Model;
+import org.apache.maven.plugins.release.versions.VersionInfo;
+import org.apache.maven.plugins.release.versions.DefaultVersionInfo;
+import org.codehaus.plexus.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Iterator;
+import java.util.ArrayList;
+import java.io.FileReader;
+import java.io.File;
/**
* @author Edwin Punzalan
@@ -36,6 +46,8 @@
{
private int projectId;
+ private String name;
+
private String scmUsername;
private String scmPassword;
@@ -44,24 +56,91 @@
private String scmTagBase;
+ private List projects = new ArrayList();
+
private List projectKeys;
private List devVersions;
private List relVersions;
+ private DefaultReleaseManagerListener listener;
+
public String execute()
throws Exception
{
Project project = getContinuum().getProject( projectId );
+ scmUsername = project.getScmUsername();
+ scmPassword = project.getScmPassword();
+ scmTag = project.getScmTag();
+ scmTagBase = "";
+
+ processProject( project.getWorkingDirectory(), "pom.xml" );
+
+ return "prepareRelease";
+ }
+
+ public String doPrepare()
+ throws Exception
+ {
+ listener = new DefaultReleaseManagerListener();
+
+ Project project = getContinuum().getProject( projectId );
+
+ name = project.getName();
ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
- releaseManager.prepare( project, getReleaseProperties(), getRelVersionMap(), getDevVersionMap() );
+ releaseManager.prepare( project, getReleaseProperties(), getRelVersionMap(), getDevVersionMap(), listener );
return SUCCESS;
}
+ private void processProject( String workingDirectory, String pomFilename )
+ throws Exception
+ {
+ MavenXpp3Reader pomReader = new MavenXpp3Reader();
+ Model model = pomReader.read( new FileReader( new File( workingDirectory, pomFilename ) ) );
+
+ if ( model.getGroupId() == null )
+ {
+ model.setGroupId( model.getParent().getGroupId() );
+ }
+
+ if ( model.getVersion() == null )
+ {
+ model.setVersion( model.getParent().getVersion() );
+ }
+
+ setProperties( model );
+
+ for( Iterator modules = model.getModules().iterator(); modules.hasNext(); )
+ {
+ processProject( workingDirectory + "/" + modules.next().toString(), "pom.xml" );
+ }
+ }
+
+ private void setProperties( Model model )
+ throws Exception
+ {
+ Map params = new HashMap();
+
+ params.put( "key", model.getGroupId() + ":" + model.getArtifactId() );
+
+ if ( model.getName() == null )
+ {
+ model.setName( model.getArtifactId() );
+ }
+ params.put( "name", model.getName() );
+
+ VersionInfo version = new DefaultVersionInfo( model.getVersion() );
+
+ params.put( "release", version.getReleaseVersionString() );
+ params.put( "dev", version.getNextVersion().getSnapshotVersionString() );
+
+ projects.add( params );
+ }
+
private Map getDevVersionMap()
{
return getVersionMap( projectKeys, devVersions );
@@ -91,6 +170,16 @@
{
Properties p = new Properties();
+ if ( StringUtils.isNotEmpty( scmUsername ) )
+ {
+ p.setProperty( "username", scmUsername );
+ }
+
+ if ( StringUtils.isNotEmpty( scmPassword ) )
+ {
+ p.setProperty( "password", scmPassword );
+ }
+
p.setProperty( "tag", scmTag );
p.setProperty( "tagBase", scmTagBase );
@@ -175,5 +264,35 @@
public void setScmTagBase( String scmTagBase )
{
this.scmTagBase = scmTagBase;
+ }
+
+ public List getProjects()
+ {
+ return projects;
+ }
+
+ public void setProjects( List projects )
+ {
+ this.projects = projects;
+ }
+
+ public DefaultReleaseManagerListener getListener()
+ {
+ return listener;
+ }
+
+ public void setListener( DefaultReleaseManagerListener listener )
+ {
+ this.listener = listener;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
}
}
Modified: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectAction.java?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectAction.java (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectAction.java Fri Sep 8 03:53:52 2006
@@ -19,18 +19,9 @@
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.release.ContinuumReleaseManager;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.plugins.release.config.ReleaseDescriptor;
-import org.apache.maven.plugins.release.versions.DefaultVersionInfo;
-import org.apache.maven.plugins.release.versions.VersionInfo;
+import org.codehaus.plexus.util.StringUtils;
-import java.io.File;
-import java.io.FileReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
import java.util.Map;
/**
@@ -49,17 +40,9 @@
private String goal;
- private Project project;
-
- private String scmUsername;
-
- private String scmPassword;
-
- private String scmTag;
-
- private String scmTagBase;
+ private String scmUrl;
- private List projects = new ArrayList();
+ private Project project;
public String promptReleaseGoal()
throws Exception
@@ -75,7 +58,7 @@
{
ReleaseDescriptor descriptor = (ReleaseDescriptor) preparedReleases.get( releaseId );
- preparedReleaseName = descriptor.getName();
+ preparedReleaseName = descriptor.getReleaseVersions().get( releaseId ).toString();
}
return "prompt";
@@ -86,81 +69,23 @@
{
if ( "prepare".equals( goal ) )
{
- return doPrepare();
+ return "prepareRelease";
}
else if ( "perform".equals( goal ) )
{
- return doPerform();
- }
- else
- {
- return "prompt";
- }
- }
-
- public String doPrepare()
- throws Exception
- {
- project = getContinuum().getProject( projectId );
- scmUsername = project.getScmUsername();
- scmPassword = project.getScmPassword();
- scmTag = project.getScmTag();
- scmTagBase = "";
-
- processProject( project.getWorkingDirectory(), "pom.xml" );
-
- return "prepareRelease";
- }
-
- public String doPerform()
- throws Exception
- {
- return "performRelease";
- }
-
- private void processProject( String workingDirectory, String pomFilename )
- throws Exception
- {
- MavenXpp3Reader pomReader = new MavenXpp3Reader();
- Model model = pomReader.read( new FileReader( new File( workingDirectory, pomFilename ) ) );
-
- if ( model.getGroupId() == null )
- {
- model.setGroupId( model.getParent().getGroupId() );
- }
-
- if ( model.getVersion() == null )
- {
- model.setVersion( model.getParent().getVersion() );
- }
+ if ( StringUtils.isNotEmpty( preparedReleaseName ) )
+ {
+ project = getContinuum().getProjectWithAllDetails( projectId );
- setProperties( model );
+ scmUrl = project.getScmUrl();
+ }
- for( Iterator modules = model.getModules().iterator(); modules.hasNext(); )
- {
- processProject( workingDirectory + "/" + modules.next().toString(), "pom.xml" );
+ return "performRelease";
}
- }
-
- private void setProperties( Model model )
- throws Exception
- {
- Map params = new HashMap();
-
- params.put( "key", model.getGroupId() + ":" + model.getArtifactId() );
-
- if ( model.getName() == null )
+ else
{
- model.setName( model.getArtifactId() );
+ return "prompt";
}
- params.put( "name", model.getName() );
-
- VersionInfo version = new DefaultVersionInfo( project.getVersion() );
-
- params.put( "release", version.getReleaseVersionString() );
- params.put( "dev", version.getNextVersion().getSnapshotVersionString() );
-
- projects.add( params );
}
public int getProjectId()
@@ -203,53 +128,13 @@
this.project = project;
}
- public List getProjects()
- {
- return projects;
- }
-
- public void setProjects( List projects )
- {
- this.projects = projects;
- }
-
- public String getScmUsername()
- {
- return scmUsername;
- }
-
- public void setScmUsername( String scmUsername )
- {
- this.scmUsername = scmUsername;
- }
-
- public String getScmPassword()
- {
- return scmPassword;
- }
-
- public void setScmPassword( String scmPassword )
- {
- this.scmPassword = scmPassword;
- }
-
- public String getScmTag()
- {
- return scmTag;
- }
-
- public void setScmTag( String scmTag )
- {
- this.scmTag = scmTag;
- }
-
- public String getScmTagBase()
+ public String getScmUrl()
{
- return scmTagBase;
+ return scmUrl;
}
- public void setScmTagBase( String scmTagBase )
+ public void setScmUrl( String scmUrl )
{
- this.scmTagBase = scmTagBase;
+ this.scmUrl = scmUrl;
}
}
Modified: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/xwork.xml?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/xwork.xml (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/xwork.xml Fri Sep 8 03:53:52 2006
@@ -299,16 +299,33 @@
-->
<action name="releaseProject" class="releaseProject">
<result name="prompt">releaseProject.jsp</result>
- <result name="prepareRelease">prepareRelease.jsp</result>
- <result name="performRelease">performRelease.jsp</result>
+ <result name="prepareRelease" type="redirect-action">
+ <param name="actionName">prepareRelease</param>
+ <param name="projectId">${projectId}</param>
+ </result>
+ <result name="performRelease">
+ <param name="actionName">performRelease</param>
+ <param name="projectId">${projectId}</param>
+ </result>
</action>
<action name="prepareRelease" class="prepareRelease">
- <result name="success">prepareReleaseProgress.jsp</result>
+ <interceptor-ref name="execAndWait">
+ <param name="delay">5000</param>
+ </interceptor-ref>
+ <result name="wait">prepareReleaseProgress.jsp</result>
+ <result name="error">prepareReleaseFailure.jsp</result>
+ <result name="success">prepareReleaseFinished.jsp</result>
</action>
<action name="performRelease" class="performRelease">
- <result name="success">performReleaseProgress.jsp</result>
+ <interceptor-ref name="execAndWait">
+ <param name="delay">5000</param>
+ <param name="scmUrl">${scmUrl}</param>
+ </interceptor-ref>
+ <result name="wait">performReleaseProgress.jsp</result>
+ <result name="error">performReleaseFailure.jsp</result>
+ <result name="success">performReleaseFinished.jsp</result>
</action>
</package>
Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performRelease.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performRelease.jsp?view=auto&rev=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performRelease.jsp (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performRelease.jsp Fri Sep 8 03:53:52 2006
@@ -0,0 +1,29 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<%@ taglib uri="/tld/extremecomponents" prefix="ec" %>
+<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
+<%@ taglib uri="continuum" prefix="c1" %>
+<html>
+ <ww:i18n name="localization.Continuum">
+ <head>
+ <title><ww:text name="releaseProject.page.title"/></title>
+ </head>
+ <body>
+ <h2>Prepare Project Release</h2>
+ <ww:form action="performRelease!doPerform.action" method="post">
+ <h3>Common Release Parameters</h3>
+ <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 Connection URL" name="scmUrl"/>
+ <ww:textfield label="SCM Username" name="scmUsername"/>
+ <ww:textfield label="SCM Password" name="scmPassword"/>
+ <ww:textfield label="SCM Tag" name="scmTag"/>
+ <ww:textfield label="SCM Tag Base" name="scmTagBase"/>
+ <ww:textfield label="Maven Arguments" name="goals"/>
+ <ww:checkbox label="Use Release Profile" name="useReleaseProfile" value="true"/>
+ </table>
+ <ww:submit/>
+ </ww:form>
+ </body>
+ </ww:i18n>
+</html>
Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performRelease.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareRelease.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareRelease.jsp?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareRelease.jsp (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareRelease.jsp Fri Sep 8 03:53:52 2006
@@ -8,36 +8,16 @@
<title><ww:text name="releaseProject.page.title"/></title>
</head>
<body>
- <h2>Prepare Project Release</h2>
- <ww:form action="prepareRelease" method="post">
- <h3>Common Release Parameters</h3>
+ <h2>Perform Project Release</h2>
+ <ww:form action="performRelease!doPerform.action" method="post">
+ <h3>Release Parameters</h3>
<input type="hidden" name="projectId" value="<ww:property value="projectId"/>"/>
<div class="axial">
<table border="1" cellspacing="2" cellpadding="3" width="100%">
- <tr>
- <th>SCM Username</th>
- <td>
- <input type="text" name="scmUsername" value="<ww:property value="scmUsername"/>" size="100">
- </td>
- </tr>
- <tr>
- <th>SCM Password</th>
- <td>
- <input type="text" name="scmPassword" value="<ww:property value="scmPassword"/>" size="100">
- </td>
- </tr>
- <tr>
- <th>SCM Tag</th>
- <td>
- <input type="text" name="scmTag" value="<ww:property value="scmTag"/>" size="100">
- </td>
- </tr>
- <tr>
- <th>SCM Tag Base</th>
- <td>
- <input type="text" name="scmTagBase" value="<ww:property value="scmTagBase"/>" size="100">
- </td>
- </tr>
+ <ww:textfield label="SCM Url" name="scmUsername"/>
+ <ww:textfield label="SCM Password" name="scmPassword"/>
+ <ww:textfield label="SCM Tag" name="scmTag"/>
+ <ww:textfield label="SCM Tag Base" name="scmTagBase"/>
</table>
</div>
Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseProgress.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseProgress.jsp?view=auto&rev=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseProgress.jsp (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseProgress.jsp Fri Sep 8 03:53:52 2006
@@ -0,0 +1,34 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<%@ taglib uri="/tld/extremecomponents" prefix="ec" %>
+<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
+<%@ taglib uri="continuum" prefix="c1" %>
+<html>
+ <ww:i18n name="localization.Continuum">
+ <head>
+ <title><ww:text name="releaseProject.page.title"/></title>
+ </head>
+ <body>
+ <h2>Continuum Release</h2>
+ <h3><ww:property value="name"/></h3>
+ <div class="axial">
+ <table border="1" cellspacing="2" cellpadding="3" width="100%">
+ <tr>
+ <th> </th>
+ <th>Phase</th>
+ </tr>
+ <ww:iterator value="listener.phases">
+ <tr>
+ <ww:if test="listener.completedPhases.contains( listener.phases )">
+ <td>done</td>
+ </ww:if>
+ <ww:else>
+ <td>not done</td>
+ </ww:else>
+ <td><ww:property/></td>
+ </tr>
+ </ww:iterator>
+ </table>
+ </div>
+ </body>
+ </ww:i18n>
+</html>
Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseProgress.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseProject.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseProject.jsp?view=diff&rev=441470&r1=441469&r2=441470
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseProject.jsp (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseProject.jsp Fri Sep 8 03:53:52 2006
@@ -16,13 +16,13 @@
<input name="goal" type="radio" value="perform"/>Perform project release
<br/>
- <select name="performScript">
+ <select name="preparedReleaseName">
<ww:if test="preparedReleaseName != null">
<option selected value="<ww:property value="preparedReleaseName"/>">
<ww:property value="preparedReleaseName"/>
</option>
</ww:if>
- <option value="">Provide release descriptor</option>
+ <option value="none">Provide release descriptor</option>
</select>
<br/>
</p>