Return-Path: X-Original-To: apmail-continuum-commits-archive@www.apache.org Delivered-To: apmail-continuum-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 179ABD460 for ; Fri, 28 Sep 2012 07:51:39 +0000 (UTC) Received: (qmail 82880 invoked by uid 500); 28 Sep 2012 07:51:38 -0000 Delivered-To: apmail-continuum-commits-archive@continuum.apache.org Received: (qmail 82825 invoked by uid 500); 28 Sep 2012 07:51:38 -0000 Mailing-List: contact commits-help@continuum.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@continuum.apache.org Delivered-To: mailing list commits@continuum.apache.org Received: (qmail 82810 invoked by uid 99); 28 Sep 2012 07:51:38 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Sep 2012 07:51:38 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Sep 2012 07:51:34 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id EB3FC23888E3 for ; Fri, 28 Sep 2012 07:50:51 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1391353 - in /continuum/trunk: ./ continuum-api/src/main/java/org/apache/continuum/taskqueue/ continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/c... Date: Fri, 28 Sep 2012 07:50:51 -0000 To: commits@continuum.apache.org From: brett@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120928075051.EB3FC23888E3@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: brett Date: Fri Sep 28 07:50:49 2012 New Revision: 1391353 URL: http://svn.apache.org/viewvc?rev=1391353&view=rev Log: [CONTINUUM-2563] better define behaviour for when to add a project-level build definition when a group was not created Modified: continuum/trunk/ (props changed) continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java (props changed) continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java (props changed) continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java (props changed) continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/manager/BuildAgentBuildExecutorManager.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/manager/DefaultBuildAgentBuildExecutorManager.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m1/ (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m2/BuildAgentMavenBuilderHelper.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m2/DefaultBuildAgentMavenBuilderHelper.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfiguration.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/BuildAgentInstallationService.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/DefaultBuildAgentInstallationService.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentManager.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentManager.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/BuildAgentTaskQueueManager.java (props changed) continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/DefaultBuildAgentTaskQueueManager.java (props changed) continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java (props changed) continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/ThreadedDistributedBuildTaskQueueExecutor.java (props changed) continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilderTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java continuum/trunk/continuum-data-management/data-management-cli/ (props changed) continuum/trunk/continuum-docs/ (props changed) continuum/trunk/continuum-docs/src/site/xdoc/ (props changed) continuum/trunk/continuum-model/src/main/resources/package-default.orm (props changed) continuum/trunk/continuum-webapp-test/src/test/selenium-ide/ (props changed) continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java (props changed) continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteBuildAgent.jsp (props changed) continuum/trunk/src/site/ (props changed) Propchange: continuum/trunk/ ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563:r1391316-1391350 Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java:r1391316-1391350 Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java:r1391316-1391350 Propchange: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java:r1391316-1391350 Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java?rev=1391353&r1=1391352&r2=1391353&view=diff ============================================================================== --- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java (original) +++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java Fri Sep 28 07:50:49 2012 @@ -45,6 +45,13 @@ public interface ContinuumProjectBuilder boolean checkoutInSingleDirectory ) throws ContinuumProjectBuilderException; + ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password, + boolean recursiveProjects, + BuildDefinitionTemplate buildDefinitionTemplate, + boolean checkoutInSingleDirectory, + int projectGroupId ) + throws ContinuumProjectBuilderException; + BuildDefinitionTemplate getDefaultBuildDefinitionTemplate() throws ContinuumProjectBuilderException; } Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/manager/BuildAgentBuildExecutorManager.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/manager/BuildAgentBuildExecutorManager.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/manager/DefaultBuildAgentBuildExecutorManager.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/manager/DefaultBuildAgentBuildExecutorManager.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m1/ ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m1:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m2/BuildAgentMavenBuilderHelper.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m2/BuildAgentMavenBuilderHelper.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m2/DefaultBuildAgentMavenBuilderHelper.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/build/execution/maven/m2/DefaultBuildAgentMavenBuilderHelper.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfiguration.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/BuildAgentConfiguration.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfiguration.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/DefaultBuildAgentConfigurationService.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/configuration/GeneralBuildAgentConfiguration.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/BuildAgentInstallationService.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/BuildAgentInstallationService.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/DefaultBuildAgentInstallationService.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/installation/DefaultBuildAgentInstallationService.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentManager.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/BuildAgentManager.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentManager.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/manager/DefaultBuildAgentManager.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/BuildAgentTaskQueueManager.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/BuildAgentTaskQueueManager.java:r1391316-1391350 Propchange: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/DefaultBuildAgentTaskQueueManager.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/DefaultBuildAgentTaskQueueManager.java:r1391316-1391350 Propchange: continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java:r1391316-1391350 Propchange: continuum/trunk/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/ThreadedDistributedBuildTaskQueueExecutor.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/ThreadedDistributedBuildTaskQueueExecutor.java:r1391316-1391350 Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=1391353&r1=1391352&r2=1391353&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Fri Sep 28 07:50:49 2012 @@ -1614,6 +1614,13 @@ public class DefaultContinuum // Create the projects from the URL // ---------------------------------------------------------------------- + ProjectGroup projectGroup; + + if ( projectGroupId != -1 ) + { + CreateProjectsFromMetadataAction.setProjectGroupId( context, projectGroupId ); + } + executeAction( "create-projects-from-metadata", context ); ContinuumProjectBuildingResult result = CreateProjectsFromMetadataAction.getProjectBuildingResult( context ); @@ -1652,14 +1659,14 @@ public class DefaultContinuum throw new ContinuumException( "The project building result has to contain exactly one project group." ); } - ProjectGroup projectGroup = result.getProjectGroups().iterator().next(); - boolean projectGroupCreation = false; try { if ( projectGroupId == -1 ) { + projectGroup = result.getProjectGroups().iterator().next(); + try { projectGroup = projectGroupDao.getProjectGroupByGroupId( projectGroup.getGroupId() ); Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java?rev=1391353&r1=1391352&r2=1391353&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java Fri Sep 28 07:50:49 2012 @@ -98,6 +98,8 @@ public class CreateProjectsFromMetadataA boolean checkoutProjectsInSingleDirectory = getBoolean( context, KEY_CHECKOUT_PROJECTS_IN_SINGLE_DIRECTORY ); + int projectGroupId = getProjectGroupId( context ); + String curl = getUrl( context ); URL url; @@ -119,7 +121,7 @@ public class CreateProjectsFromMetadataA result = projectBuilder.buildProjectsFromMetadata( url, null, null, loadRecursiveProjects, buildDefinitionTemplate, - checkoutProjectsInSingleDirectory ); + checkoutProjectsInSingleDirectory, projectGroupId ); } else @@ -159,7 +161,8 @@ public class CreateProjectsFromMetadataA result = projectBuilder.buildProjectsFromMetadata( url, username, password, loadRecursiveProjects, buildDefinitionTemplate, - checkoutProjectsInSingleDirectory ); + checkoutProjectsInSingleDirectory, + projectGroupId ); } else Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java?rev=1391353&r1=1391352&r2=1391353&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java Fri Sep 28 07:50:49 2012 @@ -19,6 +19,7 @@ package org.apache.maven.continuum.proje * under the License. */ +import org.apache.continuum.dao.ProjectGroupDao; import org.apache.maven.continuum.builddefinition.BuildDefinitionService; import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException; import org.apache.maven.continuum.execution.maven.m1.MavenOneBuildExecutor; @@ -32,6 +33,7 @@ import org.apache.maven.continuum.projec import org.apache.maven.continuum.project.builder.ContinuumProjectBuilder; import org.apache.maven.continuum.project.builder.ContinuumProjectBuilderException; import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult; +import org.apache.maven.continuum.store.ContinuumStoreException; import org.codehaus.plexus.util.StringUtils; import java.io.File; @@ -60,6 +62,11 @@ public class MavenOneContinuumProjectBui */ private MavenOneMetadataHelper metadataHelper; + /** + * @plexus.requirement + */ + private ProjectGroupDao projectGroupDao; + // ---------------------------------------------------------------------- // ProjectCreator Implementation // ---------------------------------------------------------------------- @@ -93,6 +100,36 @@ public class MavenOneContinuumProjectBui boolean checkoutInSingleDirectory ) throws ContinuumProjectBuilderException { + return buildProjectsFromMetadata( url, username, password, buildDefinitionTemplate, null ); + } + + public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password, + boolean recursiveProjects, + BuildDefinitionTemplate buildDefinitionTemplate, + boolean checkoutInSingleDirectory, + int projectGroupId ) + throws ContinuumProjectBuilderException + { + ProjectGroup projectGroup = null; + if ( projectGroupId > 0 ) + { + try + { + projectGroup = projectGroupDao.getProjectGroupWithBuildDetailsByProjectGroupId( projectGroupId ); + } + catch ( ContinuumStoreException e ) + { + throw new ContinuumProjectBuilderException( e.getMessage(), e ); + } + } + + return buildProjectsFromMetadata( url, username, password, buildDefinitionTemplate, projectGroup ); + } + + private ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password, + BuildDefinitionTemplate buildDefinitionTemplate, + ProjectGroup projectGroup ) + { ContinuumProjectBuildingResult result = new ContinuumProjectBuildingResult(); File pomFile; @@ -136,37 +173,40 @@ public class MavenOneContinuumProjectBui } } - ProjectGroup projectGroup = new ProjectGroup(); + if ( projectGroup != null ) + { + projectGroup = new ProjectGroup(); - // ---------------------------------------------------------------------- - // Group id - // ---------------------------------------------------------------------- + // ---------------------------------------------------------------------- + // Group id + // ---------------------------------------------------------------------- - if ( StringUtils.isEmpty( project.getGroupId() ) ) - { - result.addError( ContinuumProjectBuildingResult.ERROR_MISSING_GROUPID ); - } + if ( StringUtils.isEmpty( project.getGroupId() ) ) + { + result.addError( ContinuumProjectBuildingResult.ERROR_MISSING_GROUPID ); + } - projectGroup.setGroupId( project.getGroupId() ); + projectGroup.setGroupId( project.getGroupId() ); - // ---------------------------------------------------------------------- - // Name - // ---------------------------------------------------------------------- + // ---------------------------------------------------------------------- + // Name + // ---------------------------------------------------------------------- - String name = project.getName(); + String name = project.getName(); - if ( StringUtils.isEmpty( name ) ) - { - name = project.getGroupId(); - } + if ( StringUtils.isEmpty( name ) ) + { + name = project.getGroupId(); + } - projectGroup.setName( name ); + projectGroup.setName( name ); - // ---------------------------------------------------------------------- - // Description - // ---------------------------------------------------------------------- + // ---------------------------------------------------------------------- + // Description + // ---------------------------------------------------------------------- - projectGroup.setDescription( project.getDescription() ); + projectGroup.setDescription( project.getDescription() ); + } result.addProjectGroup( projectGroup ); Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java?rev=1391353&r1=1391352&r2=1391353&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java Fri Sep 28 07:50:49 2012 @@ -20,6 +20,7 @@ package org.apache.maven.continuum.proje */ import org.apache.continuum.dao.LocalRepositoryDao; +import org.apache.continuum.dao.ProjectGroupDao; import org.apache.continuum.dao.ScheduleDao; import org.apache.continuum.model.repository.LocalRepository; import org.apache.maven.continuum.builddefinition.BuildDefinitionService; @@ -86,6 +87,11 @@ public class MavenTwoContinuumProjectBui private Project rootProject; + /** + * @plexus.requirement + */ + private ProjectGroupDao projectGroupDao; + // ---------------------------------------------------------------------- // AbstractContinuumProjectBuilder Implementation // ---------------------------------------------------------------------- @@ -118,6 +124,16 @@ public class MavenTwoContinuumProjectBui boolean checkoutInSingleDirectory ) throws ContinuumProjectBuilderException { + return buildProjectsFromMetadata( url, username, password, loadRecursiveProjects, buildDefinitionTemplate, checkoutInSingleDirectory, -1 ); + } + + public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password, + boolean loadRecursiveProjects, + BuildDefinitionTemplate buildDefinitionTemplate, + boolean checkoutInSingleDirectory, + int projectGroupId ) + throws ContinuumProjectBuilderException + { // ---------------------------------------------------------------------- // We need to roll the project data into a file so that we can use it // ---------------------------------------------------------------------- @@ -126,13 +142,23 @@ public class MavenTwoContinuumProjectBui try { - readModules( url, result, true, username, password, null, loadRecursiveProjects, buildDefinitionTemplate, + ProjectGroup projectGroup = null; + if ( projectGroupId > 0 ) + { + projectGroup = projectGroupDao.getProjectGroupWithBuildDetailsByProjectGroupId( projectGroupId ); + } + + readModules( url, result, projectGroup, username, password, null, loadRecursiveProjects, buildDefinitionTemplate, checkoutInSingleDirectory ); } catch ( BuildDefinitionServiceException e ) { throw new ContinuumProjectBuilderException( e.getMessage(), e ); } + catch ( ContinuumStoreException e ) + { + throw new ContinuumProjectBuilderException( e.getMessage(), e ); + } return result; } @@ -140,7 +166,7 @@ public class MavenTwoContinuumProjectBui // // ---------------------------------------------------------------------- - private void readModules( URL url, ContinuumProjectBuildingResult result, boolean groupPom, String username, + private void readModules( URL url, ContinuumProjectBuildingResult result, ProjectGroup projectGroup, String username, String password, String scmUrl, boolean loadRecursiveProjects, BuildDefinitionTemplate buildDefinitionTemplate, boolean checkoutInSingleDirectory ) throws ContinuumProjectBuilderException, BuildDefinitionServiceException @@ -173,10 +199,9 @@ public class MavenTwoContinuumProjectBui pomFile.delete(); } } - log.debug( "groupPom " + groupPom ); + log.debug( "projectGroup " + projectGroup ); - ProjectGroup projectGroup = null; - if ( groupPom ) + if ( projectGroup == null ) { projectGroup = buildProjectGroup( mavenProject, result ); @@ -186,48 +211,20 @@ public class MavenTwoContinuumProjectBui if ( projectGroup != null ) { List buildDefinitions = getBuildDefinitions( buildDefinitionTemplate, - loadRecursiveProjects ); - boolean defaultSetted = false; + loadRecursiveProjects, + mavenProject.getBuild().getDefaultGoal() ); for ( BuildDefinition buildDefinition : buildDefinitions ) { - if ( !defaultSetted && buildDefinition.isDefaultForProject() ) - { - buildDefinition.setDefaultForProject( true ); - defaultSetted = true; - } - buildDefinition = buildDefinitionService.addBuildDefinition( - buildDefinitionService.cloneBuildDefinition( buildDefinition ) ); - //CONTINUUM-1296 - String defaultGoal = mavenProject.getBuild().getDefaultGoal(); - if ( StringUtils.isNotEmpty( defaultGoal ) ) - { - buildDefinition.setGoals( defaultGoal ); - } - if ( buildDefinition.getSchedule() == null ) - { - try - { - Schedule schedule = scheduleDao.getScheduleByName( - ConfigurationService.DEFAULT_SCHEDULE_NAME ); - - buildDefinition.setSchedule( schedule ); - } - catch ( ContinuumStoreException e ) - { - log.warn( "Can't get default schedule.", e ); - } - } - // jdo complains that Collections.singletonList(bd) is a second class object and fails. - //ArrayList arrayList = new ArrayList(); - - //arrayList.add( buildDefinition ); + buildDefinition = persistBuildDefinition( buildDefinition ); projectGroup.addBuildDefinition( buildDefinition ); - // .setBuildDefinitions( arrayList ); } - result.addProjectGroup( projectGroup ); } } + if ( result.getProjectGroups().isEmpty() ) + { + result.addProjectGroup( projectGroup ); + } if ( !excludedPackagingTypes.contains( mavenProject.getPackaging() ) ) { @@ -276,33 +273,33 @@ public class MavenTwoContinuumProjectBui } // CONTINUUM-2563 - if ( !loadRecursiveProjects ) + // Don't create if the project has a build definition template assigned to it already + if ( !loadRecursiveProjects && buildDefinitionTemplate.equals( getDefaultBuildDefinitionTemplate() ) ) { - // should only contain 1 project group - ProjectGroup pg = result.getProjectGroups().iterator().next(); - if ( pg.equals( projectGroup ) ) + List buildDefinitions = projectGroup.getBuildDefinitions(); + for ( BuildDefinition buildDefinition : buildDefinitions ) { - List pgBuildDefs = pg.getBuildDefinitions(); - for ( BuildDefinition bD : pgBuildDefs ) + if ( buildDefinition.isDefaultForProject() ) { - if ( bD.isDefaultForProject() ) - { - // create a default build definition at the project - // level - BuildDefinition projectBuildDef = buildDefinitionService.cloneBuildDefinition( bD ); - projectBuildDef.setDefaultForProject( true ); - - String arguments = projectBuildDef.getArguments().replace( "--non-recursive", "" ); - arguments = arguments.replace( "-N", "" ); - projectBuildDef.setArguments( arguments ); + // create a default build definition at the project level + BuildDefinition projectBuildDef = buildDefinitionService.cloneBuildDefinition( buildDefinition ); + projectBuildDef.setDefaultForProject( true ); + + String arguments = projectBuildDef.getArguments().replace( "--non-recursive", "" ); + arguments = arguments.replace( "-N", "" ); + arguments = arguments.trim(); + // add build definition only if it differs + if ( !projectBuildDef.getArguments().equals( arguments ) ) + { log.info( "Adding default build definition for project '" + continuumProject.getName() + "' without '--non-recursive' flag." ); + projectBuildDef.setArguments( arguments ); continuumProject.addBuildDefinition( projectBuildDef ); - - break; } + + break; } } } @@ -386,19 +383,59 @@ public class MavenTwoContinuumProjectBui moduleScmUrl = scmUrl + "/" + modulePath; } // we are in recursive loading mode - readModules( moduleUrl, result, false, username, password, moduleScmUrl, true, + readModules( moduleUrl, result, projectGroup, username, password, moduleScmUrl, true, buildDefinitionTemplate, checkoutInSingleDirectory ); } } } } - private List getBuildDefinitions( BuildDefinitionTemplate template, boolean loadRecursiveProjects ) + private BuildDefinition persistBuildDefinition( BuildDefinition buildDefinition ) + throws BuildDefinitionServiceException + { + buildDefinition = buildDefinitionService.addBuildDefinition( buildDefinition ); + if ( buildDefinition.getSchedule() == null ) + { + try + { + Schedule schedule = scheduleDao.getScheduleByName( + ConfigurationService.DEFAULT_SCHEDULE_NAME ); + + buildDefinition.setSchedule( schedule ); + } + catch ( ContinuumStoreException e ) + { + log.warn( "Can't get default schedule.", e ); + } + } + return buildDefinition; + } + + private List getBuildDefinitions( BuildDefinitionTemplate template, boolean loadRecursiveProjects, + String defaultGoal ) throws ContinuumProjectBuilderException, BuildDefinitionServiceException { List buildDefinitions = new ArrayList(); - for ( BuildDefinition buildDefinition : (List) template.getBuildDefinitions() ) + boolean defaultSet = false; + for ( BuildDefinition buildDefinition : template.getBuildDefinitions() ) { + buildDefinition = buildDefinitionService.cloneBuildDefinition( buildDefinition ); + + if ( !defaultSet && buildDefinition.isDefaultForProject() ) + { + defaultSet = true; + + //CONTINUUM-1296 + if ( StringUtils.isNotEmpty( defaultGoal ) ) + { + buildDefinition.setGoals( defaultGoal ); + } + } + else + { + buildDefinition.setDefaultForProject( false ); + } + // due to CONTINUUM-1207 CONTINUUM-1436 user can do what they want with arguments // we must remove if exists --non-recursive or -N if ( !loadRecursiveProjects ) @@ -412,6 +449,7 @@ public class MavenTwoContinuumProjectBui { String arguments = buildDefinition.getArguments().replace( "--non-recursive", "" ); arguments = arguments.replace( "-N", "" ); + arguments = arguments.trim(); buildDefinition.setArguments( arguments ); } } Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java?rev=1391353&r1=1391352&r2=1391353&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java (original) +++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java Fri Sep 28 07:50:49 2012 @@ -45,6 +45,8 @@ public class AddMaven2ProjectTest protected BuildDefinition bd; + protected BuildDefinitionService bds; + @Override protected void setUp() throws Exception @@ -55,7 +57,7 @@ public class AddMaven2ProjectTest bd.setBuildFile( "pom.xml" ); bd.setDescription( "my foo" ); bd.setTemplate( true ); - BuildDefinitionService bds = (BuildDefinitionService) lookup( BuildDefinitionService.class.getName(), + bds = (BuildDefinitionService) lookup( BuildDefinitionService.class.getName(), "default" ); bd = bds.addBuildDefinition( bd ); @@ -84,6 +86,7 @@ public class AddMaven2ProjectTest pg = getContinuum().getProjectGroupWithBuildDetails( pg.getId() ); // group created with the m2 default build def assertEquals( 1, pg.getBuildDefinitions().size() ); + assertEquals( "clean install", pg.getBuildDefinitions().get( 0 ).getGoals() ); File rootPom = getTestFile( "src/test/resources/projects/continuum/continuum-core/pom.xml" ); @@ -100,11 +103,10 @@ public class AddMaven2ProjectTest 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() ); - // project with the build def coming from template assertEquals( 1, project.getBuildDefinitions().size() ); - assertEquals( "clean deploy", ( (BuildDefinition) project.getBuildDefinitions().get( 0 ) ).getGoals() ); + // project with the build def coming from template + assertEquals( "clean deploy", project.getBuildDefinitions().get( 0 ).getGoals() ); } public void testAddProjectWithGroupCreationWithBuildDefTemplate() @@ -177,24 +179,26 @@ public class AddMaven2ProjectTest 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() ); + assertEquals( "clean install", pg.getBuildDefinitions().get( 0 ).getGoals() ); } public void testAddProjectToExistingGroupDefaultBuildDef() throws Exception { - ProjectGroup pg = new ProjectGroup(); - pg.setName( "foo" ); + String groupId = "foo"; + pg.setName( groupId ); + pg.setGroupId( groupId ); pg.setDescription( "foo pg" ); getContinuum().addProjectGroup( pg ); - pg = getContinuum().getAllProjectGroups().get( 1 ); - assertEquals( 2, getContinuum().getAllProjectGroups().size() ); + pg = getContinuum().getProjectGroupByGroupIdWithBuildDetails( groupId ); + + assertEquals( 1, pg.getBuildDefinitions().size() ); + BuildDefinition buildDefinition = pg.getBuildDefinitions().get( 0 ); + assertEquals( "clean install", buildDefinition.getGoals() ); + assertEquals( "--batch-mode --non-recursive", buildDefinition.getArguments() ); File rootPom = getTestFile( "src/test/resources/projects/continuum/continuum-core/pom.xml" ); @@ -211,16 +215,51 @@ public class AddMaven2ProjectTest 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() ); - pg = result.getProjectGroups().get( 0 ); - pg = getContinuum().getProjectGroupWithBuildDetails( pg.getId() ); - - assertEquals( "clean install", pg.getBuildDefinitions().get( 0 ).getGoals() ); + buildDefinition = project.getBuildDefinitions().get( 0 ); + assertEquals( "clean install", buildDefinition.getGoals() ); + assertEquals( "--batch-mode", buildDefinition.getArguments() ); } + public void testAddProjectToExistingGroupMatchingBuildDef() + throws Exception + { + ProjectGroup pg = new ProjectGroup(); + String groupId = "testAddProjectToExistingGroupMatchingBuildDef"; + pg.setName( groupId ); + pg.setGroupId( groupId ); + pg.setDescription( "foo pg" ); + getContinuum().addProjectGroup( pg ); + pg = getContinuum().getProjectGroupByGroupIdWithBuildDetails( groupId ); + + assertEquals( 1, pg.getBuildDefinitions().size() ); + BuildDefinition buildDefinition = pg.getBuildDefinitions().get( 0 ); + buildDefinition.setArguments( "--batch-mode" ); + bds.updateBuildDefinition( buildDefinition ); + + pg = getContinuum().getProjectGroupByGroupIdWithBuildDetails( groupId ); + buildDefinition = pg.getBuildDefinitions().get( 0 ); + assertEquals( "clean install", buildDefinition.getGoals() ); + assertEquals( "--batch-mode", buildDefinition.getArguments() ); + + 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, false ); + assertNotNull( result ); + + assertEquals( Collections.emptyList(), result.getErrors() ); + + assertEquals( 1, result.getProjects().size() ); + + Project project = result.getProjects().get( 0 ); + project = getContinuum().getProjectWithBuildDetails( project.getId() ); + assertNotNull( project ); + assertEquals( 0, project.getBuildDefinitions().size() ); + } private Continuum getContinuum() throws Exception Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=1391353&r1=1391352&r2=1391353&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java (original) +++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java Fri Sep 28 07:50:49 2012 @@ -346,11 +346,6 @@ public class DefaultContinuumTest assertTrue( "project group build definition is not default", pgbd.isDefaultForProject() ); - // project was added as a single project (loadRecursiveProjects == false) so project should not - // get the PG's build def which has '--non-recursive' flag set in its argument - assertTrue( "project group build definition should not be the default for project", - continuum.getDefaultBuildDefinition( project.getId() ).getId() != pgbd.getId() ); - BuildDefinition nbd = new BuildDefinition(); nbd.setGoals( "clean" ); nbd.setArguments( "" ); Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilderTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilderTest.java?rev=1391353&r1=1391352&r2=1391353&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilderTest.java (original) +++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilderTest.java Fri Sep 28 07:50:49 2012 @@ -84,6 +84,16 @@ public abstract class AbstractContinuumP return null; } + public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password, + boolean recursiveProjects, + BuildDefinitionTemplate buildDefinitionTemplate, + boolean checkoutInSingleDirectory, + int projectGroupId ) + throws ContinuumProjectBuilderException + { + return null; + } + public BuildDefinitionTemplate getDefaultBuildDefinitionTemplate() throws ContinuumProjectBuilderException { Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java?rev=1391353&r1=1391352&r2=1391353&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java (original) +++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java Fri Sep 28 07:50:49 2012 @@ -483,12 +483,16 @@ public class MavenTwoContinuumProjectBui // assert the default project build definition List buildDefs = project.getBuildDefinitions(); + assertEquals( 0, buildDefs.size() ); + + // assert the default project build definition + buildDefs = projectGroup.getBuildDefinitions(); assertEquals( 1, buildDefs.size() ); for ( BuildDefinition buildDef : buildDefs ) { if ( buildDef.isDefaultForProject() ) { - assertEquals( "--batch-mode ", buildDef.getArguments() ); + assertEquals( "--batch-mode", buildDef.getArguments() ); assertEquals( "clean install", buildDef.getGoals() ); assertEquals( "pom.xml", buildDef.getBuildFile() ); } Propchange: continuum/trunk/continuum-data-management/data-management-cli/ ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-data-management/data-management-cli:r1391316-1391350 Propchange: continuum/trunk/continuum-docs/ ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-docs:r1391316-1391350 Propchange: continuum/trunk/continuum-docs/src/site/xdoc/ ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-docs/src/site/xdoc:r1391316-1391350 Propchange: continuum/trunk/continuum-model/src/main/resources/package-default.orm ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-model/src/main/resources/package-default.orm:r1391316-1391350 Propchange: continuum/trunk/continuum-webapp-test/src/test/selenium-ide/ ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-webapp-test/src/test/selenium-ide:r1391316-1391350 Propchange: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java:r1391316-1391350 Propchange: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteBuildAgent.jsp ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmDeleteBuildAgent.jsp:r1391316-1391350 Propchange: continuum/trunk/src/site/ ------------------------------------------------------------------------------ Merged /continuum/branches/CONTINUUM-2563/src/site:r1391316-1391350