You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ol...@apache.org on 2007/09/22 01:20:55 UTC

svn commit: r578318 [3/3] - in /maven/continuum/trunk: continuum-api/src/main/java/org/apache/maven/continuum/ continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/ continuum-api/src/main/java/org/apache/maven/continuum/configuration/...

Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractBuildDefinitionAction.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractBuildDefinitionAction.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractBuildDefinitionAction.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Fri Sep 21 16:20:52 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenOneProjectAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenOneProjectAction.java?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenOneProjectAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenOneProjectAction.java Fri Sep 21 16:20:52 2007
@@ -19,11 +19,13 @@
  * under the License.
  */
 
+import java.io.File;
+
 import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
+import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
 import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
 
-import java.io.File;
-
 /**
  * Add a Maven 1 project to Continuum.
  *
@@ -40,7 +42,8 @@
                                                         boolean scmUseCache )
         throws ContinuumException
     {
-        return getContinuum().addMavenOneProject( pomUrl, selectedProjectGroup, checkProtocol, scmUseCache );
+        return getContinuum().addMavenOneProject( pomUrl, selectedProjectGroup, checkProtocol, scmUseCache,
+                                                  this.getBuildDefinitionTemplateId() );
     }
 
     /**

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenProjectAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenProjectAction.java?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenProjectAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenProjectAction.java Fri Sep 21 16:20:52 2007
@@ -19,18 +19,24 @@
  * under the License.
  */
 
-import org.apache.maven.continuum.ContinuumException;
-import org.apache.maven.continuum.model.project.ProjectGroup;
-import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
-import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
-import org.codehaus.plexus.util.StringUtils;
-
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
+import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
+import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
+import org.apache.maven.continuum.model.project.ProjectGroup;
+import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
+import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
+import org.codehaus.plexus.util.StringUtils;
 
 /**
  * Action to add a Maven project to Continuum, either Maven 1 or Maven 2.
@@ -66,9 +72,13 @@
     private boolean scmUseCache;
 
     private int projectGroupId;
-
+    
+    private List<BuildDefinitionTemplate> buildDefinitionTemplates;
+    
+    private int buildDefinitionTemplateId;
+    
     public String execute()
-        throws ContinuumException
+        throws ContinuumException, BuildDefinitionServiceException
     {
         try
         {
@@ -187,11 +197,13 @@
 
     // TODO: Remove this method because a default method return SUCCESS instead of INPUT
     public String doDefault()
+    throws BuildDefinitionServiceException
     {
         return input();
     }
 
     public String input()
+        throws BuildDefinitionServiceException
     {
         try
         {
@@ -211,7 +223,6 @@
             addActionError( authzE.getMessage() );
             return REQUIRES_AUTHORIZATION;
         }
-
         Collection allProjectGroups = getContinuum().getAllProjectGroups();
         projectGroups = new ArrayList();
 
@@ -231,7 +242,7 @@
         }
 
         initializeProjectGroupName();
-
+        this.setBuildDefinitionTemplates( getContinuum().getBuildDefinitionService().getAllBuildDefinitionTemplate() );
         return INPUT;
     }
 
@@ -348,5 +359,25 @@
     public void setProjectGroupId( int projectGroupId )
     {
         this.projectGroupId = projectGroupId;
+    }
+
+    public List<BuildDefinitionTemplate> getBuildDefinitionTemplates()
+    {
+        return buildDefinitionTemplates;
+    }
+
+    public void setBuildDefinitionTemplates( List<BuildDefinitionTemplate> buildDefinitionTemplates )
+    {
+        this.buildDefinitionTemplates = buildDefinitionTemplates;
+    }
+
+    public int getBuildDefinitionTemplateId()
+    {
+        return buildDefinitionTemplateId;
+    }
+
+    public void setBuildDefinitionTemplateId( int buildDefinitionTemplateId )
+    {
+        this.buildDefinitionTemplateId = buildDefinitionTemplateId;
     }
 }

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java Fri Sep 21 16:20:52 2007
@@ -19,19 +19,21 @@
  * under the License.
  */
 
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.List;
+
 import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
+import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
 import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.List;
-
 /**
  * Add a Maven 2 project to Continuum.
  *
@@ -105,13 +107,14 @@
         if ( result == null )
         {
             result = getContinuum().addMavenTwoProject( pomUrl, selectedProjectGroup, checkProtocol, scmUseCache,
-                                                        !this.isNonRecursiveProject() );
+                                                        !this.isNonRecursiveProject(), this.getBuildDefinitionTemplateId() );
         }
 
         return result;
     }
-
+    
     public String doDefault()
+        throws BuildDefinitionServiceException
     {
         return super.doDefault();
     }

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java Fri Sep 21 16:20:52 2007
@@ -19,9 +19,15 @@
  * under the License.
  */
 
-import com.opensymphony.xwork.Validateable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.maven.continuum.Continuum;
 import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
+import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.system.Profile;
@@ -30,10 +36,7 @@
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
 import org.codehaus.plexus.util.StringUtils;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
