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=" " 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=" " 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=" " 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">