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/22 08:27:36 UTC

svn commit: r448831 - in /maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main: java/org/apache/maven/continuum/web/action/ resources/ resources/org/apache/maven/continuum/web/action/ webapp/ webapp/components/

Author: epunzalan
Date: Thu Sep 21 23:27:35 2006
New Revision: 448831

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

reformatted release workflow and added form validations

Added:
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseCleanupAction.java   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectGoalAction.java   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerform-validation.xml   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerformFromScm-validation.xml   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePrepareAction-releasePrepare-validation.xml   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseFinished.jsp   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInProgress.jsp   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInitialized.jsp   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerform.jsp   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerformFromScm.jsp   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePrepare.jsp   (with props)
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseViewResult.jsp   (with props)
Removed:
    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/ViewReleaseResultAction.java
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performRelease.jsp
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performReleaseFinished.jsp
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/performReleaseProgress.jsp
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareRelease.jsp
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseFinished.jsp
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/prepareReleaseProgress.jsp
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseResult.jsp
    maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/viewReleaseResult.jsp
Modified:
    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/components/projectSummaryComponent.jsp

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseCleanupAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseCleanupAction.java?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseCleanupAction.java (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseCleanupAction.java Thu Sep 21 23:27:35 2006
@@ -0,0 +1,78 @@
+package org.apache.maven.continuum.web.action;
+
+/*
+ * 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.continuum.release.ContinuumReleaseManager;
+import org.apache.maven.continuum.release.ContinuumReleaseManagerListener;
+
+/**
+ * @author Edwin Punzalan
+ *
+ * @plexus.component
+ *   role="com.opensymphony.xwork.Action"
+ *   role-hint="releaseCleanup"
+ */
+public class ReleaseCleanupAction
+    extends ContinuumActionSupport
+{
+    private int projectId;
+
+    private String releaseId;
+
+    public String execute()
+        throws Exception
+    {
+        ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
+
+        releaseManager.getReleaseResults().remove( releaseId );
+
+        ContinuumReleaseManagerListener listener;
+
+        listener = (ContinuumReleaseManagerListener) releaseManager.getListeners().remove( releaseId );
+
+        if ( listener != null )
+        {
+            String goal = listener.getGoalName();
+
+            return goal + "Finished";
+        }
+        else
+        {
+            throw new Exception( "No listener to cleanup for id " + releaseId );
+        }
+    }
+
+    public String getReleaseId()
+    {
+        return releaseId;
+    }
+
+    public void setReleaseId( String releaseId )
+    {
+        this.releaseId = releaseId;
+    }
+
+    public int getProjectId()
+    {
+        return projectId;
+    }
+
+    public void setProjectId( int projectId )
+    {
+        this.projectId = projectId;
+    }
+}

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

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseInProgressAction.java Thu Sep 21 23:27:35 2006
@@ -0,0 +1,138 @@
+package org.apache.maven.continuum.web.action;
+
+/*
+ * 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.continuum.release.ContinuumReleaseManager;
+import org.apache.maven.continuum.release.ContinuumReleaseManagerListener;
+import org.apache.maven.plugins.release.ReleaseResult;
+
+/**
+ * @author Edwin Punzalan
+ *
+ * @plexus.component
+ *   role="com.opensymphony.xwork.Action"
+ *   role-hint="releaseInProgress"
+ */
+public class ReleaseInProgressAction
+    extends ContinuumActionSupport
+{
+    private int projectId;
+
+    private String releaseId;
+
+    private ContinuumReleaseManagerListener listener;
+
+    private ReleaseResult result;
+
+    public String execute()
+        throws Exception
+    {
+        String status;
+
+        ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
+
+        listener = (ContinuumReleaseManagerListener) releaseManager.getListeners().get( releaseId );
+
+        if ( listener != null )
+        {
+            if ( listener.getState() == ContinuumReleaseManagerListener.LISTENING )
+            {
+                status = "inProgress";
+            }
+            else if ( listener.getState() == ContinuumReleaseManagerListener.FINISHED )
+            {
+                status = SUCCESS;
+            }
+            else
+            {
+                status = "initialized";
+            }
+        }
+        else
+        {
+            throw new Exception( "There is no on-going or finished release operation with id " + releaseId );
+        }
+
+        return status;
+    }
+
+    public String viewResult()
+        throws Exception
+    {
+        ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
+
+        listener = (ContinuumReleaseManagerListener) releaseManager.getListeners().get( releaseId );
+
+        if ( listener != null )
+        {
+            if ( listener.getState() == ContinuumReleaseManagerListener.FINISHED )
+            {
+                result = (ReleaseResult) releaseManager.getReleaseResults().get( releaseId );
+
+                return SUCCESS;
+            }
+            else
+            {
+                throw new Exception( "The release operation with id " + releaseId + "has not finished yet.");
+            }
+        }
+        else
+        {
+            throw new Exception( "There is no finished release operation with id " + releaseId );
+        }
+    }
+
+    public String getReleaseId()
+    {
+        return releaseId;
+    }
+
+    public void setReleaseId( String releaseId )
+    {
+        this.releaseId = releaseId;
+    }
+
+    public ContinuumReleaseManagerListener getListener()
+    {
+        return listener;
+    }
+
+    public void setListener( ContinuumReleaseManagerListener listener )
+    {
+        this.listener = listener;
+    }
+
+    public ReleaseResult getResult()
+    {
+        return result;
+    }
+
+    public void setResult( ReleaseResult result )
+    {
+        this.result = result;
+    }
+
+    public int getProjectId()
+    {
+        return projectId;
+    }
+
+    public void setProjectId( int projectId )
+    {
+        this.projectId = projectId;
+    }
+}

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

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java Thu Sep 21 23:27:35 2006
@@ -0,0 +1,264 @@
+package org.apache.maven.continuum.web.action;
+
+/*
+ * Copyright 2005 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.continuum.model.project.Project;
+import org.apache.maven.continuum.release.ContinuumReleaseManager;
+import org.apache.maven.continuum.release.ContinuumReleaseManagerListener;
+import org.apache.maven.continuum.release.DefaultReleaseManagerListener;
+import org.apache.maven.plugins.release.ReleaseResult;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+
+import java.io.File;
+
+/**
+ * @author Edwin Punzalan
+ *
+ * @plexus.component
+ *   role="com.opensymphony.xwork.Action"
+ *   role-hint="releasePerform"
+ */
+public class ReleasePerformAction
+    extends ContinuumActionSupport
+{
+    private int projectId;
+
+    private String releaseId;
+
+    private String scmUrl;
+
+    private String scmUsername;
+
+    private String scmPassword;
+
+    private String scmTag;
+
+    private String scmTagBase;
+
+    private String goals;
+
+    private boolean useReleaseProfile;
+
+    private ContinuumReleaseManagerListener listener;
+
+    private ReleaseResult result;
+
+    public String inputFromScm()
+        throws Exception
+    {
+        populateFromProject();
+
+        releaseId = "";
+
+        return SUCCESS;
+    }
+
+    public String input()
+        throws Exception
+    {
+        return SUCCESS;
+    }
+
+    public String execute()
+        throws Exception
+    {
+        listener = new DefaultReleaseManagerListener();
+
+        ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
+
+        //todo should be configurable
+        File performDirectory = new File( getContinuum().getConfiguration().getWorkingDirectory(),
+                                          "releases-" + System.currentTimeMillis() );
+        performDirectory.mkdirs();
+
+        releaseManager.perform( releaseId, performDirectory, goals, useReleaseProfile, listener );
+
+        return SUCCESS;
+    }
+
+    public String executeFromScm()
+        throws Exception
+    {
+        ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
+
+        ReleaseDescriptor descriptor = new ReleaseDescriptor();
+        descriptor.setScmSourceUrl( scmUrl );
+        descriptor.setScmUsername( scmUsername );
+        descriptor.setScmReleaseLabel( scmTag );
+        descriptor.setScmTagBase( scmTagBase );
+
+        String releaseId;
+        do
+        {
+            releaseId = String.valueOf( System.currentTimeMillis() );
+        }while ( releaseManager.getPreparedReleases().containsKey( releaseId ) );
+
+        releaseManager.getPreparedReleases().put( releaseId, descriptor );
+
+        return execute();
+    }
+
+    public String checkProgress()
+        throws Exception
+    {
+        String status;
+
+        ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
+
+        listener = (ContinuumReleaseManagerListener) releaseManager.getListeners().get( releaseId );
+
+        if ( listener != null )
+        {
+            if ( listener.getState() == ContinuumReleaseManagerListener.FINISHED )
+            {
+                status = "finished";
+            }
+            else
+            {
+                status = "inProgress";
+            }
+        }
+        else
+        {
+            throw new Exception( "There is no release on-going or finished with id: " + releaseId );
+        }
+
+        return status;
+    }
+
+    private void populateFromProject()
+        throws Exception
+    {
+        Project project = getContinuum().getProjectWithAllDetails( projectId );
+
+        scmUrl = project.getScmUrl();
+        scmUsername = project.getScmUsername();
+        scmPassword = project.getScmPassword();
+
+        releaseId = "";
+    }
+
+    public String getReleaseId()
+    {
+        return releaseId;
+    }
+
+    public void setReleaseId( String releaseId )
+    {
+        this.releaseId = releaseId;
+    }
+
+    public String getScmUrl()
+    {
+        return scmUrl;
+    }
+
+    public void setScmUrl( String scmUrl )
+    {
+        this.scmUrl = scmUrl;
+    }
+
+    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()
+    {
+        return scmTagBase;
+    }
+
+    public void setScmTagBase( String scmTagBase )
+    {
+        this.scmTagBase = scmTagBase;
+    }
+
+    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;
+    }
+
+    public ContinuumReleaseManagerListener getListener()
+    {
+        return listener;
+    }
+
+    public void setListener( ContinuumReleaseManagerListener listener )
+    {
+        this.listener = listener;
+    }
+
+    public ReleaseResult getResult()
+    {
+        return result;
+    }
+
+    public void setResult( ReleaseResult result )
+    {
+        this.result = result;
+    }
+
+    public int getProjectId()
+    {
+        return projectId;
+    }
+
+    public void setProjectId( int projectId )
+    {
+        this.projectId = projectId;
+    }
+}

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

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java Thu Sep 21 23:27:35 2006
@@ -0,0 +1,445 @@
+package org.apache.maven.continuum.web.action;
+
+/*
+ * 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.continuum.model.project.Project;
+import org.apache.maven.continuum.release.ContinuumReleaseManager;
+import org.apache.maven.continuum.release.ContinuumReleaseManagerListener;
+import org.apache.maven.continuum.release.DefaultReleaseManagerListener;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.plugins.release.ReleaseResult;
+import org.apache.maven.plugins.release.versions.DefaultVersionInfo;
+import org.apache.maven.plugins.release.versions.VersionInfo;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+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;
+import java.util.Properties;
+
+/**
+ * @author Edwin Punzalan
+ *
+ * @plexus.component
+ *   role="com.opensymphony.xwork.Action"
+ *   role-hint="releasePrepare"
+ */
+public class ReleasePrepareAction
+    extends ContinuumActionSupport
+{
+    private int projectId;
+
+    private String releaseId;
+
+    private String name;
+
+    private String scmUsername;
+
+    private String scmPassword;
+
+    private String scmTag;
+
+    private String scmTagBase;
+
+    private List projects = new ArrayList();
+
+    private List projectKeys;
+
+    private List devVersions;
+
+    private List relVersions;
+
+    private String prepareGoals;
+
+    private ReleaseResult result;
+
+    private ContinuumReleaseManagerListener listener;
+
+    public String input()
+        throws Exception
+    {
+        Project project = getContinuum().getProject( projectId );
+        scmUsername = project.getScmUsername();
+        scmPassword = project.getScmPassword();
+        scmTag = project.getScmTag();
+        String scmUrl = project.getScmUrl();
+
+        //skip scm:provider in scm url
+        int idx = scmUrl.indexOf( ":", 4 ) + 1;
+        scmUrl = scmUrl.substring( idx );
+
+        if ( scmUrl.endsWith( "/trunk" ) )
+        {
+            scmTagBase = scmUrl.substring( 0 , scmUrl.lastIndexOf( "/trunk" ) ) + "/branches";
+        }
+        else
+        {
+            scmTagBase = scmUrl.substring( idx );
+        }
+        prepareGoals = "clean integration-test";
+
+        getReleasePluginParameters( project.getWorkingDirectory(), "pom.xml" );
+
+        processProject( project.getWorkingDirectory(), "pom.xml" );
+
+        return SUCCESS;
+    }
+
+    private void getReleasePluginParameters( String workingDirectory, String pomFilename )
+        throws Exception
+    {
+        MavenXpp3Reader pomReader = new MavenXpp3Reader();
+        Model model = pomReader.read( new FileReader( new File( workingDirectory, pomFilename ) ) );
+
+        if ( model.getBuild() != null && model.getBuild().getPlugins() != null )
+        {
+            for( Iterator plugins = model.getBuild().getPlugins().iterator(); plugins.hasNext(); )
+            {
+                Plugin plugin = (Plugin) plugins.next();
+
+                if ( plugin.getGroupId() != null && plugin.getGroupId().equals( "org.apache.maven.plugins" ) &&
+                     plugin.getArtifactId() != null && plugin.getArtifactId().equals( "maven-release-plugin" ) )
+                {
+                    Xpp3Dom dom = (Xpp3Dom) plugin.getConfiguration();
+
+                    Xpp3Dom configuration = dom.getChild( "releaseLabel" );
+                    if ( configuration != null )
+                    {
+                        scmTag = configuration.getValue();
+                    }
+
+                    configuration = dom.getChild( "tag" );
+                    if ( configuration != null )
+                    {
+                        scmTag = configuration.getValue();
+                    }
+
+                    configuration = dom.getChild( "tagBase" );
+                    if ( configuration != null )
+                    {
+                        scmTagBase = configuration.getValue();
+                    }
+
+                    configuration = dom.getChild( "preparationGoals" );
+                    if ( configuration != null )
+                    {
+                        prepareGoals = configuration.getValue();
+                    }
+                }
+            }
+        }
+    }
+
+    public String execute()
+        throws Exception
+    {
+        listener = new DefaultReleaseManagerListener();
+
+        Project project = getContinuum().getProject( projectId );
+
+        name = project.getName();
+        if ( name == null )
+        {
+            name = project.getArtifactId();
+        }
+
+        ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
+
+        releaseId = releaseManager.prepare( project, getReleaseProperties(), getRelVersionMap(),
+                                            getDevVersionMap(), listener );
+
+        return SUCCESS;
+    }
+
+    public String viewResult()
+        throws Exception
+    {
+        result = (ReleaseResult) getContinuum().getReleaseManager().getReleaseResults().get( releaseId );
+
+        return "viewResult";
+    }
+
+    public String checkProgress()
+        throws Exception
+    {
+        String status;
+
+        ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
+
+        listener = (ContinuumReleaseManagerListener) releaseManager.getListeners().get( releaseId );
+
+        if ( listener != null )
+        {
+            if ( listener.getState() == ContinuumReleaseManagerListener.FINISHED )
+            {
+                releaseManager.getListeners().remove( releaseId );
+
+                result = (ReleaseResult) releaseManager.getReleaseResults().get( releaseId );
+
+                status = "finished";
+            }
+            else
+            {
+                status = "inProgress";
+            }
+        }
+        else
+        {
+            throw new Exception( "There is no release on-going or finished with id: " + releaseId );
+        }
+
+        return status;
+    }
+
+    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 );
+    }
+
+    private Map getRelVersionMap()
+    {
+        return getVersionMap( projectKeys, relVersions );
+    }
+
+    private Map getVersionMap( List keys, List versions )
+    {
+        Map versionMap = new HashMap();
+
+        for ( int idx = 0; idx < keys.size(); idx++ )
+        {
+            String key = keys.get( idx ).toString();
+            String version = versions.get( idx ).toString();
+
+            versionMap.put( key, version );
+        }
+
+        return versionMap;
+    }
+
+    private Properties getReleaseProperties()
+    {
+        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 );
+        p.setProperty( "prepareGoals", prepareGoals );
+
+        return p;
+    }
+
+    public List getProjectKeys()
+    {
+        return projectKeys;
+    }
+
+    public void setProjectKeys( List projectKeys )
+    {
+        this.projectKeys = projectKeys;
+    }
+
+    public List getDevVersions()
+    {
+        return devVersions;
+    }
+
+    public void setDevVersions( List devVersions )
+    {
+        this.devVersions = devVersions;
+    }
+
+    public List getRelVersions()
+    {
+        return relVersions;
+    }
+
+    public void setRelVersions( List relVersions )
+    {
+        this.relVersions = relVersions;
+    }
+
+    public int getProjectId()
+    {
+        return projectId;
+    }
+
+    public void setProjectId( int projectId )
+    {
+        this.projectId = projectId;
+    }
+
+    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()
+    {
+        return scmTagBase;
+    }
+
+    public void setScmTagBase( String scmTagBase )
+    {
+        this.scmTagBase = scmTagBase;
+    }
+
+    public List getProjects()
+    {
+        return projects;
+    }
+
+    public void setProjects( List projects )
+    {
+        this.projects = projects;
+    }
+
+    public ContinuumReleaseManagerListener getListener()
+    {
+        return listener;
+    }
+
+    public void setListener( DefaultReleaseManagerListener listener )
+    {
+        this.listener = listener;
+    }
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName( String name )
+    {
+        this.name = name;
+    }
+
+    public String getReleaseId()
+    {
+        return releaseId;
+    }
+
+    public void setReleaseId( String releaseId )
+    {
+        this.releaseId = releaseId;
+    }
+
+    public ReleaseResult getResult()
+    {
+        return result;
+    }
+
+    public void setResult( ReleaseResult result )
+    {
+        this.result = result;
+    }
+
+    public String getPrepareGoals()
+    {
+        return prepareGoals;
+    }
+
+    public void setPrepareGoals( String prepareGoals )
+    {
+        this.prepareGoals = prepareGoals;
+    }
+}

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

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=448831&r1=448830&r2=448831
==============================================================================
--- 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 Thu Sep 21 23:27:35 2006
@@ -71,7 +71,7 @@
 
         projectName = project.getName();
 