+import com.opensymphony.xwork.Validateable;
 
 /**
  * @author Nick Gonzalez
@@ -77,15 +80,19 @@
     private ProfileService profileService;
 
     private int projectGroupId;
+    
+    private int buildDefintionTemplateId;
+    
+    private List<BuildDefinitionTemplate> buildDefinitionTemplates;
 
     public void validate()
     {
         boolean projectNameAlreadyExist = false;
-        
+
         clearErrorsAndMessages();
         try
         {
-            Iterator<Project> projects = getContinuum().getProjects().iterator(); 
+            Iterator<Project> projects = getContinuum().getProjects().iterator();
             while ( projects.hasNext() )
             {
                 Project project = projects.next();
@@ -108,6 +115,10 @@
         {
             getLogger().error( e.getMessage(), e );
         }
+        catch ( BuildDefinitionServiceException e )
+        {
+            getLogger().error( e.getMessage(), e );
+        }
     }
 
     public String add()
@@ -150,7 +161,7 @@
 
         project.setExecutorId( projectType );
         
-        getContinuum().addProject( project, projectType, selectedProjectGroup );
+        getContinuum().addProject( project, projectType, selectedProjectGroup, this.getBuildDefintionTemplateId() );
 
         if ( this.getSelectedProjectGroup() > 0 )
         {
@@ -162,7 +173,7 @@
     }
 
     public String input()
-        throws ContinuumException, ProfileException
+        throws ContinuumException, ProfileException, BuildDefinitionServiceException
     {
         try
         {
@@ -199,6 +210,7 @@
                 .getId();
         }
         this.profiles = profileService.getAllProfiles();
+        buildDefinitionTemplates = getContinuum().getBuildDefinitionService().getAllBuildDefinitionTemplate();
         return SUCCESS;
     }
 
@@ -355,5 +367,25 @@
     public void setProjectGroupId( int projectGroupId )
     {
         this.projectGroupId = projectGroupId;
+    }
+
+    public int getBuildDefintionTemplateId()
+    {
+        return buildDefintionTemplateId;
+    }
+
+    public void setBuildDefintionTemplateId( int buildDefintionTemplateId )
+    {
+        this.buildDefintionTemplateId = buildDefintionTemplateId;
+    }
+
+    public List<BuildDefinitionTemplate> getBuildDefinitionTemplates()
+    {
+        return buildDefinitionTemplates;
+    }
+
+    public void setBuildDefinitionTemplates( List<BuildDefinitionTemplate> buildDefinitionTemplates )
+    {
+        this.buildDefinitionTemplates = buildDefinitionTemplates;
     }
 }

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java Fri Sep 21 16:20:52 2007
@@ -20,6 +20,8 @@
  */
 
 import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
+import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
 import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.Project;
@@ -88,6 +90,11 @@
 
     private boolean alwaysBuild;
 
