You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ba...@apache.org on 2013/06/11 15:05:45 UTC
svn commit: r1491782 - in /continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/
continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/
continuum-core/src/test/java/org/apache/maven/continuum/buildde...
Author: batkinson
Date: Tue Jun 11 13:05:44 2013
New Revision: 1491782
URL: http://svn.apache.org/r1491782
Log:
[CONTINUUM-1777] Able to create a build template without build definition
Submitted by: John Michael Luy (with modifications)
Submitted by: Gwen Harold Autencio (with modifications)
Added:
continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/error/buildDefinitionError.jsp
- copied, changed from r1491313, continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml
Modified:
continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java
continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionServiceTest.java
continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java
continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java
continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml
continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties
continuum/trunk/continuum-webapp/src/main/resources/struts.xml
Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java (original)
+++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java Tue Jun 11 13:05:44 2013
@@ -70,6 +70,9 @@ public interface BuildDefinitionService
*/
BuildDefinition cloneBuildDefinition( BuildDefinition buildDefinition );
+ boolean isBuildDefinitionInUse( BuildDefinition buildDefinition )
+ throws BuildDefinitionServiceException;
+
// ------------------------------------------------------
// BuildDefinitionTemplate
// ------------------------------------------------------
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionService.java Tue Jun 11 13:05:44 2013
@@ -254,6 +254,31 @@ public class DefaultBuildDefinitionServi
return cloned;
}
+ public boolean isBuildDefinitionInUse( BuildDefinition buildDefinition )
+ throws BuildDefinitionServiceException
+ {
+ boolean inUse = false;
+ List<BuildDefinitionTemplate> buildDefinitionTemplates = getAllBuildDefinitionTemplate();
+
+ for ( BuildDefinitionTemplate template : buildDefinitionTemplates )
+ {
+ for ( BuildDefinition definition : (List<BuildDefinition>) template.getBuildDefinitions() )
+ {
+ if ( buildDefinition.getId() == definition.getId() )
+ {
+ inUse = true;
+ break;
+ }
+ }
+
+ if ( inUse )
+ {
+ break;
+ }
+ }
+
+ return inUse;
+ }
public BuildDefinitionTemplate getContinuumDefaultWithType( String type )
throws BuildDefinitionServiceException
@@ -676,4 +701,5 @@ public class DefaultBuildDefinitionServi
}
return isDuplicate;
}
+
}
Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionServiceTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionServiceTest.java?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionServiceTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/builddefinition/DefaultBuildDefinitionServiceTest.java Tue Jun 11 13:05:44 2013
@@ -157,6 +157,9 @@ public class DefaultBuildDefinitionServi
(BuildDefinition) getBuildDefinitionService().getDefaultMavenTwoBuildDefinitionTemplate().getBuildDefinitions().get(
0 );
template = getBuildDefinitionService().addBuildDefinitionInTemplate( template, bd, false );
+
+ assertEquals( true, getBuildDefinitionService().isBuildDefinitionInUse( bd ) );
+
assertEquals( 1, template.getBuildDefinitions().size() );
all = getBuildDefinitionService().getAllBuildDefinitions();
assertEquals( 5, all.size() );
@@ -179,4 +182,18 @@ public class DefaultBuildDefinitionServi
template = getBuildDefinitionService().addBuildDefinitionTemplate( template );
assertNull( template );
}
+
+ public void testUnusedBuildDefinition()
+ throws Exception
+ {
+ BuildDefinition unused = new BuildDefinition();
+
+ unused.setTemplate( true );
+ unused.setArguments( "-N" );
+ unused.setGoals( "clean test-compile" );
+ unused.setBuildFile( "pom.xml" );
+ unused.setDescription( "desc template" );
+
+ assertFalse( getBuildDefinitionService().isBuildDefinitionInUse( unused ) );
+ }
}
Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/BuildDefinitionTemplateTest.java Tue Jun 11 13:05:44 2013
@@ -44,7 +44,7 @@ public class BuildDefinitionTemplateTest
throws Exception
{
goToAddTemplate();
- addEditTemplate( "", new String[]{}, new String[]{}, false );
+ addEditTemplate( "", new String[] { "Default Maven Build Definition" }, new String[] {}, false );
assertTextPresent( "Name is required" );
}
@@ -52,7 +52,7 @@ public class BuildDefinitionTemplateTest
throws Exception
{
goToAddTemplate();
- addEditTemplate( "Name <script>alert('gotcha')</script>", new String[]{}, new String[]{}, false );
+ addEditTemplate( "Name <script>alert('gotcha')</script>", new String[]{ "Default Maven Build Definition" }, new String[]{}, false );
assertTextPresent( "Name contains invalid characters" );
}
@@ -131,4 +131,13 @@ public class BuildDefinitionTemplateTest
String TEMPLATE_BUILD_DESCRIPTION = getProperty( "TEMPLATE_BUILD_DESCRIPTION" );
removeBuildDefinitionTemplate( TEMPLATE_BUILD_DESCRIPTION );
}
+
+ public void testAddTemplateWithEmptyBuildDefinitions()
+ throws Exception
+ {
+ String TEMPLATE_NAME = getProperty( "TEMPLATE_NAME" );
+ goToAddTemplate();
+ addEditTemplate( TEMPLATE_NAME, new String[] {}, new String[] {}, false );
+ }
+
}
Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/MavenTwoProjectTest.java Tue Jun 11 13:05:44 2013
@@ -65,19 +65,12 @@ public class MavenTwoProjectTest
projectGroupId = getProperty( "MAVEN2_POM_PROJECT_GROUP_ID" );
projectGroupDescription = getProperty( "MAVEN2_POM_PROJECT_GROUP_DESCRIPTION" );
projectGroupScmRootUrl = getProperty( "MAVEN2_POM_PROJECT_GROUP_SCM_ROOT_URL" );
-
- readdDefaultBuildDefinitionToTemplate = false;
}
@AfterMethod
public void tearDown()
{
removeProjectGroup( projectGroupName, false );
-
- if ( readdDefaultBuildDefinitionToTemplate )
- {
- addDefaultBuildDefinitionFromTemplate( "maven2" );
- }
}
public void testAddMavenTwoProject()
@@ -92,19 +85,6 @@ public class MavenTwoProjectTest
assertTextPresent( projectGroupScmRootUrl );
}
- public void testAddMavenTwoProjectWithNoDefaultBuildDefinitionInTemplate()
- throws Exception
- {
- removeDefaultBuildDefinitionFromTemplate( "maven2" );
- readdDefaultBuildDefinitionToTemplate = true;
-
- addMavenTwoProject( pomUrl, pomUsername, pomPassword, null, true );
-
- assertProjectGroupSummaryPage( projectGroupName, projectGroupId, projectGroupDescription );
-
- assertTextPresent( projectGroupScmRootUrl );
- }
-
/**
* Test flat multi module project with names that start with the same letter
*/
Modified: continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.java?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.java (original)
+++ continuum/trunk/continuum-webapp-test/src/test/testng/org/apache/continuum/web/test/parent/AbstractBuildDefinitionTemplateTest.java Tue Jun 11 13:05:44 2013
@@ -72,6 +72,8 @@ public abstract class AbstractBuildDefin
protected void addEditTemplate( String name, String[] addBuildDefinitions, String[] removeBuildDefinitions,
boolean success )
{
+ boolean empty = false;
+
setFieldValue( "buildDefinitionTemplate.name", name );
if ( addBuildDefinitions != null && addBuildDefinitions.length > 0 )
{
@@ -81,6 +83,11 @@ public abstract class AbstractBuildDefin
clickButtonWithValue( "->", false );
}
}
+ else
+ {
+ empty = true;
+ }
+
if ( removeBuildDefinitions != null && removeBuildDefinitions.length > 0 )
{
for ( String bd : removeBuildDefinitions )
@@ -96,7 +103,14 @@ public abstract class AbstractBuildDefin
}
else
{
- assertAddEditTemplatePage( null, null );
+ if ( empty )
+ {
+ assertTextPresent( "Template requires at least one build definition" );
+ }
+ else
+ {
+ assertAddEditTemplatePage( null, null );
+ }
}
}
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java Tue Jun 11 13:05:44 2013
@@ -206,7 +206,7 @@ public class BuildDefinitionTemplateActi
return SUCCESS;
}
- private List<BuildDefinition> getBuildDefinitionsFromSelectedBuildDefinitions()
+ public List<BuildDefinition> getBuildDefinitionsFromSelectedBuildDefinitions()
throws ContinuumException
{
if ( this.selectedBuildDefinitionIds == null )
@@ -293,9 +293,17 @@ public class BuildDefinitionTemplateActi
{
if ( confirmed )
{
- buildDefinition = getContinuum().getBuildDefinitionService().getBuildDefinition(
- this.buildDefinition.getId() );
- this.getContinuum().getBuildDefinitionService().removeBuildDefinition( buildDefinition );
+ if ( getContinuum().getBuildDefinitionService().isBuildDefinitionInUse( buildDefinition ) )
+ {
+ addActionError( getText( "buildDefinition.used" ) );
+ return ERROR;
+ }
+ else
+ {
+ buildDefinition =
+ getContinuum().getBuildDefinitionService().getBuildDefinition( this.buildDefinition.getId() );
+ this.getContinuum().getBuildDefinitionService().removeBuildDefinition( buildDefinition );
+ }
}
else
{
Modified: continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Tue Jun 11 13:05:44 2013
@@ -892,6 +892,12 @@ deletebuildDefinition.template.section.t
deletebuildDefinition.template.confirmation.message = Are you sure you want to delete build definition template "{0}"?
# ----------------------------------------------------------------------
+# Page: Build Definition Error
+# ----------------------------------------------------------------------
+buildDefinitionError.page.title=Delete Build Definition Error
+buildDefinitionError.section.title=Delete Build Definition Error
+
+# ----------------------------------------------------------------------
# Page: Queues
# ----------------------------------------------------------------------
buildQueue.page.title = Continuum - Build Queue
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml Tue Jun 11 13:05:44 2013
@@ -31,4 +31,8 @@
<message key="buildDefinitionTemplate.name.invalid"/>
</field-validator>
</field>
+ <validator type="expression">
+ <param name="expression">#selectedDefs = buildDefinitionsFromSelectedBuildDefinitions, #selectedDefs != null and #selectedDefs.size() > 0</param>
+ <message key="buildDefinitionTemplate.definition.empty" />
+ </validator>
</validators>
\ No newline at end of file
Modified: continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.properties Tue Jun 11 13:05:44 2013
@@ -19,10 +19,12 @@
buildDefinitionTemplate.name.exists = Name already exists
buildDefinitionTemplate.name.required = Name is required
+buildDefinitionTemplate.definition.empty = Template requires at least one build definition
buildDefinitionTemplate.name.invalid = Name contains invalid characters
buildDefinition.buildFile.required = BuildFile is required
buildDefinition.buildFile.invalid = BuildFile contains invalid characters
buildDefinition.description.required = Description is required
+buildDefinition.used = Build definition is used by a template
buildDefinition.goals.required = Goals are required
buildDefinition.goals.invalid = Goals contain invalid characters
buildDefinition.arguments.invalid = Arguments contain invalid characters
Modified: continuum/trunk/continuum-webapp/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/struts.xml?rev=1491782&r1=1491781&r2=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/struts.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/struts.xml Tue Jun 11 13:05:44 2013
@@ -909,6 +909,7 @@
<param name="actionName">buildDefinitionTemplates.action</param>
</result>
<result name="confirm">/WEB-INF/jsp/admin/confirmDeleteBuildDefinitionAsTemplate.jsp</result>
+ <result name="error">/WEB-INF/jsp/error/buildDefinitionError.jsp</result>
</action>
<action name="displayQueues" class="queues" method="display">
Copied: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/error/buildDefinitionError.jsp (from r1491313, continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml)
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/error/buildDefinitionError.jsp?p2=continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/error/buildDefinitionError.jsp&p1=continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml&r1=1491313&r2=1491782&rev=1491782&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction-saveBuildDefinitionTemplate-validation.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/error/buildDefinitionError.jsp Tue Jun 11 13:05:44 2013
@@ -1,4 +1,4 @@
-<!--
+<%--
~ 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
@@ -15,20 +15,30 @@
~ 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">
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<validators>
- <field name="buildDefinitionTemplate.name">
- <field-validator type="requiredstring">
- <message key="buildDefinitionTemplate.name.required"/>
- </field-validator>
- <field-validator type="regex">
- <param name="regex"><![CDATA[[A-Za-z0-9_.\s\-]*]]></param>
- <message key="buildDefinitionTemplate.name.invalid"/>
- </field-validator>
- </field>
-</validators>
\ No newline at end of file
+<html>
+<s:i18n name="localization.Continuum">
+<head>
+ <title><s:text name="buildDefinitionError.page.title"/></title>
+</head>
+
+<body>
+ <div id="h3">
+ <h3><s:text name="buildDefinitionError.section.title"/></h3>
+ <div class="errors">
+ <c:if test="${!empty actionErrors}">
+ <div class="errormessage">
+ <s:iterator value="actionErrors">
+ <p><s:property/></p>
+ </s:iterator>
+ </div>
+ </c:if>
+ </div>
+ </div>
+</body>
+</s:i18n>
+</html>