-        return "prompt";
+        return SUCCESS;
     }
 
     public String execute()
@@ -83,7 +83,14 @@
         }
         else if ( "perform".equals( goal ) )
         {
-            return "performRelease";
+            if ( "".equals( preparedReleaseId ) )
+            {
+                return "performReleaseFromScm";
+            }
+            else
+            {
+                return "performRelease";
+            }
         }
         else
         {

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectGoalAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectGoalAction.java?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectGoalAction.java (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseProjectGoalAction.java Thu Sep 21 23:27:35 2006
@@ -0,0 +1,119 @@
+package org.apache.maven.continuum.web.action;
+
+/*
+ * 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.artifact.ArtifactUtils;
+import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.release.ContinuumReleaseManager;
+import org.apache.maven.plugins.release.config.ReleaseDescriptor;
+
+import java.util.Map;
+
+/**
+ * @author Edwin Punzalan
+ *
+ * @plexus.component
+ *   role="com.opensymphony.xwork.Action"
+ *   role-hint="releaseProjectGoal"
+ */
+public class ReleaseProjectGoalAction
+    extends ContinuumActionSupport
+{
+    private int projectId;
+
+    private int projectGroupId;
+
+    private String projectName;
+
+    private String preparedReleaseName;
+
+    private String preparedReleaseId;
+
+    public String execute()
+        throws Exception
+    {
+        Project project = getContinuum().getProjectWithAllDetails( projectId );
+
+        String releaseId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
+
+        ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
+
+        Map preparedReleases = releaseManager.getPreparedReleases();
+        if ( preparedReleases.containsKey( releaseId ) )
+        {
+            ReleaseDescriptor descriptor = (ReleaseDescriptor) preparedReleases.get( releaseId );
+
+            preparedReleaseName = descriptor.getReleaseVersions().get( releaseId ).toString();
+
+            preparedReleaseId = releaseId;
+        }
+
+        projectName = project.getName();
+
+        return SUCCESS;
+    }
+
+    public int getProjectId()
+    {
+        return projectId;
+    }
+
+    public void setProjectId( int projectId )
+    {
+        this.projectId = projectId;
+    }
+
+    public int getProjectGroupId()
+    {
+        return projectGroupId;
+    }
+
+    public void setProjectGroupId( int projectGroupId )
+    {
+        this.projectGroupId = projectGroupId;
+    }
+
+    public String getProjectName()
+    {
+        return projectName;
+    }
+
+    public void setProjectName( String projectName )
+    {
+        this.projectName = projectName;
+    }
+
+    public String getPreparedReleaseName()
+    {
+        return preparedReleaseName;
+    }
+
+    public void setPreparedReleaseName( String preparedReleaseName )
+    {
+        this.preparedReleaseName = preparedReleaseName;
+    }
+
+    public String getPreparedReleaseId()
+    {
+        return preparedReleaseId;
+    }
+
+    public void setPreparedReleaseId( String preparedReleaseId )
+    {
+        this.preparedReleaseId = preparedReleaseId;
+    }
+}

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

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerform-validation.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerform-validation.xml?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerform-validation.xml (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerform-validation.xml Thu Sep 21 23:27:35 2006
@@ -0,0 +1,11 @@
+<!DOCTYPE validators PUBLIC
+    "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+  <field name="goals">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.prepareGoals.required"/>
+    </field-validator>
+  </field>
+</validators>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerform-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerformFromScm-validation.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerformFromScm-validation.xml?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerformFromScm-validation.xml (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerformFromScm-validation.xml Thu Sep 21 23:27:35 2006
@@ -0,0 +1,36 @@
+<!DOCTYPE validators PUBLIC
+    "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+  <field name="scmUrl">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.scmUrl.required"/>
+    </field-validator>
+  </field>
+  <field name="scmUsername">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.scmUsername.required"/>
+    </field-validator>
+  </field>
+  <field name="scmPassword">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.scmPassword.required"/>
+    </field-validator>
+  </field>
+  <field name="scmTag">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.scmTag.required"/>
+    </field-validator>
+  </field>
+  <field name="scmTagBase">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.scmTagBase.required"/>
+    </field-validator>
+  </field>
+  <field name="goals">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.prepareGoals.required"/>
+    </field-validator>
+  </field>
+</validators>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePerformAction-releasePerformFromScm-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePrepareAction-releasePrepare-validation.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePrepareAction-releasePrepare-validation.xml?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePrepareAction-releasePrepare-validation.xml (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePrepareAction-releasePrepare-validation.xml Thu Sep 21 23:27:35 2006
@@ -0,0 +1,31 @@
+<!DOCTYPE validators PUBLIC
+    "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<validators>
+  <field name="scmUsername">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.scmUsername.required"/>
+    </field-validator>
+  </field>
+  <field name="scmPassword">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.scmPassword.required"/>
+    </field-validator>
+  </field>
+  <field name="scmTag">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.scmTag.required"/>
+    </field-validator>
+  </field>
+  <field name="scmTagBase">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.scmTagBase.required"/>
+    </field-validator>
+  </field>
+  <field name="prepareGoals">
+    <field-validator type="requiredstring">
+      <message key="releasePrepareAction.prepareGoals.required"/>
+    </field-validator>
+  </field>
+</validators>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/ReleasePrepareAction-releasePrepare-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = native

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=448831&r1=448830&r2=448831
==============================================================================
--- 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 Thu Sep 21 23:27:35 2006
@@ -302,43 +302,77 @@
     <!--
     - continuum release
     -->
+    <action name="releasePromptGoal" class="releaseProject" method="promptReleaseGoal">
+      <result name="success">releaseProject.jsp</result>
+    </action>
+
     <action name="releaseProject" class="releaseProject">
-      <result name="prompt">releaseProject.jsp</result>
       <result name="prepareRelease" type="redirect-action">
-        <param name="actionName">prepareRelease</param>
+        <param name="actionName">releasePrepareInput</param>
         <param name="projectId">${projectId}</param>
       </result>
       <result name="performRelease" type="redirect-action">
-        <param name="actionName">performRelease</param>
+        <param name="actionName">releasePerformInput</param>
         <param name="projectId">${projectId}</param>
         <param name="releaseId">${preparedReleaseId}</param>
       </result>
+      <result name="performReleaseFromScm" type="redirect-action">
+        <param name="actionName">releasePerformFromScmInput</param>
+        <param name="projectId">${projectId}</param>
+      </result>
     </action>
 
-    <action name="prepareRelease" class="prepareRelease">
-      <result name="prompt">prepareRelease.jsp</result>
-      <result name="initialized" type="redirect-action">
-        <param name="actionName">prepareRelease!checkProgress.action</param>
+    <action name="releasePrepareInput" class="releasePrepare" method="input">
+      <result name="success">releasePrepare.jsp</result>
+    </action>
+
+    <action name="releasePrepare" class="releasePrepare">
+      <result name="input" type="chain">prepareReleaseInput</result>
+      <result name="success" type="redirect-action">
+        <param name="actionName">releaseInProgress</param>
         <param name="releaseId">${releaseId}</param>
         <param name="projectId">${projectId}</param>
       </result>
-      <result name="inProgress">prepareReleaseProgress.jsp</result>
-      <result name="finished">prepareReleaseFinished.jsp</result>
     </action>
 
-    <action name="performRelease" class="performRelease">
-      <result name="prompt">performRelease.jsp</result>
-      <result name="initialized" type="redirect-action">
-        <param name="actionName">performRelease!checkProgress.action</param>
+    <action name="releasePerformInput" class="releasePerform" method="input">
+      <result name="success">releasePerform.jsp</result>
+    </action>
+
+    <action name="releasePerform" class="releasePerform">
+      <result name="input" type="chain">releasePerformInput</result>
+      <result name="success" type="redirect-action">
+        <param name="actionName">releaseInProgress</param>
         <param name="releaseId">${releaseId}</param>
         <param name="projectId">${projectId}</param>
       </result>
-      <result name="inProgress">performReleaseProgress.jsp</result>
-      <result name="finished">performReleaseFinished.jsp</result>
     </action>
 
-    <action name="viewReleaseResult" class="viewReleaseResult">
-      <result name="success">viewReleaseResult.jsp</result>
+    <action name="releasePerformFromScmInput" class="releasePerform" method="inputFromScm">
+      <result name="success">releasePerformFromScm.jsp</result>
+    </action>
+
+    <action name="releasePerformFromScm" class="releasePerform" method="executeFromScm">
+      <result name="input" type="chain">releasePerformFromScmInput</result>
+      <result name="success" type="redirect-action">
+        <param name="actionName">releaseInProgress</param>
+        <param name="projectId">${projectId}</param>
+      </result>
+    </action>
+
+    <action name="releaseInProgress" class="releaseInProgress">
+      <result name="initialized">releaseInitialized.jsp</result>
+      <result name="inProgress">releaseInProgress.jsp</result>
+      <result name="success">releaseFinished.jsp</result>
+    </action>
+
+    <action name="releaseCleanup" class="releaseCleanup">
+      <result name="prepareFinished" type="chain">releasePromptGoal</result>
+      <result name="performFinished" type="chain">groupSummary</result>
+    </action>
+
+    <action name="releaseViewResult" class="releaseInProgress" method="viewResult">
+      <result name="success">releaseViewResult.jsp</result>
     </action>
 
   </package>

Modified: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp?view=diff&rev=448831&r1=448830&r2=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp (original)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/components/projectSummaryComponent.jsp Thu Sep 21 23:27:35 2006
@@ -58,7 +58,7 @@
       <ec:column property="releaseAction" title="&nbsp;" width="1%" sortable="false">
         <c:choose>
           <c:when test="${pageScope.project.state == 2}">
-            <ww:url id="releaseProjectUrl" action="releaseProject!promptReleaseGoal.action" namespace="/">
+            <ww:url id="releaseProjectUrl" action="releasePromptGoal" namespace="/">
               <ww:param name="projectId" value="${project.id}"/>
             </ww:url>
             <ww:a href="%{releaseProjectUrl}">

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseFinished.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseFinished.jsp?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseFinished.jsp (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseFinished.jsp Thu Sep 21 23:27:35 2006
@@ -0,0 +1,58 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<html>
+  <ww:i18n name="localization.Continuum">
+    <head>
+        <title><ww:text name="releaseProject.page.title"/></title>
+    </head>
+    <body>
+      <h2><ww:text name="prepareReleaseFinished.section.title"/></h2>
+      <h3><ww:property value="name"/></h3>
+      <ww:form action="releaseCleanup" method="post">
+        <ww:hidden name="projectId"/>
+        <ww:hidden name="releaseId"/>
+        <div class="axial">
+          <table width="100%">
+            <tr>
+              <th><ww:text name="releaseProject.status"/></th>
+              <th width="100%"><ww:text name="releaseProject.phase"/></th>
+            </tr>
+            <ww:iterator value="listener.phases">
+              <tr>
+                <td>
+                <ww:if test="listener.completedPhases.contains( top )">
+                  <img src="<ww:url value='/images/icon_success_sml.gif'/>"
+                       alt="Done" title="Done" border="0">
+                </ww:if>
+                <ww:elseif test="listener.inProgress.equals( top )">
+                  <ww:if test="listener.error == null">
+                    <img src="<ww:url value='/images/building.gif'/>"
+                         alt="In Progress" title="In Progress" border="0">
+                  </ww:if>
+                  <ww:else>
+                    <img src="<ww:url value='/images/icon_error_sml.gif'/>"
+                         alt="Error" title="Error" border="0">
+                  </ww:else>
+                </ww:elseif>
+                <ww:else>
+                  <img src="<ww:url value='/images/inqueue.gif'/>"
+                       alt="Queued" title="Queued" border="0">
+                </ww:else>
+                </td>
+                <td><ww:property/></td>
+              </tr>
+            </ww:iterator>
+          </table>
+        </div>
+
+        <p>
+          <ww:url id="releaseViewResultUrl" action="releaseViewResult" namespace="/">
+            <ww:param name="releaseId" value="releaseId"/>
+          </ww:url>
+          <ww:a href="%{releaseViewResultUrl}"><ww:text name="releaseProject.viewOutput"/></ww:a>
+        </p>
+
+        <ww:submit value="Done"/>
+      </ww:form>
+    </body>
+  </ww:i18n>
+</html>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseFinished.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInProgress.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInProgress.jsp?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInProgress.jsp (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInProgress.jsp Thu Sep 21 23:27:35 2006
@@ -0,0 +1,51 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<html>
+  <ww:i18n name="localization.Continuum">
+    <head>
+        <title><ww:text name="releaseProject.page.title"/></title>
+        <meta http-equiv="refresh" content="10;url=<ww:url includeParams="all" />"/>
+    </head>
+    <body>
+      <h2><ww:text name="prepareReleaseProgress.section.title"/></h2>
+      <h3><ww:property value="name"/></h3>
+      <ww:form action="releaseInProgress" method="get">
+        <ww:hidden name="projectId"/>
+        <ww:hidden name="releaseId"/>
+        <div class="axial">
+          <table width="100%">
+            <tr>
+              <th><ww:text name="releaseProject.status"/></th>
+              <th width="100%"><ww:text name="releaseProject.phase"/></th>
+            </tr>
+            <ww:iterator value="listener.phases">
+              <tr>
+                <td>
+                <ww:if test="listener.completedPhases.contains( top )">
+                  <img src="<ww:url value='/images/icon_success_sml.gif'/>"
+                       alt="Done" title="Done" border="0">
+                </ww:if>
+                <ww:elseif test="listener.inProgress.equals( top )">
+                  <ww:if test="listener.error == null">
+                    <img src="<ww:url value='/images/building.gif'/>"
+                         alt="In Progress" title="In Progress" border="0">
+                  </ww:if>
+                  <ww:else>
+                    <img src="<ww:url value='/images/icon_error_sml.gif'/>"
+                         alt="Error" title="Error" border="0">
+                  </ww:else>
+                </ww:elseif>
+                <ww:else>
+                  <img src="<ww:url value='/images/inqueue.gif'/>"
+                       alt="Queued" title="Queued" border="0">
+                </ww:else>
+                </td>
+                <td><ww:property/></td>
+              </tr>
+            </ww:iterator>
+          </table>
+        </div>
+        <ww:submit value="Refresh"/>
+      </ww:form>
+    </body>
+  </ww:i18n>
+</html>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInProgress.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInitialized.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInitialized.jsp?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInitialized.jsp (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInitialized.jsp Thu Sep 21 23:27:35 2006
@@ -0,0 +1,24 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<html>
+  <ww:i18n name="localization.Continuum">
+    <head>
+        <title><ww:text name="releaseProject.page.title"/></title>
+        <meta http-equiv="refresh" content="10;url=<ww:url includeParams="all" />"/>
+    </head>
+    <body>
+      <h2><ww:text name="prepareReleaseProgress.section.title"/></h2>
+      <h3><ww:property value="name"/></h3>
+      <ww:form action="releaseInProgress" method="get">
+        <ww:hidden name="projectId"/>
+        <ww:hidden name="releaseId"/>
+          <p>
+            The release goal is currently initializing...
+          </p>
+          <p>
+            Please wait while the server prepares your project for release.
+          </p>
+        <ww:submit value="Refresh"/>
+      </ww:form>
+    </body>
+  </ww:i18n>
+</html>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseInitialized.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerform.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerform.jsp?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerform.jsp (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerform.jsp Thu Sep 21 23:27:35 2006
@@ -0,0 +1,23 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<html>
+  <ww:i18n name="localization.Continuum">
+    <head>
+        <title><ww:text name="releaseProject.page.title"/></title>
+    </head>
+    <body>
+      <h2>Perform Project Release</h2>
+      <ww:form action="releasePerform" method="post" validate="true">
+        <h3>Release Perform Parameters</h3>
+        <ww:hidden name="projectId"/>
+        <ww:hidden name="releaseId"/>
+        <div class="axial">
+          <table border="1" cellspacing="2" cellpadding="3" width="100%">
+            <ww:textfield label="Maven Arguments" name="goals" value="clean deploy"/>
+            <ww:checkbox label="Use Release Profile" name="useReleaseProfile" value="true"/>
+          </table>
+        </div>
+        <ww:submit/>
+      </ww:form>
+    </body>
+  </ww:i18n>
+</html>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerform.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerformFromScm.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerformFromScm.jsp?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerformFromScm.jsp (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerformFromScm.jsp Thu Sep 21 23:27:35 2006
@@ -0,0 +1,28 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<html>
+  <ww:i18n name="localization.Continuum">
+    <head>
+        <title><ww:text name="releaseProject.page.title"/></title>
+    </head>
+    <body>
+      <h2>Perform Project Release</h2>
+      <ww:form action="releasePerformFromScm" method="post" validate="true">
+        <h3>Release Perform Parameters</h3>
+        <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: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" value="clean deploy"/>
+            <ww:checkbox label="Use Release Profile" name="useReleaseProfile" value="true"/>
+          </table>
+        </div>
+        <ww:submit/>
+      </ww:form>
+    </body>
+  </ww:i18n>
+</html>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePerformFromScm.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePrepare.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePrepare.jsp?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePrepare.jsp (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePrepare.jsp Thu Sep 21 23:27:35 2006
@@ -0,0 +1,50 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<html>
+  <ww:i18n name="localization.Continuum">
+    <head>
+      <title><ww:text name="releaseProject.page.title"/></title>
+      <ww:head />
+    </head>
+    <body>
+      <h2><ww:text name="prepareRelease.section.title"/></h2>
+      <ww:form action="releasePrepare" method="post" validate="true">
+        <h3><ww:text name="prepareRelease.releaseParameters"/></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 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="Preparation Goals" name="prepareGoals"/>
+           </table>
+        </div>
+
+        <ww:iterator value="projects">
+          <h3><ww:property value="name"/></h3>
+          <input type="hidden" name="projectKeys" value="<ww:property value="key"/>">
+          <div class="axial">
+            <table border="1" cellspacing="2" cellpadding="3" width="100%">
+              <tr>
+                <th><ww:text name="prepareRelease.releaseVersion"/></th>
+                <td>
+                  <input type=text name="relVersions"
+                         value="<ww:property value="release"/>" size="100">
+                </td>
+              </tr>
+              <tr>
+                <th><ww:text name="prepareRelease.nextDevelopmentVersion"/></th>
+                <td>
+                  <input type=text name="devVersions"
+                         value="<ww:property value="dev"/>" size="100">
+                </td>
+              </tr>
+             </table>
+           </div>
+        </ww:iterator>
+
+        <ww:submit/>
+      </ww:form>
+    </body>
+  </ww:i18n>
+</html>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releasePrepare.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseViewResult.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseViewResult.jsp?view=auto&rev=448831
==============================================================================
--- maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseViewResult.jsp (added)
+++ maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseViewResult.jsp Thu Sep 21 23:27:35 2006
@@ -0,0 +1,47 @@
+<%@ taglib uri="/webwork" prefix="ww" %>
+<%@ taglib uri="continuum" prefix="c1" %>
+<html>
+  <ww:i18n name="localization.Continuum">
+    <head>
+        <title><ww:text name="releaseProject.page.title"/></title>
+    </head>
+    <body>
+      <h2><ww:text name="viewReleaseResult.section.title"/></h2>
+
+      <h4><ww:text name="viewReleaseResult.summary"/></h4>
+      <div class="axial">
+        <table border="1" cellspacing="2" cellpadding="3" width="100%">
+          <c1:data label="%{getText('buildResult.startTime')}">
+              <ww:param name="after"><c1:date name="result.startTime"/></ww:param>
+          </c1:data>
+          <c1:data label="%{getText('buildResult.endTime')}">
+              <ww:param name="after"><c1:date name="result.endTime"/></ww:param>
+          </c1:data>
+          <c1:data label="%{getText('buildResult.state')}">
+            <ww:param name="after">
+              <ww:if test="result.resultCode == 0">
+                <ww:text name="viewReleaseResult.success"/>
+              </ww:if>
+              <ww:else>
+                <ww:text name="viewReleaseResult.error"/>
+              </ww:else>
+            </ww:param>
+          </c1:data>
+        </table>
+      </div>
+
+      <h4><ww:text name="viewReleaseResult.output"/></h4>
+      <p>
+        <ww:if test="result.output == ''">
+            <ww:text name="buildResult.noOutput"/>
+        </ww:if>
+        <ww:else>
+          <div style="width:100%; height:500px; overflow:auto; border-style: solid; border-width: 1px">
+            <pre><ww:property value="result.output"/></pre>
+          </div>
+        </ww:else>
+      </p>
+
+    </body>
+  </ww:i18n>
+</html>

Propchange: maven/continuum/branches/release-integration/continuum/continuum-webapp/src/main/webapp/releaseViewResult.jsp
------------------------------------------------------------------------------
    svn:eol-style = native