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/05/05 04:53:48 UTC
svn commit: r771527 - in /continuum/branches/continuum-flat-multi-module:
continuum-commons/src/main/java/org/apache/maven/continuum/utils/
continuum-commons/src/test/java/org/apache/maven/continuum/utils/
continuum-core/src/main/java/org/apache/contin...
Author: oching
Date: Tue May 5 02:53:46 2009
New Revision: 771527
URL: http://svn.apache.org/viewvc?rev=771527&view=rev
Log:
[CONTINUUM-2193]
o fix prepare build of multi-module projects
o refactored a few variable names and methods
Modified:
continuum/branches/continuum-flat-multi-module/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java
continuum/branches/continuum-flat-multi-module/continuum-commons/src/test/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryServiceTest.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/CheckWorkingDirectoryAction.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/CleanWorkingDirectoryAction.java
continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.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/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java
continuum/branches/continuum-flat-multi-module/continuum-model/pom.xml
continuum/branches/continuum-flat-multi-module/continuum-model/src/main/mdo/continuum.xml
continuum/branches/continuum-flat-multi-module/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java
Modified: continuum/branches/continuum-flat-multi-module/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java?rev=771527&r1=771526&r2=771527&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java Tue May 5 02:53:46 2009
@@ -76,16 +76,16 @@
if ( project.getWorkingDirectory() == null || "".equals( project.getWorkingDirectory() ) )
{
- if( projectScmRoot == null || "".equals( projectScmRoot ) )
+ if( !project.isCheckedOutInSingleDirectory() )
{
project.setWorkingDirectory( Integer.toString( project.getId() ) );
}
else
{
- if( projects != null && !projects.isEmpty() )
+ Project rootProject = project;
+ if( projects != null )
{
- // the root project should have the lowest id since it's always added first
- Project rootProject = projects.get( 0 );
+ // the root project should have the lowest id since it's always added first
for( Project projectUnderScmRoot : projects )
{
if( projectUnderScmRoot.getId() < rootProject.getId() )
@@ -93,20 +93,20 @@
rootProject = projectUnderScmRoot;
}
}
-
- // determine the path
- String projectScmUrl = project.getScmUrl();
- int indexDiff = StringUtils.differenceAt( projectScmUrl, projectScmRoot );
-
- String pathToProject = projectScmUrl.substring( indexDiff );
- if( pathToProject.startsWith( "\\" ) || pathToProject.startsWith( "/" ) )
- {
- project.setWorkingDirectory( Integer.toString( rootProject.getId() ) + pathToProject );
- }
- else
- {
- project.setWorkingDirectory( Integer.toString( rootProject.getId() ) + "/" + pathToProject );
- }
+ }
+
+ // determine the path
+ String projectScmUrl = project.getScmUrl();
+ int indexDiff = StringUtils.differenceAt( projectScmUrl, projectScmRoot );
+
+ String pathToProject = projectScmUrl.substring( indexDiff );
+ if( pathToProject.startsWith( "\\" ) || pathToProject.startsWith( "/" ) )
+ {
+ project.setWorkingDirectory( Integer.toString( rootProject.getId() ) + pathToProject );
+ }
+ else
+ {
+ project.setWorkingDirectory( Integer.toString( rootProject.getId() ) + "/" + pathToProject );
}
}
}
Modified: continuum/branches/continuum-flat-multi-module/continuum-commons/src/test/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryServiceTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-commons/src/test/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryServiceTest.java?rev=771527&r1=771526&r2=771527&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-commons/src/test/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryServiceTest.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-commons/src/test/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryServiceTest.java Tue May 5 02:53:46 2009
@@ -72,6 +72,7 @@
project.setArtifactId( "module-a" );
project.setVersion( "1.0-SNAPSHOT" );
project.setScmUrl( "scm:local:src/test-projects:flat-multi-module/module-a" );
+ project.setCheckedOutInSingleDirectory( true );
projects.add( project );
@@ -81,6 +82,7 @@
otherProject.setArtifactId( "module-b" );
otherProject.setVersion( "1.0-SNAPSHOT" );
otherProject.setScmUrl( "scm:local:src/test-projects:flat-multi-module/module-b" );
+ otherProject.setCheckedOutInSingleDirectory( true );
projects.add( otherProject );
@@ -90,6 +92,7 @@
otherProject.setArtifactId( "parent-project" );
otherProject.setVersion( "1.0-SNAPSHOT" );
otherProject.setScmUrl( "scm:local:src/test-projects:flat-multi-module/parent-project" );
+ otherProject.setCheckedOutInSingleDirectory( true );
projects.add( otherProject );
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=771527&r1=771526&r2=771527&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 Tue May 5 02:53:46 2009
@@ -31,6 +31,9 @@
import org.apache.continuum.buildqueue.BuildQueueService;
import org.apache.continuum.buildqueue.BuildQueueServiceException;
import org.apache.continuum.dao.BuildDefinitionDao;
+import org.apache.continuum.dao.ProjectDao;
+import org.apache.continuum.dao.ProjectGroupDao;
+import org.apache.continuum.dao.ProjectScmRootDao;
import org.apache.continuum.taskqueue.BuildProjectTask;
import org.apache.continuum.taskqueue.CheckOutTask;
import org.apache.continuum.taskqueue.OverallBuildQueue;
@@ -89,7 +92,16 @@
private BuildQueueService buildQueueService;
private PlexusContainer container;
-
+
+ @Resource
+ private ProjectDao projectDao;
+
+ @Resource
+ private ProjectGroupDao projectGroupDao;
+
+ @Resource
+ private ProjectScmRootDao projectScmRootDao;
+
/**
* @see BuildsManager#buildProject(int, BuildDefinition, String, int, ScmResult)
*/
@@ -112,7 +124,7 @@
}
OverallBuildQueue overallBuildQueue =
- getOverallBuildQueue( BUILD_QUEUE, buildDefinition.getSchedule().getBuildQueues() );
+ getOverallBuildQueue( BUILD_QUEUE, buildDefinition.getSchedule().getBuildQueues(), null );
String buildDefinitionLabel = buildDefinition.getDescription();
if ( StringUtils.isEmpty( buildDefinitionLabel ) )
@@ -164,7 +176,7 @@
{
BuildDefinition buildDef = projectsBuildDefinitionsMap.get( firstProjectId );
OverallBuildQueue overallBuildQueue =
- getOverallBuildQueue( BUILD_QUEUE, buildDef.getSchedule().getBuildQueues() );
+ getOverallBuildQueue( BUILD_QUEUE, buildDef.getSchedule().getBuildQueues(), null );
if ( overallBuildQueue != null )
{
@@ -388,7 +400,7 @@
}
OverallBuildQueue overallBuildQueue =
- getOverallBuildQueue( CHECKOUT_QUEUE, defaultBuildDefinition.getSchedule().getBuildQueues() );
+ getOverallBuildQueue( CHECKOUT_QUEUE, defaultBuildDefinition.getSchedule().getBuildQueues(), null );
CheckOutTask checkoutTask =
new CheckOutTask( projectId, workingDirectory, projectName, scmUsername, scmPassword, scmRootUrl, subProjects );
try
@@ -1108,7 +1120,7 @@
}
// get overall queue where project will be queued
- private OverallBuildQueue getOverallBuildQueue( int typeOfQueue, List<BuildQueue> buildQueues )
+ private OverallBuildQueue getOverallBuildQueue( int typeOfQueue, List<BuildQueue> buildQueues, Project project )
throws BuildManagerException
{
OverallBuildQueue whereToBeQueued = null;
@@ -1119,59 +1131,20 @@
throw new BuildManagerException( "No build queues configured." );
}
- int size = 0;
- int idx = 0;
- int allowedBuilds = configurationService.getNumberOfBuildsInParallel();
+ // TODO: deng - flat multi-modules
+ // - check whether the requested queue is a checkout queue or a build queue
+ // * proceed with the succeeding steps only when requested queue is a build queue
+ // - check if project is checked out in a single directory and if true:
+ // * get the build queue where a project with a common scm root is queued
+ // * queue the project there
- try
+ if( project != null && project.isCheckedOutInSingleDirectory() && typeOfQueue == BUILD_QUEUE )
{
- int count = 1;
- for ( BuildQueue buildQueue : buildQueues )
- {
- if ( count <= allowedBuilds )
- {
- OverallBuildQueue overallBuildQueue = overallBuildQueues.get( buildQueue.getId() );
- if ( overallBuildQueue != null )
- {
- TaskQueue taskQueue = null;
- if ( typeOfQueue == BUILD_QUEUE )
- {
- taskQueue = overallBuildQueue.getBuildQueue();
- }
- else if ( typeOfQueue == CHECKOUT_QUEUE )
- {
- taskQueue = overallBuildQueue.getCheckoutQueue();
- }
-
- if ( idx == 0 )
- {
- size = taskQueue.getQueueSnapshot().size();
- whereToBeQueued = overallBuildQueue;
- }
-
- if ( taskQueue.getQueueSnapshot().size() < size )
- {
- whereToBeQueued = overallBuildQueue;
- size = taskQueue.getQueueSnapshot().size();
- }
-
- idx++;
- }
- else
- {
- log.error( "Build queue not found." );
- }
- count++;
- }
- else
- {
- break;
- }
- }
+
}
- catch ( TaskQueueException e )
+ else
{
- throw new BuildManagerException( "Error occurred while retrieving task quueue: " + e.getMessage() );
+ whereToBeQueued = getOverallBuildQueue( typeOfQueue, buildQueues );
}
}
@@ -1192,6 +1165,67 @@
return whereToBeQueued;
}
+ private OverallBuildQueue getOverallBuildQueue( int typeOfQueue, List<BuildQueue> buildQueues )
+ throws BuildManagerException
+ {
+ OverallBuildQueue whereToBeQueued = null;
+
+ try
+ {
+ int size = 0;
+ int idx = 0;
+ int allowedBuilds = configurationService.getNumberOfBuildsInParallel();
+ int count = 1;
+ for ( BuildQueue buildQueue : buildQueues )
+ {
+ if ( count <= allowedBuilds )
+ {
+ OverallBuildQueue overallBuildQueue = overallBuildQueues.get( buildQueue.getId() );
+ if ( overallBuildQueue != null )
+ {
+ TaskQueue taskQueue = null;
+ if ( typeOfQueue == BUILD_QUEUE )
+ {
+ taskQueue = overallBuildQueue.getBuildQueue();
+ }
+ else if ( typeOfQueue == CHECKOUT_QUEUE )
+ {
+ taskQueue = overallBuildQueue.getCheckoutQueue();
+ }
+
+ if ( idx == 0 )
+ {
+ size = taskQueue.getQueueSnapshot().size();
+ whereToBeQueued = overallBuildQueue;
+ }
+
+ if ( taskQueue.getQueueSnapshot().size() < size )
+ {
+ whereToBeQueued = overallBuildQueue;
+ size = taskQueue.getQueueSnapshot().size();
+ }
+
+ idx++;
+ }
+ else
+ {
+ log.error( "Build queue not found." );
+ }
+ count++;
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+ catch ( TaskQueueException e )
+ {
+ throw new BuildManagerException( "Error occurred while retrieving task quueue: " + e.getMessage() );
+ }
+ return whereToBeQueued;
+ }
+
public void contextualize( Context context )
throws ContextException
{
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=771527&r1=771526&r2=771527&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 Tue May 5 02:53:46 2009
@@ -1636,7 +1636,7 @@
projectsWithSimilarScmRoot.add( projectWithSimilarScmRoot );
}
- context.put( AbstractContinuumAction.KEY_PROJECTS_IN_GROUP_WITH_SIMILAR_SCM_ROOT, projectsWithSimilarScmRoot );
+ context.put( AbstractContinuumAction.KEY_PROJECTS_IN_GROUP_WITH_COMMON_SCM_ROOT, projectsWithSimilarScmRoot );
}
addProjectToCheckoutQueue( projectBuilderId, buildDefinitionTemplateId, context, projectGroupCreation,
@@ -3357,22 +3357,29 @@
// TODO: deng - do we still need a projects and build definitions map?
// consider migrated multi-module projects which were checked out in separate directories!
// how would they be affected by these changes?
- Set<Integer> keys = projectsAndBuildDefinitionsMap.keySet();
- if( keys != null && !keys.isEmpty() )
- {
- for( Integer key : keys )
- {
- if( key.intValue() > projectId )
+ if( project.isCheckedOutInSingleDirectory() )
+ {
+ Set<Integer> keys = projectsAndBuildDefinitionsMap.keySet();
+ if( keys != null && !keys.isEmpty() )
+ {
+ for( Integer key : keys )
{
- projectsAndBuildDefinitionsMap.put( projectId, buildDefId );
- map.put( scmRoot, projectsAndBuildDefinitionsMap );
- }
- }
+ if( key.intValue() > projectId )
+ {
+ projectsAndBuildDefinitionsMap.put( projectId, buildDefId );
+ map.put( scmRoot, projectsAndBuildDefinitionsMap );
+ }
+ }
+ }
+ else
+ {
+ projectsAndBuildDefinitionsMap.put( projectId, buildDefId );
+ map.put( scmRoot, projectsAndBuildDefinitionsMap );
+ }
}
else
{
- projectsAndBuildDefinitionsMap.put( projectId, buildDefId );
-
+ projectsAndBuildDefinitionsMap.put( projectId, buildDefId );
map.put( scmRoot, projectsAndBuildDefinitionsMap );
}
}
@@ -3417,28 +3424,31 @@
// are now checked out in a single directory so once they are built
// consider migrated multi-module projects which were checked out in separate directories!
// how would they be affected by these changes?
- Set<Integer> keys = projectsAndBuildDefinitionsMap.keySet();
- if( keys != null && !keys.isEmpty() )
- {
- for( Integer key : keys )
- {
- if( key.intValue() > projectId )
+ if( project.isCheckedOutInSingleDirectory() )
+ {
+ Set<Integer> keys = projectsAndBuildDefinitionsMap.keySet();
+ if( keys != null && !keys.isEmpty() )
+ {
+ for( Integer key : keys )
{
- projectsAndBuildDefinitionsMap.put( projectId, buildDefinitionId );
- map.put( scmRoot, projectsAndBuildDefinitionsMap );
- }
- }
+ if( key.intValue() > projectId )
+ {
+ projectsAndBuildDefinitionsMap.put( projectId, buildDefinitionId );
+ map.put( scmRoot, projectsAndBuildDefinitionsMap );
+ }
+ }
+ }
+ else
+ {
+ projectsAndBuildDefinitionsMap.put( projectId, buildDefinitionId );
+ map.put( scmRoot, projectsAndBuildDefinitionsMap );
+ }
}
else
{
- projectsAndBuildDefinitionsMap.put( projectId, buildDefinitionId );
-
+ projectsAndBuildDefinitionsMap.put( projectId, buildDefinitionId );
map.put( scmRoot, projectsAndBuildDefinitionsMap );
}
-
- /*projectsAndBuildDefinitionsMap.put( projectId, buildDefinitionId );
-
- map.put( scmRoot, projectsAndBuildDefinitionsMap );*/
}
catch ( BuildManagerException e )
{
@@ -3464,10 +3474,6 @@
throws ContinuumException
{
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
{
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=771527&r1=771526&r2=771527&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 Tue May 5 02:53:46 2009
@@ -102,7 +102,7 @@
public static final String KEY_URL = "url";
- public static final String KEY_PROJECTS_IN_GROUP_WITH_SIMILAR_SCM_ROOT = "projects-in-group-with-similar-scm-root";
+ public static final String KEY_PROJECTS_IN_GROUP_WITH_COMMON_SCM_ROOT = "projects-in-group-with-common-scm-root";
// ----------------------------------------------------------------------
//
@@ -234,9 +234,9 @@
return (Map<Integer, ScmResult>) getObject( context, KEY_SCM_RESULT_MAP );
}
- public static List<Project> getListOfProjectsInGroupWithSimilarScmRoot( Map<String, Object> context )
+ public static List<Project> getListOfProjectsInGroupWithCommonScmRoot( Map<String, Object> context )
{
- return (List<Project>) getObject( context, KEY_PROJECTS_IN_GROUP_WITH_SIMILAR_SCM_ROOT, new ArrayList<Integer>() );
+ return (List<Project>) getObject( context, KEY_PROJECTS_IN_GROUP_WITH_COMMON_SCM_ROOT, new ArrayList<Integer>() );
}
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=771527&r1=771526&r2=771527&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 Tue May 5 02:53:46 2009
@@ -67,6 +67,6 @@
parallelBuildsManager.checkoutProject( project.getId(), project.getName(),
workingDirectoryService.getWorkingDirectory( project ),
scmRootUrl, project.getScmUsername(),
- project.getScmPassword(), defaultBuildDefinition, getListOfProjectsInGroupWithSimilarScmRoot( context ) );
+ project.getScmPassword(), defaultBuildDefinition, getListOfProjectsInGroupWithCommonScmRoot( context ) );
}
}
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckWorkingDirectoryAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckWorkingDirectoryAction.java?rev=771527&r1=771526&r2=771527&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckWorkingDirectoryAction.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckWorkingDirectoryAction.java Tue May 5 02:53:46 2009
@@ -51,10 +51,9 @@
throws Exception
{
Project project = projectDao.getProject( getProjectId( context ) );
- List<Project> projectsWithSimilarScmRoot = getListOfProjectsInGroupWithSimilarScmRoot( context );
+ List<Project> projectsWithSimilarScmRoot = getListOfProjectsInGroupWithCommonScmRoot( context );
ProjectScmRoot projectScmRoot = getProjectScmRoot( context );
-
- // File workingDirectory = workingDirectoryService.getWorkingDirectory( project );
+
File workingDirectory =
workingDirectoryService.getWorkingDirectory( project, projectScmRoot.getScmRootAddress(),
projectsWithSimilarScmRoot );
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=771527&r1=771526&r2=771527&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 Tue May 5 02:53:46 2009
@@ -93,7 +93,7 @@
ScmResult result;
- List<Project> projectsWithSimilarScmRoot = getListOfProjectsInGroupWithSimilarScmRoot( context );
+ List<Project> projectsWithSimilarScmRoot = getListOfProjectsInGroupWithCommonScmRoot( context );
try
{
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java?rev=771527&r1=771526&r2=771527&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java Tue May 5 02:53:46 2009
@@ -53,11 +53,13 @@
throws Exception
{
Project project = projectDao.getProject( getProjectId( context ) );
- List<Project> projectsWithSimilarScmRoot = getListOfProjectsInGroupWithSimilarScmRoot( context );
+ List<Project> projectsWithCommonScmRoot = getListOfProjectsInGroupWithCommonScmRoot( context );
ProjectScmRoot projectScmRoot = getProjectScmRoot( context );
//File workingDirectory = workingDirectoryService.getWorkingDirectory( project );
- File workingDirectory = workingDirectoryService.getWorkingDirectory( project, projectScmRoot.getScmRootAddress(), projectsWithSimilarScmRoot );
+ File workingDirectory =
+ workingDirectoryService.getWorkingDirectory( project, projectScmRoot.getScmRootAddress(),
+ projectsWithCommonScmRoot );
if ( workingDirectory.exists() )
{
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java?rev=771527&r1=771526&r2=771527&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java Tue May 5 02:53:46 2009
@@ -112,7 +112,7 @@
{
notifier.checkoutStarted( project, buildDefinition );
- List<Project> projectsWithSimilarScmRoot = getListOfProjectsInGroupWithSimilarScmRoot( context );
+ List<Project> projectsWithSimilarScmRoot = getListOfProjectsInGroupWithCommonScmRoot( context );
ProjectScmRoot projectScmRoot = getProjectScmRoot( context );
// TODO: not sure why this is different to the context, but it all needs to change
@@ -204,7 +204,8 @@
private ContinuumScmConfiguration createScmConfiguration( Project project, File workingDirectory, String scmRootUrl )
{
ContinuumScmConfiguration config = new ContinuumScmConfiguration();
- if( scmRootUrl != null && !"".equals( scmRootUrl ) )
+
+ if( project.isCheckedOutInSingleDirectory() && scmRootUrl!= null && !"".equals( scmRootUrl ) )
{
config.setUrl( scmRootUrl );
}
@@ -212,6 +213,7 @@
{
config.setUrl( project.getScmUrl() );
}
+
config.setUsername( project.getScmUsername() );
config.setPassword( project.getScmPassword() );
config.setUseCredentialsCache( project.isScmUseCache() );
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=771527&r1=771526&r2=771527&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 Tue May 5 02:53:46 2009
@@ -254,6 +254,8 @@
}
}
+ continuumProject.setCheckedOutInSingleDirectory( checkoutInSingleDirectory );
+
builderHelper.mapMavenProjectToContinuumProject( result, mavenProject, continuumProject, groupPom );
if ( result.hasErrors() )
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=771527&r1=771526&r2=771527&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 Tue May 5 02:53:46 2009
@@ -95,7 +95,7 @@
context.put( AbstractContinuumAction.KEY_PROJECT_SCM_ROOT, task.getScmRootUrl() );
- context.put( AbstractContinuumAction.KEY_PROJECTS_IN_GROUP_WITH_SIMILAR_SCM_ROOT, task.getProjectsWithSimilarScmRoot() );
+ context.put( AbstractContinuumAction.KEY_PROJECTS_IN_GROUP_WITH_COMMON_SCM_ROOT, task.getProjectsWithSimilarScmRoot() );
try
{
Modified: continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java?rev=771527&r1=771526&r2=771527&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java Tue May 5 02:53:46 2009
@@ -213,19 +213,20 @@
context.put( AbstractContinuumAction.KEY_BUILD_DEFINITION,
buildDefinitionDao.getBuildDefinition( buildDefinitionId ) );
- //TODO: deng - put all projects in group with the same scm root in the context!
- // this, together with the project scm root, will be used to determine the working dir
- List<Project> projectsInGroup =
- projectGroupDao.getProjectGroupWithProjects( projectGroup.getId() ).getProjects();
- List<Project> projectsWithCommonScmRoot = new ArrayList<Project>();
- for( Project projectInGroup : projectsInGroup )
+ if( project.isCheckedOutInSingleDirectory() )
{
- if( projectInGroup.getScmUrl().contains( projectScmRootAddress ) )
+ List<Project> projectsInGroup =
+ projectGroupDao.getProjectGroupWithProjects( projectGroup.getId() ).getProjects();
+ List<Project> projectsWithCommonScmRoot = new ArrayList<Project>();
+ for( Project projectInGroup : projectsInGroup )
{
- projectsWithCommonScmRoot.add( projectInGroup );
- }
- }
- context.put( AbstractContinuumAction.KEY_PROJECTS_IN_GROUP_WITH_SIMILAR_SCM_ROOT, projectsWithCommonScmRoot );
+ if( projectInGroup.getScmUrl().contains( projectScmRootAddress ) )
+ {
+ projectsWithCommonScmRoot.add( projectInGroup );
+ }
+ }
+ context.put( AbstractContinuumAction.KEY_PROJECTS_IN_GROUP_WITH_COMMON_SCM_ROOT, projectsWithCommonScmRoot );
+ }
BuildResult oldBuildResult =
buildResultDao.getLatestBuildResultForBuildDefinition( projectId, buildDefinitionId );
@@ -293,7 +294,6 @@
// check state of scm root
return projectScmRoot.getState() != ContinuumProjectState.ERROR;
-
}
private void startPrepareBuild( Map<String, Object> context )
@@ -536,7 +536,7 @@
for ( Project project : projectList )
{
int buildDefinitionId;
-
+
if ( projectsAndBuildDefinitionsMap.get( project.getId() ) != null )
{
buildDefinitionId = projectsAndBuildDefinitionsMap.get( project.getId() );
@@ -573,7 +573,7 @@
log.error( e.getMessage(), e );
throw new TaskExecutionException( "Error executing action 'build-project'", e );
}
- }
+ }
}
try
Modified: continuum/branches/continuum-flat-multi-module/continuum-model/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-model/pom.xml?rev=771527&r1=771526&r2=771527&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-model/pom.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-model/pom.xml Tue May 5 02:53:46 2009
@@ -63,7 +63,7 @@
</execution>
</executions>
<configuration>
- <version>1.3.3</version>
+ <version>1.4.0</version>
<packageWithVersion>false</packageWithVersion>
<model>src/main/mdo/continuum.xml</model>
</configuration>
Modified: continuum/branches/continuum-flat-multi-module/continuum-model/src/main/mdo/continuum.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-model/src/main/mdo/continuum.xml?rev=771527&r1=771526&r2=771527&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-model/src/main/mdo/continuum.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-model/src/main/mdo/continuum.xml Tue May 5 02:53:46 2009
@@ -317,6 +317,12 @@
<version>1.1.0+</version>
<type>String</type>
</field>
+ <field>
+ <name>checkedOutInSingleDirectory</name>
+ <version>1.4.0+</version>
+ <type>boolean</type>
+ <defaultValue>false</defaultValue>
+ </field>
<field jpox.mapped-by="project" jpox.fetch-groups="project-with-builds">
<name>buildResults</name>
<version>1.0.9+</version>
Modified: continuum/branches/continuum-flat-multi-module/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java?rev=771527&r1=771526&r2=771527&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java Tue May 5 02:53:46 2009
@@ -106,6 +106,12 @@
}
}
+ // force set checkoutInCingleDirectory to false if adding the project as non-recursive
+ if( this.isNonRecursiveProject() )
+ {
+ this.setCheckoutInSingleDirectory( false );
+ }
+
if ( result == null )
{
result = getContinuum().addMavenTwoProject( pomUrl, selectedProjectGroup, checkProtocol, scmUseCache,