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 2008/12/13 18:34:07 UTC
svn commit: r726239 - in /continuum/branches/continuum-1.2.x:
continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/
continuum-core/src/main/java/org/apache/maven/continuum/
continuum-core/src/main/java/org/apache/maven/continuum/core/...
Author: olamy
Date: Sat Dec 13 09:34:07 2008
New Revision: 726239
URL: http://svn.apache.org/viewvc?rev=726239&view=rev
Log:
[CONTINUUM-1953] Build definitions not linked when creating a new project with a given build defintion template in an existing project group
Added:
continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java (with props)
Modified:
continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java
continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java
continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
continuum/branches/continuum-1.2.x/continuum-core/src/test/resources/projects/continuum/continuum-core/pom.xml
Modified: continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java?rev=726239&r1=726238&r2=726239&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/builddefinition/BuildDefinitionService.java Sat Dec 13 09:34:07 2008
@@ -115,7 +115,7 @@
public List<BuildDefinitionTemplate> getBuildDefinitionTemplatesWithType( String type )
throws BuildDefinitionServiceException;
-
+
public ProjectGroup addBuildDefinitionTemplateToProjectGroup( int projectGroupId,
BuildDefinitionTemplate buildDefinitionTemplate )
throws BuildDefinitionServiceException, ContinuumObjectNotFoundException;
Modified: continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=726239&r1=726238&r2=726239&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Sat Dec 13 09:34:07 2008
@@ -1877,6 +1877,8 @@
ProjectGroup projectGroup = (ProjectGroup) result.getProjectGroups().iterator().next();
+ boolean projectGroupCreation = false;
+
try
{
if ( projectGroupId == -1 )
@@ -1906,6 +1908,8 @@
executeAction( "store-project-group", pgContext );
projectGroupId = AbstractContinuumAction.getProjectGroupId( pgContext );
+
+ projectGroupCreation = true;
}
}
@@ -1955,6 +1959,14 @@
{
context = new HashMap();
+ // CONTINUUM-1953 olamy : attached buildDefs from template here
+ // if no group creation
+ if ( !projectGroupCreation && buildDefintionTemplateId > 0 )
+ {
+ buildDefinitionService.addTemplateInProject( buildDefintionTemplateId, projectDao
+ .getProject( project.getId() ) );
+ }
+
context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT, project );
//
// executeAction( "validate-project", context );
@@ -1980,6 +1992,10 @@
executeAction( "add-project-to-checkout-queue", context );
}
}
+ catch ( BuildDefinitionServiceException e )
+ {
+ throw new ContinuumException( "Error attaching buildDefintionTemplate to project ", e );
+ }
catch ( ContinuumStoreException e )
{
throw new ContinuumException( "Error adding projects from modules", e );
Modified: continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java?rev=726239&r1=726238&r2=726239&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java Sat Dec 13 09:34:07 2008
@@ -98,11 +98,18 @@
try
{
+ BuildDefinitionTemplate buildDefinitionTemplate = getBuildDefinitionTemplate( context );
+ if ( buildDefinitionTemplate == null )
+ {
+ buildDefinitionTemplate = projectBuilder.getDefaultBuildDefinitionTemplate();
+ }
if ( !curl.startsWith( "http" ) )
{
url = new URL( curl );
- result = projectBuilder.buildProjectsFromMetadata( url, null, null );
+ result = projectBuilder.buildProjectsFromMetadata( url, null, null, loadRecursiveProjects,
+ buildDefinitionTemplate );
+
}
else
{
@@ -138,11 +145,7 @@
if ( urlValidator.isValid( curl ) )
{
- BuildDefinitionTemplate buildDefinitionTemplate = getBuildDefinitionTemplate( context );
- if ( buildDefinitionTemplate == null )
- {
- buildDefinitionTemplate = projectBuilder.getDefaultBuildDefinitionTemplate();
- }
+
result = projectBuilder.buildProjectsFromMetadata( url, username, password, loadRecursiveProjects,
buildDefinitionTemplate );
Added: continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java?rev=726239&view=auto
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java (added)
+++ continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java Sat Dec 13 09:34:07 2008
@@ -0,0 +1,230 @@
+package org.apache.maven.continuum;
+
+import java.io.File;
+
+import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
+import org.apache.maven.continuum.model.project.BuildDefinition;
+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.project.builder.ContinuumProjectBuildingResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/*
+ * 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.
+ */
+/**
+ * @author olamy
+ * @since
+ * @version $Id$
+ */
+public class AddMaven2ProjectTest
+ extends AbstractContinuumTest
+{
+ protected Logger log = LoggerFactory.getLogger( getClass() );
+
+ protected BuildDefinitionTemplate bdt;
+
+ protected BuildDefinition bd;
+
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ bd = new BuildDefinition();
+ bd.setGoals( "clean deploy" );
+ bd.setBuildFile( "pom.xml" );
+ bd.setDescription( "my foo" );
+ bd.setTemplate( true );
+ BuildDefinitionService bds = (BuildDefinitionService) lookup( BuildDefinitionService.class.getName(), "default" );
+ bd = bds.addBuildDefinition( bd );
+
+
+ assertEquals( 5, bds.getAllBuildDefinitions().size() );
+
+ bdt = new BuildDefinitionTemplate();
+ bdt.setName( "bdt foo" );
+
+ bdt = bds.addBuildDefinitionTemplate( bdt );
+
+ bdt = bds.addBuildDefinitionInTemplate( bdt, bd, false );
+ }
+
+
+
+ public void testAddProjectWithBuildDefTemplateToExistingGroup()
+ throws Exception
+ {
+
+ ProjectGroup pg = new ProjectGroup();
+ pg.setName( "foo" );
+ pg.setDescription( "foo pg" );
+ getContinuum().addProjectGroup( pg );
+ pg = getContinuum().getAllProjectGroups().get( 1 );
+ assertEquals( 2, getContinuum().getAllProjectGroups().size() );
+
+ File rootPom = getTestFile( "src/test/resources/projects/continuum/continuum-core/pom.xml" );
+
+ assertTrue( rootPom.exists() );
+ //String url = getTestFile( "src/test-projects/project1/pom.xml" ).toURL().toExternalForm();
+ ContinuumProjectBuildingResult result = getContinuum().addMavenTwoProject(
+ rootPom.toURI().toURL()
+ .toExternalForm(), pg.getId(),
+ true, false, false, bdt.getId() );
+ assertNotNull( result );
+
+ assertEquals( 1, result.getProjects().size() );
+
+ Project project = result.getProjects().get( 0 );
+ project = getContinuum().getProjectWithBuildDetails( project.getId() );
+ assertNotNull( project );
+ pg = getContinuum().getProjectGroupWithBuildDetails( pg.getId() );
+ log.info( "project buildDef list size : " + project.getBuildDefinitions().size() );
+ assertEquals( 1, project.getBuildDefinitions().size() );
+ assertEquals( "clean deploy", ( (BuildDefinition) project.getBuildDefinitions().get( 0 ) ).getGoals() );
+ }
+
+ public void testAddProjectWithBuildDefTemplateWithGroupCreation()
+ throws Exception
+ {
+
+ //bdt = bds.addBuildDefinitionInTemplate( bdt, bd, true );
+ File rootPom = getTestFile( "src/test/resources/projects/continuum/continuum-core/pom.xml" );
+
+ assertTrue( rootPom.exists() );
+
+ ContinuumProjectBuildingResult result = getContinuum().addMavenTwoProject(
+ rootPom.toURI().toURL()
+ .toExternalForm(), -1, true,
+ false, true, bdt.getId() );
+ assertNotNull( result );
+
+ assertEquals( 1, result.getProjects().size() );
+
+ Project project = result.getProjects().get( 0 );
+ assertNotNull( project );
+ log.info( "project buildDef list size : " + project.getBuildDefinitions().size() );
+ log.info( "all pg size " + getContinuum().getAllProjectGroups().size() );
+ ProjectGroup pg = result.getProjectGroups().get( 0 );
+
+ pg = getContinuum().getProjectGroupWithBuildDetails( pg.getId() );
+
+ log.info( " pg groupId " + pg.getGroupId() );
+ //@ group level the db from template must be used
+ log.info( " mg builddefs size " + pg.getBuildDefinitions().size() );
+ log.info( "pg bd goals " + ( (BuildDefinition) pg.getBuildDefinitions().get( 0 ) ).getGoals() );
+ assertEquals( "clean deploy", ( (BuildDefinition) pg.getBuildDefinitions().get( 0 ) ).getGoals() );
+
+ }
+
+ public void testAddProjectWithGroupCreationDefaultBuildDef()
+ throws Exception
+ {
+
+ //bdt = bds.addBuildDefinitionInTemplate( bdt, bd, true );
+ File rootPom = getTestFile( "src/test/resources/projects/continuum/continuum-core/pom.xml" );
+
+ assertTrue( rootPom.exists() );
+
+ ContinuumProjectBuildingResult result = getContinuum().addMavenTwoProject(
+ rootPom.toURI().toURL()
+ .toExternalForm(), -1, true,
+ false, true, -1 );
+ assertNotNull( result );
+
+ assertEquals( 1, result.getProjects().size() );
+
+ Project project = result.getProjects().get( 0 );
+ assertNotNull( project );
+ log.info( "project buildDef list size : " + project.getBuildDefinitions().size() );
+ log.info( "all pg size " + getContinuum().getAllProjectGroups().size() );
+ ProjectGroup pg = result.getProjectGroups().get( 0 );
+
+ log.info( getContinuum().getAllProjectGroups().toString() );
+ log.info( " pg id " + Integer.toString( pg.getId() ) );
+
+ pg = getContinuum().getProjectGroupWithBuildDetails( pg.getId() );
+
+ log.info( " pg groupId " + pg.getGroupId() );
+ //@ group level the db from template must be used
+ log.info( " mg builddefs size " + pg.getBuildDefinitions().size() );
+ log.info( "pg bd goals " + ( (BuildDefinition) pg.getBuildDefinitions().get( 0 ) ).getGoals() );
+ assertEquals( "clean install", ( (BuildDefinition) pg.getBuildDefinitions().get( 0 ) ).getGoals() );
+
+ }
+
+
+ public void testAddProjectToExistingGroupDefaultBuildDef()
+ throws Exception
+ {
+
+ ProjectGroup pg = new ProjectGroup();
+ pg.setName( "foo" );
+ pg.setDescription( "foo pg" );
+ getContinuum().addProjectGroup( pg );
+ pg = getContinuum().getAllProjectGroups().get( 1 );
+ assertEquals( 2, getContinuum().getAllProjectGroups().size() );
+
+ File rootPom = getTestFile( "src/test/resources/projects/continuum/continuum-core/pom.xml" );
+
+ assertTrue( rootPom.exists() );
+ //String url = getTestFile( "src/test-projects/project1/pom.xml" ).toURL().toExternalForm();
+ ContinuumProjectBuildingResult result = getContinuum().addMavenTwoProject(
+ rootPom.toURI().toURL()
+ .toExternalForm(), pg.getId(),
+ true, false, false, -1 );
+ assertNotNull( result );
+
+ assertEquals( 1, result.getProjects().size() );
+
+ Project project = result.getProjects().get( 0 );
+ project = getContinuum().getProjectWithBuildDetails( project.getId() );
+ assertNotNull( project );
+ pg = getContinuum().getProjectGroupWithBuildDetails( pg.getId() );
+ log.info( "project buildDef list size : " + project.getBuildDefinitions().size() );
+ assertEquals( 0, project.getBuildDefinitions().size() );
+ pg = result.getProjectGroups().get( 0 );
+
+ pg = getContinuum().getProjectGroupWithBuildDetails( pg.getId() );
+
+ assertEquals( "clean install", ( (BuildDefinition) pg.getBuildDefinitions().get( 0 ) ).getGoals() );
+ }
+
+
+ private Continuum getContinuum()
+ throws Exception
+ {
+ return (Continuum) lookup( Continuum.ROLE );
+ }
+
+ @Override
+ protected String getPlexusConfigLocation()
+ {
+ return "org/apache/maven/continuum/DefaultContinuumTest.xml";
+ }
+
+ @Override
+ protected String getSpringConfigLocation()
+ {
+ return "applicationContextSlf4jPlexusLogger.xml";
+ }
+
+
+}
Propchange: continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java
------------------------------------------------------------------------------
svn:executable = *
Propchange: continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=726239&r1=726238&r2=726239&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java (original)
+++ continuum/branches/continuum-1.2.x/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java Sat Dec 13 09:34:07 2008
@@ -89,7 +89,9 @@
//assertTrue( validator.validate( fileUrl ) );
- ContinuumProjectBuildingResult result = continuum.addMavenTwoProject( fileUrl );
+ ContinuumProjectBuildingResult result = continuum.addMavenTwoProject( rootPom.toURI().toURL()
+ .toExternalForm(), -1, true,
+ false, true, -1 );
assertNotNull( result );
@@ -470,8 +472,9 @@
assertEquals( 0 , continuum.getAllContinuumReleaseResults().size() );
assertFalse( logFile.exists() );
assertEquals( defaultProjectGroup, continuum.getProjectGroupByGroupId( Continuum.DEFAULT_PROJECT_GROUP_GROUP_ID ) );
+
}
-
+
private Continuum getContinuum()
throws Exception
{
Modified: continuum/branches/continuum-1.2.x/continuum-core/src/test/resources/projects/continuum/continuum-core/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.2.x/continuum-core/src/test/resources/projects/continuum/continuum-core/pom.xml?rev=726239&r1=726238&r2=726239&view=diff
==============================================================================
--- continuum/branches/continuum-1.2.x/continuum-core/src/test/resources/projects/continuum/continuum-core/pom.xml (original)
+++ continuum/branches/continuum-1.2.x/continuum-core/src/test/resources/projects/continuum/continuum-core/pom.xml Sat Dec 13 09:34:07 2008
@@ -17,7 +17,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>continuum-parent</artifactId>