You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by br...@apache.org on 2012/09/28 09:50:51 UTC
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...
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<BuildDefinition> 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<BuildDefinition> buildDefinitions = projectGroup.getBuildDefinitions();
+ for ( BuildDefinition buildDefinition : buildDefinitions )
{
- List<BuildDefinition> 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<BuildDefinition> 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<BuildDefinition> getBuildDefinitions( BuildDefinitionTemplate template, boolean loadRecursiveProjects,
+ String defaultGoal )
throws ContinuumProjectBuilderException, BuildDefinitionServiceException
{
List<BuildDefinition> buildDefinitions = new ArrayList<BuildDefinition>();
- for ( BuildDefinition buildDefinition : (List<BuildDefinition>) 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<BuildDefinition> 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