You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by oc...@apache.org on 2009/04/29 08:08:22 UTC
svn commit: r769671 [1/2] - in
/continuum/branches/continuum-flat-multi-module:
continuum-api/src/main/java/org/apache/continuum/buildmanager/
continuum-api/src/main/java/org/apache/continuum/taskqueue/
continuum-api/src/main/java/org/apache/maven/cont...
Author: oching
Date: Wed Apr 29 06:08:15 2009
New Revision: 769671
URL: http://svn.apache.org/viewvc?rev=769671&view=rev
Log:
[CONTINUUM-2193]
o allow checkout of multi-module projects into a single directory
o added and updated tests of affected classes
Added:
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/.cvsignore
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/pom.xml
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/App.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/AppTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/pom.xml
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/App.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/AppTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/parent-project/
continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/parent-project/pom.xml
Modified:
continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java
continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java
continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilderTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilderTest.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java
continuum/branches/continuum-flat-multi-module/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java
continuum/branches/continuum-flat-multi-module/continuum-webapp/src/main/resources/localization/Continuum.properties
continuum/branches/continuum-flat-multi-module/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenTwoProject.jsp
Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java Wed Apr 29 06:08:15 2009
@@ -87,13 +87,14 @@
* @param projectId
* @param projectName
* @param workingDirectory
+ * @param scmRootUrl TODO
* @param scmUsername
* @param scmPassword
* @param defaultBuildDefinition
* @throws BuildManagerException
*/
- void checkoutProject( int projectId, String projectName, File workingDirectory, String scmUsername,
- String scmPassword, BuildDefinition defaultBuildDefinition )
+ void checkoutProject( int projectId, String projectName, File workingDirectory, String scmRootUrl,
+ String scmUsername, String scmPassword, BuildDefinition defaultBuildDefinition )
throws BuildManagerException;
/**
Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java Wed Apr 29 06:08:15 2009
@@ -39,9 +39,11 @@
private final String scmUserName;
private final String scmPassword;
+
+ private final String scmRootUrl;
public CheckOutTask( int projectId, File workingDirectory, String projectName, String scmUserName,
- String scmPassword )
+ String scmPassword, String scmRootUrl )
{
this.projectId = projectId;
@@ -52,6 +54,8 @@
this.scmUserName = scmUserName;
this.scmPassword = scmPassword;
+
+ this.scmRootUrl = scmRootUrl;
}
public int getProjectId()
@@ -90,4 +94,9 @@
{
return this.hashCode();
}
+
+ public String getScmRootUrl()
+ {
+ return scmRootUrl;
+ }
}
Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Wed Apr 29 06:08:15 2009
@@ -337,13 +337,14 @@
* @param useCredentialsCache whether to use cached scm account credentials or not
* @param loadRecursiveProjects if multi modules project record all projects (if false only root project added)
* @param buildDefintionTemplateId buildDefintionTemplateId
+ * @param checkoutInSingleDirector if multi module project, check out the entire project in a single directory (handle flat multi-modules)
* @return a holder with the projects, project groups and errors occurred during the project adding
* @throws ContinuumException
*/
public ContinuumProjectBuildingResult addMavenTwoProject( String metadataUrl, int projectGroupId,
boolean checkProtocol, boolean useCredentialsCache,
boolean loadRecursiveProjects,
- int buildDefintionTemplateId )
+ int buildDefintionTemplateId, boolean checkoutInSingleDirectory )
throws ContinuumException;
/**
Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java Wed Apr 29 06:08:15 2009
@@ -35,12 +35,12 @@
throws ContinuumProjectBuilderException;
ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
- boolean recursiveProjects )
+ boolean recursiveProjects, boolean checkoutInSingleDirectory )
throws ContinuumProjectBuilderException;
ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
boolean recursiveProjects,
- BuildDefinitionTemplate buildDefinitionTemplate )
+ BuildDefinitionTemplate buildDefinitionTemplate, boolean checkoutInSingleDirectory )
throws ContinuumProjectBuilderException;
BuildDefinitionTemplate getDefaultBuildDefinitionTemplate()
Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java Wed Apr 29 06:08:15 2009
@@ -90,7 +90,11 @@
private final Map<String, String> errors = new HashMap<String, String>();
private static final String LS = System.getProperty( "line.separator" );
-
+
+ private String modulePath;
+
+ private Project rootProject;
+
public void addProject( Project project )
{
projects.add( project );
@@ -220,4 +224,24 @@
}
return message.toString();
}
+
+ public String getModulePath()
+ {
+ return modulePath;
+ }
+
+ public void setModulePath( String modulePath )
+ {
+ this.modulePath = modulePath;
+ }
+
+ public Project getRootProject()
+ {
+ return rootProject;
+ }
+
+ public void setRootProject( Project rootProject )
+ {
+ this.rootProject = rootProject;
+ }
}
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java Wed Apr 29 06:08:15 2009
@@ -367,10 +367,10 @@
}
/**
- * @see BuildsManager#checkoutProject(int, String, File, String, String, BuildDefinition)
+ * @see BuildsManager#checkoutProject(int, String, File, String, String, String, BuildDefinition)
*/
- public void checkoutProject( int projectId, String projectName, File workingDirectory, String scmUsername,
- String scmPassword, BuildDefinition defaultBuildDefinition )
+ public void checkoutProject( int projectId, String projectName, File workingDirectory, String scmRootUrl,
+ String scmUsername, String scmPassword, BuildDefinition defaultBuildDefinition )
throws BuildManagerException
{
try
@@ -390,7 +390,7 @@
OverallBuildQueue overallBuildQueue =
getOverallBuildQueue( CHECKOUT_QUEUE, defaultBuildDefinition.getSchedule().getBuildQueues() );
CheckOutTask checkoutTask =
- new CheckOutTask( projectId, workingDirectory, projectName, scmUsername, scmPassword );
+ new CheckOutTask( projectId, workingDirectory, projectName, scmUsername, scmPassword, scmRootUrl );
try
{
if ( overallBuildQueue != null )
@@ -873,7 +873,7 @@
{
BuildDefinition buildDefinition = buildDefinitionDao.getDefaultBuildDefinition( task.getProjectId() );
checkoutProject( task.getProjectId(), task.getProjectName(), task.getWorkingDirectory(),
- task.getScmUserName(), task.getScmPassword(), buildDefinition );
+ null, task.getScmUserName(), task.getScmPassword(), buildDefinition );
}
catch ( ContinuumStoreException e )
{
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Wed Apr 29 06:08:15 2009
@@ -1221,7 +1221,7 @@
{
return executeAddProjectsFromMetadataActivity( metadataUrl, MavenOneContinuumProjectBuilder.ID, projectGroupId,
checkProtocol, useCredentialsCache, true,
- buildDefinitionTemplateId );
+ buildDefinitionTemplateId, false );
}
// ----------------------------------------------------------------------
@@ -1270,7 +1270,7 @@
{
return executeAddProjectsFromMetadataActivity( metadataUrl, MavenTwoContinuumProjectBuilder.ID,
projectGroupId, checkProtocol, useCredentialsCache, true,
- buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getId() );
+ buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getId(), false );
}
catch ( BuildDefinitionServiceException e )
{
@@ -1288,7 +1288,7 @@
return executeAddProjectsFromMetadataActivity( metadataUrl, MavenTwoContinuumProjectBuilder.ID,
projectGroupId, checkProtocol, useCredentialsCache,
recursiveProjects,
- buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getId() );
+ buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getId(), false );
}
catch ( BuildDefinitionServiceException e )
{
@@ -1298,12 +1298,12 @@
public ContinuumProjectBuildingResult addMavenTwoProject( String metadataUrl, int projectGroupId,
boolean checkProtocol, boolean useCredentialsCache,
- boolean recursiveProjects, int buildDefinitionTemplateId )
+ boolean recursiveProjects, int buildDefinitionTemplateId, boolean checkoutInSingleDirectory )
throws ContinuumException
{
return executeAddProjectsFromMetadataActivity( metadataUrl, MavenTwoContinuumProjectBuilder.ID, projectGroupId,
checkProtocol, useCredentialsCache, recursiveProjects,
- buildDefinitionTemplateId );
+ buildDefinitionTemplateId, checkoutInSingleDirectory );
}
// ----------------------------------------------------------------------
@@ -1417,7 +1417,7 @@
throws ContinuumException
{
return executeAddProjectsFromMetadataActivity( metadataUrl, projectBuilderId, projectGroupId, checkProtocol,
- false, false, buildDefinitionTemplateId );
+ false, false, buildDefinitionTemplateId, false );
}
@@ -1428,7 +1428,7 @@
boolean useCredentialsCache,
boolean loadRecursiveProjects,
int buildDefinitionTemplateId,
- boolean addAssignableRoles )
+ boolean addAssignableRoles, boolean checkoutInSingleDirectory )
throws ContinuumException
{
if ( checkProtocol )
@@ -1445,13 +1445,15 @@
context.put( CreateProjectsFromMetadataAction.KEY_PROJECT_BUILDER_ID, projectBuilderId );
- context.put( CreateProjectsFromMetadataAction.KEY_URL, metadataUrl );
+ context.put( AbstractContinuumAction.KEY_URL, metadataUrl );
context.put( CreateProjectsFromMetadataAction.KEY_LOAD_RECURSIVE_PROJECTS, loadRecursiveProjects );
- context.put( CreateProjectsFromMetadataAction.KEY_SCM_USE_CREDENTIALS_CACHE, useCredentialsCache );
+ context.put( AbstractContinuumAction.KEY_SCM_USE_CREDENTIALS_CACHE, useCredentialsCache );
context.put( AbstractContinuumAction.KEY_WORKING_DIRECTORY, getWorkingDirectory() );
+
+ context.put( CreateProjectsFromMetadataAction.KEY_CHECKOUT_PROJECTS_IN_SINGLE_DIRECTORY, checkoutInSingleDirectory );
// CreateProjectsFromMetadataAction will check null and use default
if ( buildDefinitionTemplateId > 0 )
@@ -1550,10 +1552,10 @@
projectGroup = projectGroupDao.getProjectGroupWithBuildDetailsByProjectGroupId( projectGroupId );
- String url = (String) context.get( CreateProjectsFromMetadataAction.KEY_URL );
+ String url = (String) context.get( AbstractContinuumAction.KEY_URL );
projectScmRoot = getProjectScmRootByProjectGroupAndScmRootAddress( projectGroup.getId(), url );
-
+
if ( projectScmRoot == null )
{
createProjectScmRoot( projectGroup, url );
@@ -1581,7 +1583,7 @@
for ( Project project : projects )
{
project.setScmUseCache( useCredentialsCache );
-
+
// values backup for first checkout
scmUserName = project.getScmUsername();
scmPassword = project.getScmPassword();
@@ -1598,64 +1600,32 @@
try
{
projectGroupDao.updateProjectGroup( projectGroup );
-
- for ( Project project : projects )
+
+ if( !checkoutInSingleDirectory )
{
- context = new HashMap<String, Object>();
-
- // CONTINUUM-1953 olamy : attached buildDefs from template here
- // if no group creation
- if ( !projectGroupCreation && buildDefinitionTemplateId > 0 )
- {
- buildDefinitionService.addTemplateInProject( buildDefinitionTemplateId,
- projectDao.getProject( project.getId() ) );
- }
-
- context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT, project );
- //
- // executeAction( "validate-project", context );
- //
- // executeAction( "store-project", context );
- //
- context.put( AbstractContinuumAction.KEY_PROJECT_ID, project.getId() );
-
- if ( !StringUtils.isEmpty( scmUserName ) )
- {
- project.setScmUsername( scmUserName );
- context.put( AbstractContinuumAction.KEY_SCM_USERNAME, scmUserName );
- }
- if ( !StringUtils.isEmpty( scmPassword ) )
- {
- project.setScmPassword( scmPassword );
- context.put( AbstractContinuumAction.KEY_SCM_PASSWORD, scmPassword );
- }
- // FIXME
- // olamy : read again the project to have values because store.updateProjectGroup( projectGroup );
- // remove object data -> we don't display the project name in the build queue
- context.put( AbstractContinuumAction.KEY_PROJECT, projectDao.getProject( project.getId() ) );
-
- BuildDefinition defaultBuildDefinition = null;
- if ( projectBuilderId.equals( MavenTwoContinuumProjectBuilder.ID ) )
- {
- defaultBuildDefinition =
- (BuildDefinition) buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getBuildDefinitions().get(
- 0 );
- }
- else if ( projectBuilderId.equals( MavenOneContinuumProjectBuilder.ID ) )
+ for ( Project project : projects )
{
- defaultBuildDefinition =
- (BuildDefinition) buildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate().getBuildDefinitions().get(
- 0 );
+ context = new HashMap<String, Object>();
+
+ addProjectToCheckoutQueue( projectBuilderId, buildDefinitionTemplateId, context,
+ projectGroupCreation, scmUserName, scmPassword, project );
}
-
- // used by BuildManager to determine on which build queue will the project be put
- context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, defaultBuildDefinition );
-
- if ( !configurationService.isDistributedBuildEnabled() )
- {
- executeAction( "add-project-to-checkout-queue", context );
+ }
+ else
+ {
+ Project project = result.getRootProject();
+
+ if( project != null )
+ {
+ String scmRootUrl = AbstractContinuumAction.getString( context, AbstractContinuumAction.KEY_URL );
+
+ context = new HashMap<String, Object>();
+
+ context.put( AbstractContinuumAction.KEY_URL, scmRootUrl );
+
+ addProjectToCheckoutQueue( projectBuilderId, buildDefinitionTemplateId, context, projectGroupCreation,
+ scmUserName, scmPassword, project );
}
-
}
}
catch ( BuildDefinitionServiceException e )
@@ -1676,18 +1646,78 @@
return result;
}
+ private void addProjectToCheckoutQueue( String projectBuilderId, int buildDefinitionTemplateId,
+ Map<String, Object> context, boolean projectGroupCreation,
+ String scmUserName, String scmPassword, Project project )
+ throws BuildDefinitionServiceException, ContinuumStoreException, ContinuumException
+ {
+ // CONTINUUM-1953 olamy : attached buildDefs from template here
+ // if no group creation
+ if ( !projectGroupCreation && buildDefinitionTemplateId > 0 )
+ {
+ buildDefinitionService.addTemplateInProject( buildDefinitionTemplateId,
+ projectDao.getProject( project.getId() ) );
+ }
+
+ context.put( AbstractContinuumAction.KEY_UNVALIDATED_PROJECT, project );
+ //
+ // executeAction( "validate-project", context );
+ //
+ // executeAction( "store-project", context );
+ //
+ context.put( AbstractContinuumAction.KEY_PROJECT_ID, project.getId() );
+
+ // does the scm username & password really have to be set in the project?
+ if ( !StringUtils.isEmpty( scmUserName ) )
+ {
+ project.setScmUsername( scmUserName );
+ context.put( AbstractContinuumAction.KEY_SCM_USERNAME, scmUserName );
+ }
+ if ( !StringUtils.isEmpty( scmPassword ) )
+ {
+ project.setScmPassword( scmPassword );
+ context.put( AbstractContinuumAction.KEY_SCM_PASSWORD, scmPassword );
+ }
+ // FIXME
+ // olamy : read again the project to have values because store.updateProjectGroup( projectGroup );
+ // remove object data -> we don't display the project name in the build queue
+ context.put( AbstractContinuumAction.KEY_PROJECT, projectDao.getProject( project.getId() ) );
+
+ BuildDefinition defaultBuildDefinition = null;
+ if ( projectBuilderId.equals( MavenTwoContinuumProjectBuilder.ID ) )
+ {
+ defaultBuildDefinition =
+ (BuildDefinition) buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getBuildDefinitions().get(
+ 0 );
+ }
+ else if ( projectBuilderId.equals( MavenOneContinuumProjectBuilder.ID ) )
+ {
+ defaultBuildDefinition =
+ (BuildDefinition) buildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate().getBuildDefinitions().get(
+ 0 );
+ }
+
+ // used by BuildManager to determine on which build queue will the project be put
+ context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION, defaultBuildDefinition );
+
+ if ( !configurationService.isDistributedBuildEnabled() )
+ {
+ executeAction( "add-project-to-checkout-queue", context );
+ }
+ }
+
protected ContinuumProjectBuildingResult executeAddProjectsFromMetadataActivity( String metadataUrl,
String projectBuilderId,
int projectGroupId,
boolean checkProtocol,
boolean useCredentialsCache,
boolean loadRecursiveProjects,
- int buildDefinitionTemplateId )
+ int buildDefinitionTemplateId, boolean checkoutInSingleDirectory )
throws ContinuumException
{
return executeAddProjectsFromMetadataActivity( metadataUrl, projectBuilderId, projectGroupId, checkProtocol,
useCredentialsCache, loadRecursiveProjects,
- buildDefinitionTemplateId, true );
+ buildDefinitionTemplateId, true, checkoutInSingleDirectory );
}
// ----------------------------------------------------------------------
@@ -3083,7 +3113,7 @@
ProjectGroup group = getProjectGroupByProjectId( projectId );
List<ProjectScmRoot> scmRoots = getProjectScmRootByProjectGroup( group.getId() );
-
+
for ( ProjectScmRoot scmRoot : scmRoots )
{
if ( project.getScmUrl() != null && project.getScmUrl().startsWith( scmRoot.getScmRootAddress() ) )
@@ -3363,9 +3393,9 @@
private void prepareBuildProjects( Map<ProjectScmRoot, Map<Integer, Integer>> map, int trigger )
throws ContinuumException
- {
+ {
for ( ProjectScmRoot scmRoot : map.keySet() )
- {
+ {
prepareBuildProjects( map.get( scmRoot ), trigger, scmRoot.getScmRootAddress(),
scmRoot.getProjectGroup().getId(), scmRoot.getId() );
}
@@ -3377,6 +3407,10 @@
{
ProjectGroup group = getProjectGroup( projectGroupId );
+ // TODO: [deng] there should be a check somewhere that if the project was checked out in a
+ // single directory, then only the root project should be added in the projectsBuildDefinitionsMap!
+ // --> only the root url will be updated!
+
try
{
if ( configurationService.isDistributedBuildEnabled() )
@@ -3449,7 +3483,7 @@
projectScmRoot.setProjectGroup( projectGroup );
projectScmRoot.setScmRootAddress( url );
-
+
return projectScmRootDao.addProjectScmRoot( projectScmRoot );
}
catch ( ContinuumStoreException e )
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java Wed Apr 29 06:08:15 2009
@@ -98,6 +98,8 @@
public static final String KEY_CANCELLED = "cancelled";
public static final String KEY_SCM_RESULT_MAP = "scm-result-map";
+
+ public static final String KEY_URL = "url";
// ----------------------------------------------------------------------
//
@@ -228,17 +230,17 @@
{
return (Map<Integer, ScmResult>) getObject( context, KEY_SCM_RESULT_MAP );
}
-
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
- protected static String getString( Map<String, Object> context, String key )
+ public static String getString( Map<String, Object> context, String key )
{
return (String) getObject( context, key );
}
- protected static String getString( Map<String, Object> context, String key, String defaultValue )
+ public static String getString( Map<String, Object> context, String key, String defaultValue )
{
return (String) getObject( context, key, defaultValue );
}
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java Wed Apr 29 06:08:15 2009
@@ -61,10 +61,12 @@
project = projectDao.getProject( getProjectId( context ) );
}
+ String scmRootUrl = getString( context, KEY_URL, null );
+
BuildDefinition defaultBuildDefinition = getBuildDefinition( context );
parallelBuildsManager.checkoutProject( project.getId(), project.getName(),
workingDirectoryService.getWorkingDirectory( project ),
- project.getScmUsername(), project.getScmPassword(),
- defaultBuildDefinition );
+ scmRootUrl, project.getScmUsername(),
+ project.getScmPassword(), defaultBuildDefinition );
}
}
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java Wed Apr 29 06:08:15 2009
@@ -97,8 +97,10 @@
{
String scmUserName = getString( context, KEY_SCM_USERNAME, project.getScmUsername() );
String scmPassword = getString( context, KEY_SCM_PASSWORD, project.getScmPassword() );
+ String scmRootUrl = getString( context, KEY_URL, project.getScmUrl() );
+
ContinuumScmConfiguration config =
- createScmConfiguration( project, workingDirectory, scmUserName, scmPassword );
+ createScmConfiguration( project, workingDirectory, scmUserName, scmPassword, scmRootUrl );
String tag = config.getTag();
getLogger().info(
@@ -197,10 +199,10 @@
}
private ContinuumScmConfiguration createScmConfiguration( Project project, File workingDirectory,
- String scmUserName, String scmPassword )
+ String scmUserName, String scmPassword, String scmRootUrl )
{
ContinuumScmConfiguration config = new ContinuumScmConfiguration();
- config.setUrl( project.getScmUrl() );
+ config.setUrl( scmRootUrl );
config.setUsername( scmUserName );
config.setPassword( scmPassword );
config.setUseCredentialsCache( project.isScmUseCache() );
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java Wed Apr 29 06:08:15 2009
@@ -76,13 +76,13 @@
*/
private ContinuumUrlValidator urlValidator;
- public static final String KEY_URL = "url";
-
public static final String KEY_PROJECT_BUILDER_ID = "builderId";
public static final String KEY_PROJECT_BUILDING_RESULT = "projectBuildingResult";
public static final String KEY_LOAD_RECURSIVE_PROJECTS = "loadRecursiveProjects";
+
+ public static final String KEY_CHECKOUT_PROJECTS_IN_SINGLE_DIRECTORY = "checkoutProjectsInSingleDirectory";
public void execute( Map context )
throws ContinuumException, ContinuumProjectBuilderManagerException, ContinuumProjectBuilderException
@@ -90,6 +90,8 @@
String projectBuilderId = getString( context, KEY_PROJECT_BUILDER_ID );
boolean loadRecursiveProjects = getBoolean( context, KEY_LOAD_RECURSIVE_PROJECTS );
+
+ boolean checkoutProjectsInSingleDirectory = getBoolean( context, KEY_CHECKOUT_PROJECTS_IN_SINGLE_DIRECTORY );
String curl = getString( context, KEY_URL );
@@ -111,7 +113,7 @@
url = new URL( curl );
result = projectBuilder.buildProjectsFromMetadata( url, null, null, loadRecursiveProjects,
- buildDefinitionTemplate );
+ buildDefinitionTemplate, checkoutProjectsInSingleDirectory );
}
else
@@ -150,7 +152,7 @@
{
result = projectBuilder.buildProjectsFromMetadata( url, username, password, loadRecursiveProjects,
- buildDefinitionTemplate );
+ buildDefinitionTemplate, checkoutProjectsInSingleDirectory );
}
else
@@ -164,7 +166,7 @@
if ( result.getProjects() != null )
{
String scmRootUrl = getScmRootUrl( result.getProjects() );
-
+
if ( scmRootUrl == null || scmRootUrl.equals( "" ) )
{
if ( curl.indexOf( "pom.xml" ) > 0 )
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java Wed Apr 29 06:08:15 2009
@@ -67,17 +67,17 @@
public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password )
throws ContinuumProjectBuilderException
{
- return buildProjectsFromMetadata( url, username, password, true );
+ return buildProjectsFromMetadata( url, username, password, true, false );
}
public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
- boolean recursiveProjects )
+ boolean recursiveProjects, boolean checkoutInSingleDirectory )
throws ContinuumProjectBuilderException
{
try
{
return buildProjectsFromMetadata( url, username, password, recursiveProjects,
- buildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate() );
+ buildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate(), checkoutInSingleDirectory );
}
catch ( BuildDefinitionServiceException e )
{
@@ -87,7 +87,7 @@
public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
boolean recursiveProjects,
- BuildDefinitionTemplate buildDefinitionTemplate )
+ BuildDefinitionTemplate buildDefinitionTemplate, boolean checkoutInSingleDirectory )
throws ContinuumProjectBuilderException
{
ContinuumProjectBuildingResult result = new ContinuumProjectBuildingResult();
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java Wed Apr 29 06:08:15 2009
@@ -83,6 +83,8 @@
* @plexus.configuration
*/
private List<String> excludedPackagingTypes = new ArrayList<String>();
+
+ private Project rootProject;
// ----------------------------------------------------------------------
// AbstractContinuumProjectBuilder Implementation
@@ -90,17 +92,17 @@
public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password )
throws ContinuumProjectBuilderException
{
- return buildProjectsFromMetadata( url, username, password, true );
+ return buildProjectsFromMetadata( url, username, password, true, false );
}
public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
- boolean loadRecursiveProjects )
+ boolean loadRecursiveProjects, boolean checkoutInSingleDirectory )
throws ContinuumProjectBuilderException
{
try
{
return buildProjectsFromMetadata( url, username, password, loadRecursiveProjects,
- buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate() );
+ buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate(), checkoutInSingleDirectory );
}
catch ( BuildDefinitionServiceException e )
{
@@ -110,7 +112,7 @@
public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
boolean loadRecursiveProjects,
- BuildDefinitionTemplate buildDefinitionTemplate )
+ BuildDefinitionTemplate buildDefinitionTemplate, boolean checkoutInSingleDirectory )
throws ContinuumProjectBuilderException
{
// ----------------------------------------------------------------------
@@ -121,7 +123,7 @@
try
{
- readModules( url, result, true, username, password, null, loadRecursiveProjects, buildDefinitionTemplate );
+ readModules( url, result, true, username, password, null, loadRecursiveProjects, buildDefinitionTemplate, checkoutInSingleDirectory );
}
catch ( BuildDefinitionServiceException e )
{
@@ -136,7 +138,7 @@
private void readModules( URL url, ContinuumProjectBuildingResult result, boolean groupPom, String username,
String password, String scmUrl, boolean loadRecursiveProjects,
- BuildDefinitionTemplate buildDefinitionTemplate )
+ BuildDefinitionTemplate buildDefinitionTemplate, boolean checkoutInSingleDirectory )
throws ContinuumProjectBuilderException, BuildDefinitionServiceException
{
@@ -154,7 +156,20 @@
}
mavenProject = builderHelper.getMavenProject( result, pomFile );
-
+
+ if( !mavenProject.getModules().isEmpty() && checkoutInSingleDirectory )
+ {
+ String module = ( String ) mavenProject.getModules().get( 0 );
+ StringUtils.replace( module, '/', '\\' );
+
+ // confirm project is a flat multi-module project!
+ if( module.indexOf( '\\' ) != 0 )
+ {
+ String modulePath = StringUtils.substring( module, module.lastIndexOf( '\\' ) + 1 );
+ result.setModulePath( modulePath );
+ }
+ }
+
if ( result.hasErrors() )
{
return;
@@ -264,6 +279,12 @@
continuumProject.setScmTag( mavenProject.getScm().getTag() );
}
result.addProject( continuumProject, MavenTwoBuildExecutor.ID );
+
+ if( checkoutInSingleDirectory && rootProject == null )
+ {
+ rootProject = continuumProject;
+ result.setRootProject( rootProject );
+ }
}
List<String> modules = mavenProject.getModules();
@@ -289,13 +310,13 @@
prefix = prefix.substring( 0, lastSlash );
if ( loadRecursiveProjects )
- {
+ {
for ( String module : modules )
{
if ( StringUtils.isNotEmpty( module ) )
- {
+ {
String urlString = prefix + "/" + module + POM_PART + suffix;
-
+
URL moduleUrl;
try
@@ -309,18 +330,46 @@
continue;
}
- String moduleScmUrl;
- if ( scmUrl.endsWith( "/" ) )
- {
- moduleScmUrl = scmUrl + module;
+ String moduleScmUrl = "";
+
+ String modulePath = StringUtils.replace( new String( module ), '\\', '/' );
+
+ // check if module is relative
+ if( modulePath.indexOf( "/" ) != -1 )
+ {
+ int depth =
+ StringUtils.countMatches( StringUtils.substring( modulePath, 0,
+ modulePath.lastIndexOf( '/' ) + 1 ), "/" );
+
+ String baseUrl = "";
+ for( int j = 1; j <= depth; j++ )
+ {
+ if( scmUrl.endsWith( "/" ) )
+ {
+ String trimmedScmUrl = StringUtils.chompLast( new String( scmUrl ), "/" );
+ baseUrl = StringUtils.substring( trimmedScmUrl, 0, trimmedScmUrl.lastIndexOf( '/' ) );
+ }
+ else
+ {
+ baseUrl = StringUtils.substring( scmUrl, 0, scmUrl.lastIndexOf( '/' ) );
+ }
+ }
+ moduleScmUrl = baseUrl + "/" + StringUtils.substring( modulePath, modulePath.lastIndexOf( '/' ) + 1 );
}
else
{
- moduleScmUrl = scmUrl + "/" + module;
+ if ( scmUrl.endsWith( "/" ) )
+ {
+ moduleScmUrl = scmUrl + module;
+ }
+ else
+ {
+ moduleScmUrl = scmUrl + "/" + module;
+ }
}
// we are in recursive loading mode
readModules( moduleUrl, result, false, username, password, moduleScmUrl, true,
- buildDefinitionTemplate );
+ buildDefinitionTemplate, checkoutInSingleDirectory );
}
}
}
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java Wed Apr 29 06:08:15 2009
@@ -93,8 +93,8 @@
context.put( AbstractContinuumAction.KEY_SCM_USERNAME, task.getScmUserName() );
- context.put( AbstractContinuumAction.KEY_SCM_PASSWORD, task.getScmPassword() );
-
+ context.put( AbstractContinuumAction.KEY_URL, task.getScmRootUrl() );
+
try
{
actionManager.lookup( "checkout-project" ).execute( context );
Added: continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/.cvsignore
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/.cvsignore?rev=769671&view=auto
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/.cvsignore (added)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/.cvsignore Wed Apr 29 06:08:15 2009
@@ -0,0 +1,8 @@
+target
+*~
+*.log
+.classpath
+.project
+*.ipr
+*.iws
+*.iml
Added: continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/pom.xml?rev=769671&view=auto
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/pom.xml (added)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/pom.xml Wed Apr 29 06:08:15 2009
@@ -0,0 +1,21 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>parent-project</artifactId>
+ <groupId>org.apache.continuum</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.continuum</groupId>
+ <artifactId>module-a</artifactId>
+ <name>module-a</name>
+ <version>1.0-SNAPSHOT</version>
+ <url>http://maven.apache.org</url>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/App.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/App.java?rev=769671&view=auto
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/App.java (added)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/App.java Wed Apr 29 06:08:15 2009
@@ -0,0 +1,13 @@
+package org.apache.continuum.module.a;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
Added: continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/AppTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/AppTest.java?rev=769671&view=auto
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/AppTest.java (added)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/AppTest.java Wed Apr 29 06:08:15 2009
@@ -0,0 +1,38 @@
+package org.apache.continuum.module.a;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
Added: continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/pom.xml?rev=769671&view=auto
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/pom.xml (added)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/pom.xml Wed Apr 29 06:08:15 2009
@@ -0,0 +1,21 @@
+<?xml version="1.0"?><project>
+ <parent>
+ <artifactId>parent-project</artifactId>
+ <groupId>org.apache.continuum</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.continuum</groupId>
+ <artifactId>module-b</artifactId>
+ <name>module-b</name>
+ <version>1.0-SNAPSHOT</version>
+ <url>http://maven.apache.org</url>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Added: continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/App.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/App.java?rev=769671&view=auto
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/App.java (added)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/App.java Wed Apr 29 06:08:15 2009
@@ -0,0 +1,13 @@
+package org.apache.continuum.module.b;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
Added: continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/AppTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/AppTest.java?rev=769671&view=auto
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/AppTest.java (added)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/AppTest.java Wed Apr 29 06:08:15 2009
@@ -0,0 +1,38 @@
+package org.apache.continuum.module.b;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
Added: continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/parent-project/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/parent-project/pom.xml?rev=769671&view=auto
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/parent-project/pom.xml (added)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test-projects/flat-multi-module/parent-project/pom.xml Wed Apr 29 06:08:15 2009
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.continuum</groupId>
+ <artifactId>parent-project</artifactId>
+ <packaging>pom</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>parent-project</name>
+ <url>http://maven.apache.org</url>
+ <scm>
+ <connection>scm:local:src/test-projects:flat-multi-module/parent-project</connection>
+ <url>http://cvs.plexus.codehaus.org/plexus-components/native/continuum/src/test-projects/flat-multi-module/parent-project</url>
+ </scm>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <modules>
+ <module>../module-a</module>
+ <module>../module-b</module>
+ </modules>
+</project>
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java Wed Apr 29 06:08:15 2009
@@ -391,8 +391,8 @@
recordCheckoutProjectBuildQueuesAreEmpty();
buildsManager.checkoutProject( 1, "continuum-project-test-1",
- new File( getBasedir(), "/target/test-working-dir/1" ), "dummy", "dummypass",
- buildDef );
+ new File( getBasedir(), "/target/test-working-dir/1" ), null, "dummy",
+ "dummypass", buildDef );
context.assertIsSatisfied();
}
@@ -408,8 +408,8 @@
recordCheckoutProjectBuildQueuesAreEmpty();
buildsManager.checkoutProject( 1, "continuum-project-test-1",
- new File( getBasedir(), "/target/test-working-dir/1" ), "dummy", "dummypass",
- buildDef );
+ new File( getBasedir(), "/target/test-working-dir/1" ), null, "dummy",
+ "dummypass", buildDef );
context.assertIsSatisfied();
// queue second project - 1st queue has 1 task while 2nd queue is empty; project should be queued in
@@ -421,7 +421,7 @@
final List<Task> tasksInFirstCheckoutQueue = new ArrayList<Task>();
tasksInFirstCheckoutQueue.add(
new CheckOutTask( 1, new File( getBasedir(), "/target/test-working-dir/1" ), "continuum-project-test-1",
- "dummy", "dummypass" ) );
+ "dummy", "dummypass", null ) );
context.checking( new Expectations()
{
@@ -439,8 +439,8 @@
recordAddToCheckoutQueue();
buildsManager.checkoutProject( 2, "continuum-project-test-2",
- new File( getBasedir(), "/target/test-working-dir/1" ), "dummy", "dummypass",
- buildDef );
+ new File( getBasedir(), "/target/test-working-dir/1" ), null, "dummy",
+ "dummypass", buildDef );
context.assertIsSatisfied();
// queue third project - both queues have 1 task queued each; third project should be queued in 1st queue
@@ -459,8 +459,8 @@
recordAddToCheckoutQueue();
buildsManager.checkoutProject( 3, "continuum-project-test-3",
- new File( getBasedir(), "/target/test-working-dir/1" ), "dummy", "dummypass",
- buildDef );
+ new File( getBasedir(), "/target/test-working-dir/1" ), null, "dummy",
+ "dummypass", buildDef );
context.assertIsSatisfied();
}
@@ -563,7 +563,7 @@
final List<CheckOutTask> checkoutTasks = new ArrayList<CheckOutTask>();
checkoutTasks.add(
new CheckOutTask( 2, new File( getBasedir(), "/target/test-working-dir/1" ), "continuum-project-test-2",
- "dummy", "dummypass" ) );
+ "dummy", "dummypass", null ) );
final ParallelBuildsThreadedTaskQueueExecutor buildTaskQueueExecutor =
context.mock( ParallelBuildsThreadedTaskQueueExecutor.class, "parallel-build-task-executor" );
@@ -688,7 +688,7 @@
final List<CheckOutTask> checkoutTasks = new ArrayList<CheckOutTask>();
checkoutTasks.add(
new CheckOutTask( 2, new File( getBasedir(), "/target/test-working-dir/1" ), "continuum-project-test-2",
- "dummy", "dummypass" ) );
+ "dummy", "dummypass", null ) );
try
{
@@ -786,7 +786,7 @@
final List<Task> tasks = new ArrayList<Task>();
tasks.add(
new CheckOutTask( 2, new File( getBasedir(), "/target/test-working-dir/1" ), "continuum-project-test-2",
- "dummy", "dummypass" ) );
+ "dummy", "dummypass", null ) );
context.checking( new Expectations()
{
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java Wed Apr 29 06:08:15 2009
@@ -84,7 +84,7 @@
{
final CheckOutTask checkoutTask =
new CheckOutTask( 1, new File( getBasedir(), "/target/test-working-dir/1" ), "continuum-project-test-1",
- "dummy", "dummypass" );
+ "dummy", "dummypass", null );
final TaskQueue checkoutQueue = context.mock( TaskQueue.class, "checkout-queue" );
context.checking( new Expectations()
@@ -107,7 +107,7 @@
final List<Task> tasks = new ArrayList<Task>();
tasks.add(
new CheckOutTask( 1, new File( getBasedir(), "/target/test-working-dir/1" ), "continuum-project-test-1",
- "dummy", "dummypass" ) );
+ "dummy", "dummypass", null ) );
context.checking( new Expectations()
{
@@ -133,7 +133,7 @@
final List<Task> tasks = new ArrayList<Task>();
tasks.add(
new CheckOutTask( 1, new File( getBasedir(), "/target/test-working-dir/1" ), "continuum-project-test-1",
- "dummy", "dummypass" ) );
+ "dummy", "dummypass", null ) );
context.checking( new Expectations()
{
@@ -154,7 +154,7 @@
{
final Task checkoutTask =
new CheckOutTask( 1, new File( getBasedir(), "/target/test-working-dir/1" ), "continuum-project-test-1",
- "dummy", "dummypass" );
+ "dummy", "dummypass", null );
final TaskQueue checkoutQueue = context.mock( TaskQueue.class, "checkout-queue" );
final List<Task> tasks = new ArrayList<Task>();
tasks.add( checkoutTask );
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java Wed Apr 29 06:08:15 2009
@@ -91,7 +91,7 @@
ContinuumProjectBuildingResult result = getContinuum().addMavenTwoProject(
rootPom.toURI().toURL()
.toExternalForm(), pg.getId(),
- true, false, false, bdt.getId() );
+ true, false, false, bdt.getId(), false );
assertNotNull( result );
assertEquals( 1, result.getProjects().size() );
@@ -118,7 +118,7 @@
ContinuumProjectBuildingResult result = getContinuum().addMavenTwoProject(
rootPom.toURI().toURL()
.toExternalForm(), -1, true,
- false, true, bdt.getId() );
+ false, true, bdt.getId(), false );
assertNotNull( result );
assertEquals( 1, result.getProjects().size() );
@@ -154,7 +154,7 @@
ContinuumProjectBuildingResult result = getContinuum().addMavenTwoProject(
rootPom.toURI().toURL()
.toExternalForm(), -1, true,
- false, true, -1 );
+ false, true, -1, false );
assertNotNull( result );
assertEquals( 1, result.getProjects().size() );
@@ -202,7 +202,7 @@
ContinuumProjectBuildingResult result = getContinuum().addMavenTwoProject(
rootPom.toURI().toURL()
.toExternalForm(), pg.getId(),
- true, false, false, -1 );
+ true, false, false, -1, false );
assertNotNull( result );
assertEquals( 1, result.getProjects().size() );
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java Wed Apr 29 06:08:15 2009
@@ -38,7 +38,7 @@
ContinuumProjectBuildingResult result = continuum
.executeAddProjectsFromMetadataActivity( metadataUrl, MavenTwoContinuumProjectBuilder.ID,
- getDefaultProjectGroup().getId(), false, true, false, -1, false );
+ getDefaultProjectGroup().getId(), false, true, false, -1, false, false );
assertEquals( 1, result.getProjects().size() );
// read the project from store
@@ -56,7 +56,7 @@
ContinuumProjectBuildingResult result = continuum
.executeAddProjectsFromMetadataActivity( metadataUrl, MavenTwoContinuumProjectBuilder.ID,
- getDefaultProjectGroup().getId(), false, false, false, -1, false );
+ getDefaultProjectGroup().getId(), false, false, false, -1, false, false );
assertEquals( 1, result.getProjects().size() );
// read the project from store
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java?rev=769671&r1=769670&r2=769671&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java Wed Apr 29 06:08:15 2009
@@ -95,7 +95,7 @@
assertTrue( rootPom.exists() );
ContinuumProjectBuildingResult result =
- continuum.addMavenTwoProject( rootPom.toURI().toURL().toExternalForm(), -1, true, false, true, -1 );
+ continuum.addMavenTwoProject( rootPom.toURI().toURL().toExternalForm(), -1, true, false, true, -1, false );
assertNotNull( result );
@@ -128,8 +128,64 @@
assertTrue( "no irc notifier", projects.containsKey( "Continuum IRC Notifier" ) );
assertTrue( "no jabber notifier", projects.containsKey( "Continuum Jabber Notifier" ) );
+ }
+
+ // handle flat multi-module projects
+ public void testAddMavenTwoProjectSetInSingleDirectory()
+ throws Exception
+ {
+ Continuum continuum = (Continuum) lookup( Continuum.ROLE );
+
+ String url = getTestFile( "src/test-projects/flat-multi-module/parent-project/pom.xml" ).toURL().toExternalForm();
+
+ ContinuumProjectBuildingResult result = continuum.addMavenTwoProject( url, -1, true, false, true, -1, true );
+
+ assertNotNull( result );
+
+ List<Project> projects = result.getProjects();
+ assertEquals( 3, projects.size() );
+
+ Map<String, Project> projectsMap = new HashMap<String, Project>();
+ for ( Project project : getProjectDao().getAllProjectsByName() )
+ {
+ projectsMap.put( project.getName(), project );
+
+ // validate project in project group
+ assertTrue( "project not in project group",
+ getProjectGroupDao().getProjectGroupByProjectId( project.getId() ) != null );
+ }
+
+ assertTrue( "no module-a", projectsMap.containsKey( "module-a" ) );
+
+ assertTrue( "no module-b", projectsMap.containsKey( "module-b" ) );
+
+ // check if the modules were checked out in the same directory as the parent
+ ConfigurationService configurationService = ( ConfigurationService ) lookup( "configurationService" );
+
+ File workingDir = configurationService.getWorkingDirectory();
+
+ Project parentProject = getProjectDao().getProjectByName( "parent-project" );
+
+ File checkoutDir = new File( workingDir, String.valueOf( parentProject.getId() ) );
+
+ for( long delay = 0; delay <= 999999999; delay++ )
+ {
+ // wait while the project has been checked out
+ }
+
+ assertTrue( "checkout directory of project 'parent-project' does not exist." , checkoutDir.exists() );
+
+ assertFalse( "module-a should not have been checked out as a separate project.",
+ new File( workingDir, String.valueOf( getProjectDao().getProjectByName( "module-a" ).getId() ) ).exists() );
+
+ assertFalse( "module-b should not have been checked out as a separate project.",
+ new File( workingDir, String.valueOf( getProjectDao().getProjectByName( "module-b" ).getId() ) ).exists() );
+
+ assertTrue( "module-a was not checked out in the same directory as it's parent.", new File( checkoutDir, "module-a" ).exists() );
+
+ assertTrue( "module-b was not checked out in the same directory as it's parent.", new File( checkoutDir, "module-b" ).exists() );
}
public void testUpdateMavenTwoProject()