+    /**
+     * @plexus.requirement
+     */    
+    private BuildDefinitionService buildDefinitionService;    
+    
     public void prepare()
         throws Exception
     {
@@ -126,7 +133,7 @@
      * @return action result
      */
     public String input()
-        throws ContinuumException, ContinuumStoreException
+        throws ContinuumException, ContinuumStoreException, BuildDefinitionServiceException
     {
         try
         {
@@ -202,19 +209,22 @@
                 {
                     if ( ContinuumBuildExecutorConstants.MAVEN_TWO_BUILD_EXECUTOR.equals( executor ) )
                     {
-                        buildFile =
-                            getContinuum().getConfiguration().getDefaultMavenTwoBuildDefinition().getBuildFile();
+                        buildFile = ( (BuildDefinition) buildDefinitionService
+                            .getDefaultMavenTwoBuildDefinitionTemplate().getBuildDefinitions().get( 0 ) )
+                            .getBuildFile();
                         buildDefinitionType = ContinuumBuildExecutorConstants.MAVEN_TWO_BUILD_EXECUTOR;
                     }
                     else if ( ContinuumBuildExecutorConstants.MAVEN_ONE_BUILD_EXECUTOR.equals( executor ) )
                     {
-                        buildFile =
-                            getContinuum().getConfiguration().getDefaultMavenOneBuildDefinition().getBuildFile();
+                        buildFile = ( (BuildDefinition) buildDefinitionService
+                            .getDefaultMavenOneBuildDefinitionTemplate().getBuildDefinitions().get( 0 ) )
+                            .getBuildFile();
                         buildDefinitionType = ContinuumBuildExecutorConstants.MAVEN_ONE_BUILD_EXECUTOR;
                     }
                     else if ( ContinuumBuildExecutorConstants.ANT_BUILD_EXECUTOR.equals( executor ) )
                     {
-                        buildFile = getContinuum().getConfiguration().getDefaultAntBuildDefinition().getBuildFile();
+                        buildFile = ( (BuildDefinition) buildDefinitionService.getDefaultAntBuildDefinitionTemplate()
+                            .getBuildDefinitions().get( 0 ) ).getBuildFile();
                         buildDefinitionType = ContinuumBuildExecutorConstants.ANT_BUILD_EXECUTOR;
                     }
                     else

Added: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java?rev=578318&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java Fri Sep 21 16:20:52 2007
@@ -0,0 +1,349 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to you 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.
+ */
+package org.apache.maven.continuum.web.action.admin;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
+import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
+import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
+import org.apache.maven.continuum.model.project.Schedule;
+import org.apache.maven.continuum.model.system.Profile;
+import org.apache.maven.continuum.security.ContinuumRoleConstants;
+import org.apache.maven.continuum.web.action.AbstractBuildDefinitionAction;
+import org.apache.maven.continuum.web.model.BuildDefinitionSummary;
+import org.codehaus.plexus.redback.rbac.Resource;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureAction;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
+import org.codehaus.plexus.redback.xwork.interceptor.SecureActionException;
+
+import com.opensymphony.xwork.Preparable;
+
+/**
+ * @author <a href="mailto:olamy@apache.org">olamy</a>
+ * @since 16 sept. 07
+ * @version $Id$
+ * @plexus.component role="com.opensymphony.xwork.Action" role-hint="buildDefinitionTemplates"
+ */
+public class BuildDefinitionTemplateAction
+    extends AbstractBuildDefinitionAction
+    implements SecureAction, Preparable
+{
+
+    private List<BuildDefinitionTemplate> templates;
+
+    private BuildDefinitionTemplate buildDefinitionTemplate;
+
+    private List<String> buildDefinitionTypes;
+
+    private List<BuildDefinitionSummary> buildDefinitionSummaries;
+
+    private BuildDefinition buildDefinition;
+
+    private Collection<Schedule> schedules;
+
+    private List<Profile> profiles;
+ 
+    private List<String> selectedBuildDefinitionIds;
+    
+    private List<BuildDefinition> buildDefinitions;
+    
+    // -------------------------------------------------------
+    //  Webwork Methods
+    // ------------------------------------------------------- 
+
+    public void prepare()
+        throws Exception
+    {
+        super.prepare();
+        buildDefinitionTypes = new LinkedList<String>();
+        buildDefinitionTypes.add( ContinuumBuildExecutorConstants.MAVEN_TWO_BUILD_EXECUTOR );
+        buildDefinitionTypes.add( ContinuumBuildExecutorConstants.MAVEN_ONE_BUILD_EXECUTOR );
+        buildDefinitionTypes.add( ContinuumBuildExecutorConstants.ANT_BUILD_EXECUTOR );
+        buildDefinitionTypes.add( ContinuumBuildExecutorConstants.SHELL_BUILD_EXECUTOR );
+        this.setSchedules( getContinuum().getSchedules() );
+        this.setProfiles( getContinuum().getProfileService().getAllProfiles() );
+        this.setBuildDefinitions( getContinuum().getBuildDefinitionService().getAllTemplates() );
+    }
+
+    public String input()
+        throws Exception
+    {
+        return INPUT;
+    }
+
+    public String summary()
+        throws Exception
+    {
+        this.templates = getContinuum().getBuildDefinitionService().getAllBuildDefinitionTemplate();
+        List<BuildDefinition> buildDefinitions = getContinuum().getBuildDefinitionService().getAllTemplates();
+        this.buildDefinitionSummaries = generateBuildDefinitionSummaries( buildDefinitions );
+        return SUCCESS;
+    }
+
+    public String edit()
+        throws Exception
+    {
+        this.buildDefinitionTemplate = getContinuum().getBuildDefinitionService()
+            .getBuildDefinitionTemplate( this.buildDefinitionTemplate.getId() );
+        this.setBuildDefinitions( getContinuum().getBuildDefinitionService().getAllTemplates() );
+        this.selectedBuildDefinitionIds = new ArrayList<String>();
+        if ( this.buildDefinitionTemplate.getBuildDefinitions() != null )
+        {
+            for ( Iterator<BuildDefinition> iterator = this.buildDefinitionTemplate.getBuildDefinitions().iterator(); iterator
+                .hasNext(); )
+            {
+                this.selectedBuildDefinitionIds.add( Integer.toString( iterator.next().getId() ) );
+            }
+        }
+        List<BuildDefinition> nonUsedBuildDefinitions = new ArrayList<BuildDefinition>();
+        for ( BuildDefinition buildDefinition : getBuildDefinitions() )
+        {
+            if ( !getSelectedBuildDefinitionIds().contains( Integer.toString( buildDefinition.getId() ) ) )
+            {
+                nonUsedBuildDefinitions.add( buildDefinition );
+            }
+        }
+        this.setBuildDefinitions( nonUsedBuildDefinitions );
+        return SUCCESS;
+    }
+
+    public String save()
+        throws Exception
+    {
+        List<BuildDefinition> selectedBuildDefinitions = getBuildDefinitionsFromSelectedBuildDefinitions();
+        if ( this.buildDefinitionTemplate.getId() > 0 )
+        {
+            buildDefinitionTemplate.setBuildDefinitions( selectedBuildDefinitions );
+            this.getContinuum().getBuildDefinitionService().updateBuildDefinitionTemplate( buildDefinitionTemplate );
+        }
+        else
+        {
+            buildDefinitionTemplate.setBuildDefinitions( selectedBuildDefinitions );
+            this.buildDefinitionTemplate = this.getContinuum().getBuildDefinitionService()
+                .addBuildDefinitionTemplate( buildDefinitionTemplate );
+        }
+
+        return SUCCESS;
+    }
+
+    public String delete()
+        throws BuildDefinitionServiceException
+    {
+        buildDefinitionTemplate = getContinuum().getBuildDefinitionService()
+            .getBuildDefinitionTemplate( this.buildDefinitionTemplate.getId() );
+        this.getContinuum().getBuildDefinitionService().removeBuildDefinitionTemplate( buildDefinitionTemplate );
+        return SUCCESS;
+    }
+    
+    private List<BuildDefinition> getBuildDefinitionsFromSelectedBuildDefinitions()
+        throws ContinuumException
+    {
+        if ( this.selectedBuildDefinitionIds == null )
+        {
+            return Collections.EMPTY_LIST;
+        }
+        List<BuildDefinition> selectedBuildDefinitions = new ArrayList<BuildDefinition>();
+        for ( String selectedBuildDefinitionId : selectedBuildDefinitionIds )
+        {
+            BuildDefinition buildDefinition = getContinuum()
+                .getBuildDefinition( Integer.parseInt( selectedBuildDefinitionId ) );
+            selectedBuildDefinitions.add( buildDefinition );
+        }
+        return selectedBuildDefinitions;
+    }
+
+    // -----------------------------------------------------
+    //  BuildDefinition
+    // -----------------------------------------------------
+
+    public String inputBuildDefinition()
+    {
+        return INPUT;
+    }
+    
+    public String editBuildDefinition()
+        throws Exception
+    {
+        this.buildDefinition = getContinuum().getBuildDefinitionService().getBuildDefinition(
+                                                                                              this.buildDefinition
+                                                                                                  .getId() );
+        return SUCCESS;
+    }
+
+    public String saveBuildDefinition()
+        throws Exception
+    {
+        if ( buildDefinition.getProfile() != null )
+        {
+            Profile profile = getContinuum().getProfileService().getProfile( buildDefinition.getProfile().getId() );
+            if ( profile != null )
+            {
+                buildDefinition.setProfile( profile );
+            }
+            else
+            {
+                buildDefinition.setProfile( null );
+            }
+        }
+        if ( buildDefinition.getSchedule() != null )
+        {
+            if ( buildDefinition.getSchedule().getId() > 0 )
+            {
+                buildDefinition.setSchedule( getContinuum().getSchedule( buildDefinition.getSchedule().getId() ) );
+            }
+        }
+        
+        
+        if ( this.buildDefinition.getId() > 0 )
+        {
+            this.getContinuum().getBuildDefinitionService().updateBuildDefinition( buildDefinition );
+        }
+        else
+        {
+            this.buildDefinition = this.getContinuum().getBuildDefinitionService().addBuildDefinition( buildDefinition );
+        }
+
+        return SUCCESS;
+    }
+
+    public String deleteBuildDefinition()
+        throws BuildDefinitionServiceException
+    {
+        buildDefinition = getContinuum().getBuildDefinitionService().getBuildDefinition( this.buildDefinition.getId() );
+        this.getContinuum().getBuildDefinitionService().removeBuildDefinition( buildDefinition );
+        return SUCCESS;
+    }
+
+    // -----------------------------------------------------
+    // security
+    // -----------------------------------------------------    
+
+    public SecureActionBundle getSecureActionBundle()
+        throws SecureActionException
+    {
+        SecureActionBundle bundle = new SecureActionBundle();
+        bundle.setRequiresAuthentication( true );
+        bundle.addRequiredAuthorization( ContinuumRoleConstants.CONTINUUM_MANAGE_BUILD_TEMPLATES, Resource.GLOBAL );
+
+        return bundle;
+    }
+
+    // -------------------------------------------------------
+    // Webwork setter/getter
+    // -------------------------------------------------------    
+
+    public BuildDefinitionTemplate getBuildDefinitionTemplate()
+    {
+        if (buildDefinitionTemplate == null)
+        {
+            this.buildDefinitionTemplate = new BuildDefinitionTemplate();
+        }
+        return buildDefinitionTemplate;
+    }
+
+    public void setBuildDefinitionTemplate( BuildDefinitionTemplate buildDefinitionTemplate )
+    {
+        this.buildDefinitionTemplate = buildDefinitionTemplate;
+    }
+
+    public List<String> getBuildDefinitionTypes()
+    {
+        return buildDefinitionTypes;
+    }
+
+    public void setBuildDefinitionTypes( List<String> buildDefinitionTypes )
+    {
+        this.buildDefinitionTypes = buildDefinitionTypes;
+    }
+
+    public List<BuildDefinitionTemplate> getTemplates()
+    {
+        return templates;
+    }
+
+    public void setTemplates( List<BuildDefinitionTemplate> templates )
+    {
+        this.templates = templates;
+    }
+
+    public List<BuildDefinitionSummary> getBuildDefinitionSummaries()
+    {
+        return buildDefinitionSummaries;
+    }
+
+    public void setBuildDefinitionSummaries( List<BuildDefinitionSummary> buildDefinitionSummaries )
+    {
+        this.buildDefinitionSummaries = buildDefinitionSummaries;
+    }
+
+    public BuildDefinition getBuildDefinition()
+    {
+        return buildDefinition;
+    }
+
+    public void setBuildDefinition( BuildDefinition buildDefinition )
+    {
+        this.buildDefinition = buildDefinition;
+    }
+
+    public List<Profile> getProfiles()
+    {
+        return profiles;
+    }
+
+    public void setProfiles( List<Profile> profiles )
+    {
+        this.profiles = profiles;
+    }
+
+    public void setSchedules( Collection<Schedule> schedules )
+    {
+        this.schedules = schedules;
+    }
+
+    public Collection<Schedule> getSchedules()
+    {
+        return schedules;
+    }
+    
+    public List<BuildDefinition> getBuildDefinitions()
+    {
+        return buildDefinitions;
+    }
+
+    public void setBuildDefinitions( List<BuildDefinition> buildDefinitions )
+    {
+        this.buildDefinitions = buildDefinitions;
+    }
+
+    public List<String> getSelectedBuildDefinitionIds()
+    {
+        return selectedBuildDefinitionIds == null ? Collections.EMPTY_LIST : selectedBuildDefinitionIds;
+    }
+
+    public void setSelectedBuildDefinitionIds( List<String> selectedBuildDefinitionIds )
+    {
+        this.selectedBuildDefinitionIds = selectedBuildDefinitionIds;
+    }
+
+}

Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
------------------------------------------------------------------------------
--- svn:keywords (added)
+++ svn:keywords Fri Sep 21 16:20:52 2007
@@ -0,0 +1 @@
+URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/BuildDefinitionSummaryAction.java Fri Sep 21 16:20:52 2007
@@ -19,18 +19,18 @@
  * under the License.
  */
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectGroup;
-import org.apache.maven.continuum.web.action.ContinuumActionSupport;
+import org.apache.maven.continuum.web.action.AbstractBuildDefinitionAction;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
 import org.apache.maven.continuum.web.model.BuildDefinitionSummary;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
 /**
  * BuildDefinitionSummaryAction:
  *
@@ -39,7 +39,7 @@
  * @plexus.component role="com.opensymphony.xwork.Action" role-hint="buildDefinitionSummary"
  */
 public class BuildDefinitionSummaryAction
-    extends ContinuumActionSupport
+    extends AbstractBuildDefinitionAction
 {
     private int projectGroupId;
 
@@ -182,28 +182,7 @@
         return summaryList;
     }
 
-    protected BuildDefinitionSummary generateBuildDefinitionSummary( BuildDefinition bd )
-    {
-        BuildDefinitionSummary bds = new BuildDefinitionSummary();
-
-        bds.setGoals( bd.getGoals() );
-        bds.setId( bd.getId() );
-        bds.setArguments( bd.getArguments() );
-        bds.setBuildFile( bd.getBuildFile() );
-        bds.setScheduleId( bd.getSchedule().getId() );
-        bds.setScheduleName( bd.getSchedule().getName() );
-        bds.setIsDefault( bd.isDefaultForProject() );
-        bds.setIsBuildFresh( bd.isBuildFresh() );
-        if ( bd.getProfile() != null )
-        {
-            bds.setProfileName( bd.getProfile().getName() );
-            bds.setProfileId( bd.getProfile().getId() );
-        }
-        bds.setDescription( bd.getDescription() );
-        bds.setType( bd.getType() );
-        bds.setAlwaysBuild( bd.isAlwaysBuild() );
-        return bds;
-    }
+    
 
     public int getProjectId()
     {

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml Fri Sep 21 16:20:52 2007
@@ -91,6 +91,7 @@
     </component>
 
     <!-- uncomment the component the replace here to override default-goals and default-arguments 
+      TODO remove due to CONTINUUM-1436
     <component>
       <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
       <implementation>org.apache.maven.continuum.configuration.DefaultConfigurationService</implementation>

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Fri Sep 21 16:20:52 2007
@@ -71,6 +71,7 @@
 menu.administration.schedules = Schedules
 menu.administration.users = Users
 menu.administration.userGroups = User Groups
+menu.administration.buildDefinitionTemplates = Build Definitions Templates
 menu.account.options = My account
 user.edit.account = Edit user info
 
@@ -242,6 +243,8 @@
 add.m1.project.m1PomFile.message =  Enter the local filename of the Maven 1 POM to upload
 add.m1.project.m1PomFile.error = You must enter a valid URL
 add.m1.project.projectGroup = Project Group
+add.m1.project.buildDefinitionTemplate = Build Definition
+add.m1.project.defaultBuildDefinition = Default
 
 # ----------------------------------------------------------------------
 # Page: AddMavenTwoProject
@@ -260,6 +263,8 @@
 # TODO: remove this part once uploading of an m2 project with modules is supported ( CONTINUUM-1098 )
 add.m2.project.upload.modules.error = Cannot upload a Maven 2 project with modules.
 add.m2.project.nonRecursiveProject = For multi modules project, load only root as recursive build
+add.m2.project.buildDefinitionTemplate = Build Definition
+add.m2.project.defaultBuildDefinition = Default
 
 # ----------------------------------------------------------------------
 # Page: AddProject (ant or shell)
@@ -296,6 +301,8 @@
 projectVersion.message = Enter the version of the project
 
 projectScmUseCache.label = Use SCM Credentials Cache, if available
+add.project.buildDefinitionTemplate = Build Definition
+add.project.defaultBuildDefinition = Default
 
 # ----------------------------------------------------------------------
 # Page: DeleteProject
@@ -676,6 +683,42 @@
 installationTypeChoice.action.label = Installation Type
 installationTypeChoice.tool.label = Tool
 installationTypeChoice.envar.label = Environment Variable 
+
+# ----------------------------------------------------------------------
+# Page: Build Definitions Templates Summary
+# ----------------------------------------------------------------------
+buildDefinition.templates.page.title = Continuum - Build Definition Templates
+buildDefinition.templates.continuum.section.title = Continuum Default Build Definition
+buildDefinition.templates.goals = Goals
+buildDefinition.templates.arguments = Arguments
+buildDefinition.templates.buildFile = Build File
+buildDefinition.templates.schedule = Schedule
+buildDefinition.templates.profile = Profile
+buildDefinition.templates.buildFresh = Is Build Fresh
+buildDefinition.templates.alwaysBuild = Always Build
+buildDefinition.templates.description = Description
+buildDefinition.templates.type = Type
+buildDefinition.templates.section.title = Available Templates
+buildDefinition.templates.buildDefinitions.section.title = Available Build Definitions
+
+# ----------------------------------------------------------------------
+# Page: Edit Build Definition Template
+# ----------------------------------------------------------------------
+buildDefinition.template.page.title = Continuum - Build Definition Template
+buildDefinition.template.section.title = Build Definition Template
+buildDefinition.template.buildDefinition.goals = Goals
+buildDefinition.template.buildDefinition.arguments = Arguments
+buildDefinition.template.buildDefinition.buildFile = Build File
+buildDefinition.template.buildDefinition.schedule = Schedule
+buildDefinition.template.buildDefinition.profile = Profile
+buildDefinition.template.buildDefinition.buildFresh = Is Build Fresh ?
+buildDefinition.template.buildDefinition.default = Default
+buildDefinition.template.buildDefinition.description = Description
+buildDefinition.template.buildDefinition.type = Type
+buildDefinitionTemplate.name = Name
+buildDefinitionTemplate.available.builddefinitions = --- Available Build Definitions ---
+buildDefinitionTemplate.available.builddefinitions.used = --- Used Build Definitions ---
+buildDefinitionTemplate.builddefinitions.define = Configured the used Build Definitions
 
 
 

Added: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml?rev=578318&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml Fri Sep 21 16:20:52 2007
@@ -0,0 +1,35 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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.
+  -->
+
+<!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="buildDefinition.buildFile">
+    <field-validator type="requiredstring">
+      <message key="buildDefintion.buildFile.required"/>
+    </field-validator>
+  </field>
+  <field name="buildDefinition.description">
+    <field-validator type="requiredstring">
+      <message key="buildDefintion.description.required"/>
+    </field-validator>
+  </field>  
+</validators>
\ No newline at end of file

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionAsTemplate-validation.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml?rev=578318&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml Fri Sep 21 16:20:52 2007
@@ -0,0 +1,30 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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.
+  -->
+
+<!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="buildDefinitionTemplate.name">
+    <field-validator type="requiredstring">
+      <message key="buildDefintionTemplate.name.required"/>
+    </field-validator>
+  </field>
+</validators>
\ No newline at end of file

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties?rev=578318&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties Fri Sep 21 16:20:52 2007
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+buildDefintionTemplate.name.required = Name is required
+buildDefintion.buildFile.required = BuildFile is required
+buildDefintion.description.required = Description is required
\ No newline at end of file

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/webwork.properties
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/webwork.properties?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/webwork.properties (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/webwork.properties Fri Sep 21 16:20:52 2007
@@ -23,6 +23,8 @@
 # Theme
 webwork.ui.theme = default
 
+webwork.serve.static = true
+
 # Locale
 #webwork.locale=en_EN
 

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml Fri Sep 21 16:20:52 2007
@@ -601,8 +601,61 @@
     <action name="deleteInstallation" class="installation" method="delete">
       <result name="input">/WEB-INF/jsp/admin/installationsList.jsp</result>
       <result name="success">/WEB-INF/jsp/admin/installationsList.jsp</result>
+    </action>  
+    
+    <!--
+       Build Definitions Templates actions 
+    -->  
+    <action name="buildDefinitionTemplates" class="buildDefinitionTemplates" method="summary">
+      <result name="success">/WEB-INF/jsp/admin/buildDefinitionTemplateSummary.jsp</result>
+    </action> 
+    
+    <action name="buildDefinitionTemplate" class="buildDefinitionTemplates" method="input">
+      <result name="success">/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp</result>
+      <result name="input">/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp</result>
+    </action>    
+    
+    <action name="editBuildDefinitionTemplate" class="buildDefinitionTemplates" method="edit">
+      <result name="success">/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp</result>
+      <result name="input">/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp</result>
+    </action>                 
+
+    <action name="deleteDefinitionTemplate" class="buildDefinitionTemplates" method="delete">
+      <result name="success" type="redirect-action">
+        <param name="actionName">buildDefinitionTemplates!summary.action</param>
+      </result>
+    </action>    
+    
+    <action name="saveBuildDefinitionTemplate" class="buildDefinitionTemplates" method="save">
+      <result name="success" type="redirect-action">
+        <param name="actionName">editBuildDefinitionTemplate!edit.action</param>
+        <param name="buildDefinitionTemplate.id">${buildDefinitionTemplate.id}</param>
+      </result>
+      <result name="input">/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp</result>
+    </action>    
+    
+    <action name="editBuildDefinitionAsTemplate" class="buildDefinitionTemplates" method="editBuildDefinition">
+      <result name="success">/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp</result>
+      <result name="input">/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp</result>
+    </action>    
+    
+    <action name="saveBuildDefinitionAsTemplate" class="buildDefinitionTemplates" method="saveBuildDefinition">
+      <result name="success">/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp</result>
+      <result name="input">/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp</result>
     </action>             
-      
+
+    <action name="buildDefinitionAsTemplate" class="buildDefinitionTemplates" method="saveBuildDefinition">
+      <result name="success">/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp</result>
+      <result name="input">/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp</result>
+    </action>    
+              
+    <action name="deleteBuildDefinitionAsTemplate" class="buildDefinitionTemplates" method="deleteBuildDefinition">
+      <result name="success" type="redirect-action">
+        <param name="actionName">buildDefinitionTemplates!summary.action</param>
+      </result>
+    </action>    
+    
+    
   </package>
 
   <package name="component" extends="default">

Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenOneProject.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenOneProject.jsp?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenOneProject.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenOneProject.jsp Fri Sep 21 16:20:52 2007
@@ -75,6 +75,9 @@
                             <ww:else>
                               <ww:select label="%{getText('add.m1.project.projectGroup')}" name="selectedProjectGroup" list="projectGroups" listKey="id" listValue="name"/>
                             </ww:else>
+                            <ww:select label="%{getText('add.m1.project.buildDefinitionTemplate')}" name="buildDefinitionTemplateId"
+                                       list="buildDefinitionTemplates" listKey="id" listValue="name" headerKey="-1" 
+                                       headerValue="%{getText('add.m1.project.defaultBuildDefinition')}"/>                            
                           </tbody>
                         </table>
                         <div class="functnbar3">

Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenTwoProject.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenTwoProject.jsp?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenTwoProject.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenTwoProject.jsp Fri Sep 21 16:20:52 2007
@@ -77,6 +77,9 @@
                                          list="projectGroups" listKey="id" listValue="name"/>
                             </ww:else>
                             <ww:checkbox label="%{getText('add.m2.project.nonRecursiveProject')}" name="nonRecursiveProject" />
+                            <ww:select label="%{getText('add.m2.project.buildDefinitionTemplate')}" name="buildDefinitionTemplateId"
+                                       list="buildDefinitionTemplates" listKey="id" listValue="name" headerKey="-1" 
+                                       headerValue="%{getText('add.m2.project.defaultBuildDefinition')}"/> 
                           </tbody>
                         </table>
                         <div class="functnbar3">

Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addProject.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addProject.jsp?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addProject.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addProject.jsp Fri Sep 21 16:20:52 2007
@@ -81,6 +81,9 @@
                             <ww:else>
                               <ww:select label="%{getText('projectGroup.name.label')}" name="selectedProjectGroup" list="projectGroups" listKey="id" listValue="name"/>
                             </ww:else>
+                            <ww:select label="%{getText('add.project.buildDefinitionTemplate')}" name="buildDefinitionTemplateId"
+                                       list="buildDefinitionTemplates" listKey="id" listValue="name" headerKey="-1" 
+                                       headerValue="%{getText('add.project.defaultBuildDefinition')}"/>                             
                           </tbody>
                         </table>
                         <input type="hidden" name="projectType" value="<ww:property value="projectType"/>">

Added: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildDefinitionTemplateSummary.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildDefinitionTemplateSummary.jsp?rev=578318&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildDefinitionTemplateSummary.jsp (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildDefinitionTemplateSummary.jsp Fri Sep 21 16:20:52 2007
@@ -0,0 +1,108 @@
+<%--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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.
+  --%>
+
+<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
+<%@ taglib uri="/webwork" prefix="ww" %>
+<%@ taglib uri="continuum" prefix="c1" %>
+<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>
+
+<html>
+  <ww:i18n name="localization.Continuum">
+    <head>
+      <title><ww:text name="buildDefinition.templates.page.title"/></title>
+    </head>
+    
+    <div>
+      
+      <h3>
+        <ww:text name="buildDefinition.templates.section.title"/>
+      </h3>
+      <ec:table items="templates"
+                var="template"
+                showExports="false"
+                showPagination="false"
+                showStatusBar="false"
+                filterable="false"
+                sortable="false">
+        <ec:row>
+          <ec:column property="name" title="buildDefinition.template.name"/>
+          <ec:column property="editAction" title="&nbsp;" width="1%">
+            <ww:url id="editUrl" action="editBuildDefinitionTemplate" method="edit" namespace="/">
+              <ww:param name="buildDefinitionTemplate.id">${pageScope.template.id}</ww:param>
+            </ww:url>
+            <ww:a href="%{editUrl}"><img src="<ww:url value='/images/edit.gif'/>" alt="<ww:text name='edit'/>" title="<ww:text name='edit'/>" border="0"></ww:a>          
+          </ec:column>  
+          <!-- TODO list attached buildDefs -->
+          <ec:column property="deleteAction" title="&nbsp;" width="1%">
+            <ww:if test="${template.continuumDefault == true}">
+              <img src="<ww:url value='/images/delete_disabled.gif'/>" alt="<ww:text name='disabled'/>" title="<ww:text name='disabled'/>" border="0" />
+            </ww:if>
+            <ww:else>
+              <ww:url id="deleteUrl" action="deleteDefinitionTemplate" method="delete" namespace="/">
+                <ww:param name="buildDefinitionTemplate.id">${pageScope.template.id}</ww:param>
+              </ww:url>
+              <ww:a href="%{deleteUrl}"><img src="<ww:url value='/images/delete.gif'/>" alt="<ww:text name='delete'/>" title="<ww:text name='delete'/>" border="0"></ww:a>
+            </ww:else>          
+          </ec:column>                     
+        </ec:row>  
+      </ec:table> 
+      <div class="functnbar3">
+        <ww:form action="buildDefinitionTemplate!input.action" method="post">
+          <ww:submit value="%{getText('add')}"/>
+        </ww:form>
+      </div      
+      <h3>
+        <ww:text name="buildDefinition.templates.buildDefinitions.section.title"/>
+      </h3>
+      <ec:table items="buildDefinitionSummaries"
+                var="buildDefinitionSummary"
+                showExports="false"
+                showPagination="false"
+                showStatusBar="false"
+                filterable="false"
+                sortable="false">
+        <ec:row>
+          <ec:column property="goals" title="buildDefinition.template.buildDefinition.goals"/>
+          <ec:column property="arguments" title="buildDefinition.template.buildDefinition.arguments"/>
+          <!-- change the label for shell -->
+          <ec:column property="buildFile" title="buildDefinition.template.buildDefinition.buildFile"/>
+          <ec:column property="scheduleName" title="buildDefinition.template.buildDefinition.schedule"/>
+          <ec:column property="profileName" title="buildDefinition.template.buildDefinition.profile"/>
+          <ec:column property="isBuildFresh" title="buildDefinition.template.buildDefinition.buildFresh"/>
+          <ec:column property="isDefault" title="buildDefinition.template.buildDefinition.default"/>
+          <ec:column property="description" title="buildDefinition.template.buildDefinition.description"/>
+          <ec:column property="type" title="buildDefinition.template.buildDefinition.type"/>
+          <ec:column property="editAction" title="&nbsp;" width="1%">
+            <ww:url id="editUrl" action="editBuildDefinitionAsTemplate" method="editBuildDefinition" namespace="/">
+              <ww:param name="buildDefinition.id">${pageScope.buildDefinitionSummary.id}</ww:param>
+            </ww:url>
+            <ww:a href="%{editUrl}"><img src="<ww:url value='/images/edit.gif'/>" alt="<ww:text name='edit'/>" title="<ww:text name='edit'/>" border="0"></ww:a>          
+          </ec:column>          
+        </ec:row>  
+      </ec:table>      
+      
+      <div class="functnbar3">
+        <ww:form action="buildDefinitionAsTemplate!inputBuildDefinition.action" method="post">
+          <ww:submit value="%{getText('add')}"/>
+        </ww:form>
+      </div>           
+      
+    </div>
+  </ww:i18n>
+</html> 
\ No newline at end of file

Propchange: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildDefinitionTemplateSummary.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildDefinitionTemplateSummary.jsp
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildDefinitionTemplateSummary.jsp
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp?rev=578318&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp Fri Sep 21 16:20:52 2007
@@ -0,0 +1,98 @@
+<%--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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.
+  --%>
+
+<%@ taglib uri="/webwork" prefix="ww" %>
+<%@ 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="buildDefinition.template.page.title"/></title>
+    </head>
+    <body>
+      <div id="axial" class="h3">
+        <h3><ww:text name="buildDefinition.template.section.title"/></h3>
+
+        <div class="axial">
+          <ww:form action="saveBuildDefinitionAsTemplate" method="post" validate="true">
+            <c:choose>
+            
+              <c:when test="${!empty actionErrors}">
+                <div class="errormessage">
+                  <c:forEach items="${actionErrors}" var="actionError">
+                    <p><ww:text name="${actionError}"/></p>
+                  </c:forEach>
+                </div>
+                <input type="button" value="Back" onClick="history.go(-1)">
+              </c:when>
+  
+              <c:when test="${empty actionErrors}">
+                <table>
+                  <tbody>
+                    <ww:if test="buildDefinition.type == 'ant'">
+                      <ww:textfield label="%{getText('buildDefinition.buildFile.ant.label')}" name="buildDefinition.buildFile"  required="true"/>
+                    </ww:if>
+                    <ww:elseif test="buildDefinition.type == 'shell'">
+                      <ww:textfield label="%{getText('buildDefinition.buildFile.shell.label')}" name="buildDefinition.buildFile" required="true"/>
+                    </ww:elseif>
+                    <ww:else>
+                      <ww:textfield label="%{getText('buildDefinition.buildFile.maven.label')}" name="buildDefinition.buildFile" required="true"/>
+                    </ww:else>
+    
+                    <ww:if test="buildDefinition.type == 'ant'">
+                      <ww:textfield label="%{getText('buildDefinition.goals.ant.label')}" name="buildDefinition.goals"/>
+                    </ww:if>
+                    <ww:elseif test="buildDefinition.type == 'shell'">
+                    </ww:elseif>
+                    <ww:else>
+                      <ww:textfield label="%{getText('buildDefinition.goals.maven.label')}" name="buildDefinition.goals"/>
+                    </ww:else>
+    
+                    <ww:textfield label="%{getText('buildDefinition.arguments.label')}" name="buildDefinition.arguments"/>
+                    <ww:checkbox label="%{getText('buildDefinition.buildFresh.label')}" name="buildDefinition.buildFresh"/>
+                    <ww:checkbox label="%{getText('buildDefinition.alwaysBuild.label')}" name="buildDefinition.alwaysBuild" />
+                    <ww:select label="%{getText('buildDefinition.schedule.label')}" name="buildDefinition.schedule.id" list="schedules" listValue="name"
+                               listKey="id"/>
+                    <ww:if test="buildDefinition.profile == null">
+                      <ww:select label="%{getText('buildDefinition.profile.label')}" name="buildDefinition.profile.id" list="profiles" listValue="name" 
+                                 value="-1" listKey="id" headerKey="-1" headerValue=""/>
+                    </ww:if>
+                    <ww:else>
+                      <ww:select label="%{getText('buildDefinition.profile.label')}" name="buildDefinition.profile.id" list="profiles" listValue="name" 
+                                 listKey="id" headerKey="-1" headerValue=""/>
+                    </ww:else>
+                    <ww:select label="%{getText('buildDefinition.type.label')}" name="buildDefinition.type" list="buildDefinitionTypes"/>
+                    <ww:textfield label="%{getText('buildDefinition.description.label')}" name="buildDefinition.description" required="true"/>
+                  </tbody>
+                </table>
+                <div class="functnbar3">
+                  <c1:submitcancel value="%{getText('save')}" cancel="%{getText('cancel')}"/>
+                </div>
+
+                <ww:hidden name="buildDefinition.id"/>
+                <ww:hidden name="buildDefinition.template" value="true"/>
+              </c:when>
+            
+            </c:choose>
+          </ww:form>
+        </div>
+      </div>
+    </body>
+  </ww:i18n>
+</html>

Propchange: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionAsTemplate.jsp
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp?rev=578318&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp Fri Sep 21 16:20:52 2007
@@ -0,0 +1,84 @@
+<%--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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.
+  --%>
+
+<%@ taglib uri="/webwork" prefix="ww" %>
+<%@ 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="buildDefinition.template.page.title"/></title>
+    </head>
+    <body>
+      <div id="axial" class="h3">
+        <h3><ww:text name="buildDefinition.template.section.title"/></h3>
+
+        <div class="axial">
+          <ww:form action="saveBuildDefinitionTemplate" method="post" validate="true" name="buildDefinitionTemplate"
+                   onsubmit="customOnsubmit_saveBuildDefinitionTemplate();">
+            <c:choose>
+            
+              <c:when test="${!empty actionErrors}">
+                <div class="errormessage">
+                  <c:forEach items="${actionErrors}" var="actionError">
+                    <p><ww:text name="${actionError}"/></p>
+                  </c:forEach>
+                </div>
+                <input type="button" value="Back" onClick="history.go(-1)">
+              </c:when>
+  
+              <c:when test="${empty actionErrors}">
+                <table>
+                  <tbody>
+                    <ww:textfield label="%{getText('buildDefinitionTemplate.name')}" name="buildDefinitionTemplate.name" required="true"/>
+                    <ww:optiontransferselect 
+                        label="%{getText('buildDefinitionTemplate.builddefinitions.define')}"    
+                        name="buildDefinitionIds"
+                        list="buildDefinitions" 
+                        listKey="id"
+                        listValue="description+':'+goals"
+                        headerKey="-1"
+                        headerValue="%{getText('buildDefinitionTemplate.available.builddefinitions')}"
+                        multiple="true"
+                        emptyOption="false"
+                        doubleName="selectedBuildDefinitionIds"
+                        doubleList="buildDefinitionTemplate.buildDefinitions" 
+                        doubleListKey="id"
+                        doubleListValue="description+':'+goals"
+                        doubleHeaderKey="-1"
+                        doubleHeaderValue="%{getText('buildDefinitionTemplate.available.builddefinitions.used')}" 
+                        doubleMultiple="true" 
+                        doubleEmptyOption="false"
+                        formName="buildDefinitionTemplate" />                    
+                  </tbody>
+                </table>
+                <div class="functnbar3">
+                  <c1:submitcancel value="%{getText('save')}" cancel="%{getText('cancel')}"/>
+                </div>
+                <ww:hidden name="buildDefinitionTemplate.id"/>
+                <ww:hidden name="buildDefinitionTemplate.continuumDefault"/>
+              </c:when>
+            
+            </c:choose>
+          </ww:form>
+        </div>
+      </div>
+    </body>
+  </ww:i18n>
+</html>

Propchange: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp
------------------------------------------------------------------------------
    svn:executable = *

Propchange: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildDefinitionTemplate.jsp
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp?rev=578318&r1=578317&r2=578318&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp Fri Sep 21 16:20:52 2007
@@ -82,7 +82,7 @@
   </redback:ifAuthorized>
 
 
-  <redback:ifAnyAuthorized permissions="continuum-manage-schedules,continuum-manage-configuration,continuum-manage-users,continuum-manage-installations,continuum-manage-profiles">
+  <redback:ifAnyAuthorized permissions="continuum-manage-build-templates,continuum-manage-schedules,continuum-manage-configuration,continuum-manage-users,continuum-manage-installations,continuum-manage-profiles">
     <div id="projectmenu" class="toolgroup">
       <div class="label">
         <ww:text name="menu.administration"/>
@@ -112,6 +112,14 @@
             </ww:a>
           </div> 
         </redback:ifAuthorized> 
+        <redback:ifAuthorized permission="continuum-manage-build-templates">
+          <ww:url id="buildDefinitionTemplatesUrl" action="buildDefinitionTemplates" namespace="/admin" method="summary" includeParams="none"/>
+          <div class="body">
+            <ww:a href="%{buildDefinitionTemplatesUrl}">
+              <ww:text name="menu.administration.buildDefinitionTemplates"/>
+            </ww:a>
+          </div> 
+        </redback:ifAuthorized>        
         <redback:ifAuthorized permission="continuum-manage-configuration">               
           <ww:url id="configurationUrl" action="configuration" namespace="/admin" method="input" includeParams="none"/>
           <div class="body">