Author: oching Date: Thu May 20 07:30:43 2010 New Revision: 946548 URL: http://svn.apache.org/viewvc?rev=946548&view=rev Log: merge branch for flat multi-module projects support (CONTINUUM-1569, CONTINUUM-2193) Added: continuum/trunk/continuum-commons/src/test/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryServiceTest.java - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-commons/src/test/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryServiceTest.java continuum/trunk/continuum-core/src/test-projects/flat-multi-module/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/.cvsignore - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/.cvsignore continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/pom.xml - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/pom.xml continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/App.java - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/main/java/org/apache/continuum/module/a/App.java continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/AppTest.java - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-a/src/test/java/org/apache/continuum/module/a/AppTest.java continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/pom.xml - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/pom.xml continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/App.java - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/main/java/org/apache/continuum/module/b/App.java continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/AppTest.java - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-b/src/test/java/org/apache/continuum/module/b/AppTest.java continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/pom.xml - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/pom.xml continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/continuum/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/continuum/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/continuum/module/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/continuum/module/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/continuum/module/d/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/continuum/module/d/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/continuum/module/d/App.java - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/main/java/org/apache/continuum/module/d/App.java continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/continuum/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/continuum/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/continuum/module/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/continuum/module/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/continuum/module/d/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/continuum/module/d/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/continuum/module/d/AppTest.java - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/module-c/module-d/src/test/java/org/apache/continuum/module/d/AppTest.java continuum/trunk/continuum-core/src/test-projects/flat-multi-module/parent-project/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/parent-project/ continuum/trunk/continuum-core/src/test-projects/flat-multi-module/parent-project/pom.xml - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/flat-multi-module/parent-project/pom.xml continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/pom.xml - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/pom.xml continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/continuum/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/continuum/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/continuum/module/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/continuum/module/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/continuum/module/c/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/continuum/module/c/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/continuum/module/c/App.java - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/main/java/org/apache/continuum/module/c/App.java continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/continuum/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/continuum/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/continuum/module/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/continuum/module/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/continuum/module/b/ - copied from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/continuum/module/b/ continuum/trunk/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/continuum/module/b/AppTest.java - copied unchanged from r946538, continuum/branches/continuum-flat-multi-module-updated/continuum-core/src/test-projects/multi-module/module-C/module-D/src/test/java/org/apache/continuum/module/b/AppTest.java Modified: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutor.java continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/utils/WorkingDirectoryService.java continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java continuum/trunk/continuum-commons/pom.xml continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ChrootJailWorkingDirectoryService.java continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java continuum/trunk/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckWorkingDirectoryAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CheckoutProjectContinuumAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CleanWorkingDirectoryAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/DeployArtifactContinuumAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/ExecuteBuilderContinuumAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/StoreCheckOutScmResultAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateProjectFromWorkingDirectoryContinuumAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/AbstractBuildExecutor.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/ant/AntBuildExecutor.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/MavenOneBuildExecutor.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m2/MavenTwoBuildExecutor.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/execution/shell/ShellBuildExecutor.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilder.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilder.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java continuum/trunk/continuum-core/src/test-projects/multi-module/pom.xml continuum/trunk/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java continuum/trunk/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddMaven2ProjectTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/AddProjectTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/DefaultContinuumTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/core/action/CreateProjectsFromMetadataTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/execution/ContinuumBuildExecutorTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/AbstractContinuumProjectBuilderTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenOneContinuumProjectBuilderTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/project/builder/maven/MavenTwoContinuumProjectBuilderTest.java continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutorTest.java continuum/trunk/continuum-docs/src/site/apt/user_guides/managing_project/addProject.apt continuum/trunk/continuum-docs/src/site/apt/user_guides/release/index.apt continuum/trunk/continuum-docs/src/site/resources/images/add-m2-project.png continuum/trunk/continuum-model/src/main/mdo/continuum.xml continuum/trunk/continuum-model/src/main/resources/package-default.orm continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/phase/AbstractContinuumRunGoalsPhase.java continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/phase/RunPerformGoalsPhase.java continuum/trunk/continuum-release/src/main/java/org/apache/continuum/release/phase/RunPrepareGoalsPhase.java continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/executors/PerformReleaseTaskExecutor.java continuum/trunk/continuum-release/src/main/java/org/apache/maven/continuum/release/phase/GenerateReactorProjectsPhase.java continuum/trunk/continuum-release/src/main/resources/META-INF/plexus/components.xml continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/addMavenTwoProject.jsp continuum/trunk/pom.xml Modified: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java (original) +++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java Thu May 20 07:30:43 2010 @@ -92,13 +92,15 @@ public interface BuildsManager * @param projectId * @param projectName * @param workingDirectory + * @param scmRootUrl TODO * @param scmUsername * @param scmPassword * @param defaultBuildDefinition + * @param subProjects TODO * @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, List subProjects ) throws BuildManagerException; /** Modified: continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java (original) +++ continuum/trunk/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java Thu May 20 07:30:43 2010 @@ -20,7 +20,9 @@ package org.apache.continuum.taskqueue; */ import java.io.File; +import java.util.List; +import org.apache.maven.continuum.model.project.Project; import org.codehaus.plexus.taskqueue.Task; /** @@ -39,9 +41,13 @@ public class CheckOutTask private final String scmUserName; private final String scmPassword; - + + private final String scmRootUrl; + + private final List projectsWithCommonScmRoot; + public CheckOutTask( int projectId, File workingDirectory, String projectName, String scmUserName, - String scmPassword ) + String scmPassword, String scmRootUrl, List projectsWithCommonScmRoot ) { this.projectId = projectId; @@ -52,6 +58,10 @@ public class CheckOutTask this.scmUserName = scmUserName; this.scmPassword = scmPassword; + + this.scmRootUrl = scmRootUrl; + + this.projectsWithCommonScmRoot = projectsWithCommonScmRoot; } public int getProjectId() @@ -85,9 +95,18 @@ public class CheckOutTask return scmPassword; } - public int getHashCode() { return this.hashCode(); } + + public String getScmRootUrl() + { + return scmRootUrl; + } + + public List getProjectsWithCommonScmRoot() + { + return projectsWithCommonScmRoot; + } } Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original) +++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Thu May 20 07:30:43 2010 @@ -322,13 +322,14 @@ public interface Continuum * @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 checkoutInSingleDirectory TODO * @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/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutor.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutor.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutor.java (original) +++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutor.java Thu May 20 07:30:43 2010 @@ -27,7 +27,6 @@ import org.apache.maven.continuum.model. import java.io.File; import java.util.List; -import java.util.Map; /** * @author Trygve Laugstøl @@ -38,9 +37,9 @@ public interface ContinuumBuildExecutor String ROLE = ContinuumBuildExecutor.class.getName(); // TODO: stream the build output - ContinuumBuildExecutionResult build( Project project, BuildDefinition buildDefinition, File buildOutput ) + ContinuumBuildExecutionResult build( Project project, BuildDefinition buildDefinition, File buildOutput, List projectsWithCommonScmRoot, String projectScmRootUrl ) throws ContinuumBuildExecutorException; - + // TODO: rename to be clearer void updateProjectFromCheckOut( File workingDirectory, Project project, BuildDefinition buildDefinition, ScmResult scmResult ) @@ -55,7 +54,7 @@ public interface ContinuumBuildExecutor throws ContinuumBuildExecutorException; //TODO: Move as a plugin - void backupTestFiles( Project project, int buildId ); + void backupTestFiles( Project project, int buildId, String projectScmRootUrl, List projectsWithCommonScmRoot ); boolean shouldBuild( List changes, Project continuumProject, File workingDirectory, BuildDefinition buildDefinition ) Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java (original) +++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java Thu May 20 07:30:43 2010 @@ -35,12 +35,14 @@ public interface ContinuumProjectBuilder 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/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java (original) +++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java Thu May 20 07:30:43 2010 @@ -92,6 +92,8 @@ public class ContinuumProjectBuildingRes private final Map errors = new HashMap(); private static final String LS = System.getProperty( "line.separator" ); + + private Project rootProject; public void addProject( Project project ) { @@ -222,4 +224,14 @@ public class ContinuumProjectBuildingRes } return message.toString(); } + + public Project getRootProject() + { + return rootProject; + } + + public void setRootProject( Project rootProject ) + { + this.rootProject = rootProject; + } } Modified: continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/utils/WorkingDirectoryService.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/utils/WorkingDirectoryService.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/utils/WorkingDirectoryService.java (original) +++ continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/utils/WorkingDirectoryService.java Thu May 20 07:30:43 2010 @@ -22,6 +22,7 @@ package org.apache.maven.continuum.utils import org.apache.maven.continuum.model.project.Project; import java.io.File; +import java.util.List; /** * @author Trygve Laugstøl @@ -32,4 +33,10 @@ public interface WorkingDirectoryService String ROLE = WorkingDirectoryService.class.getName(); File getWorkingDirectory( Project project ); + + File getWorkingDirectory( Project project, boolean shouldSet ); + + File getWorkingDirectory( Project project, String projectScmRootUrl, List projects ); + + File getWorkingDirectory( Project project, String projectScmRootUrl, List projects, boolean shouldSet ); } Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java (original) +++ continuum/trunk/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java Thu May 20 07:30:43 2010 @@ -998,7 +998,9 @@ public class ContinuumBuildAgentServiceI { for ( Iterator modules = model.getModules().iterator(); modules.hasNext(); ) { - processProject( workingDirectory + "/" + modules.next().toString(), "pom.xml", autoVersionSubmodules, + String module = StringUtils.replace( modules.next().toString(), '\\', '/' ); + + processProject( workingDirectory + "/" + module, "pom.xml", autoVersionSubmodules, projects ); } } Modified: continuum/trunk/continuum-commons/pom.xml URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-commons/pom.xml?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-commons/pom.xml (original) +++ continuum/trunk/continuum-commons/pom.xml Thu May 20 07:30:43 2010 @@ -48,6 +48,10 @@ under the License. runtime + org.apache.maven.release + maven-release-manager + + javax.annotation jsr250-api @@ -67,7 +71,35 @@ under the License. org.slf4j jcl-over-slf4j runtime - + + + org.jmock + jmock-junit3 + test + + + + cglib + cglib-nodep + test + + + + org.objenesis + objenesis + test + + + org.jmock + jmock + 2.4.0 + test + + + jmock + jmock + test + org.slf4j slf4j-simple Modified: continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ChrootJailWorkingDirectoryService.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ChrootJailWorkingDirectoryService.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ChrootJailWorkingDirectoryService.java (original) +++ continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/ChrootJailWorkingDirectoryService.java Thu May 20 07:30:43 2010 @@ -20,6 +20,8 @@ package org.apache.maven.continuum.utils */ import java.io.File; +import java.util.List; + import javax.annotation.Resource; import org.apache.maven.continuum.configuration.ConfigurationService; @@ -65,10 +67,25 @@ public class ChrootJailWorkingDirectoryS public File getWorkingDirectory( Project project ) { + return getWorkingDirectory( project, true ); + } + + public File getWorkingDirectory( Project project, boolean shouldSet ) + { ProjectGroup projectGroup = project.getProjectGroup(); File f = new File( getChrootJailDirectory(), projectGroup.getGroupId() ); f = new File( f, getConfigurationService().getWorkingDirectory().getPath() ); return new File( f, Integer.toString( project.getId() ) ); } + + public File getWorkingDirectory( Project project, String projectScmRoot, List projects ) + { + return getWorkingDirectory( project, true ); + } + + public File getWorkingDirectory( Project project, String projectScmRoot, List projects, boolean shouldSet ) + { + return getWorkingDirectory( project, shouldSet ); + } } Modified: continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java (original) +++ continuum/trunk/continuum-commons/src/main/java/org/apache/maven/continuum/utils/DefaultWorkingDirectoryService.java Thu May 20 07:30:43 2010 @@ -21,9 +21,11 @@ package org.apache.maven.continuum.utils import org.apache.maven.continuum.configuration.ConfigurationService; import org.apache.maven.continuum.model.project.Project; +import org.codehaus.plexus.util.StringUtils; import org.springframework.stereotype.Service; import java.io.File; +import java.util.List; import javax.annotation.Resource; @@ -54,19 +56,94 @@ public class DefaultWorkingDirectoryServ public File getWorkingDirectory( Project project ) { + return getWorkingDirectory( project, null, null ); + } + + public File getWorkingDirectory( Project project, boolean shouldSet ) + { + return getWorkingDirectory( project, null, null, shouldSet ); + } + + /** + * + * @param project + * @param projectScmRoot + * @param projects projects under the same projectScmRoot + * @return + */ + public File getWorkingDirectory( Project project, String projectScmRoot, List projects ) + { + return getWorkingDirectory( project, projectScmRoot, projects, true ); + } + + /** + * + * @param project + * @param projectScmRoot + * @param projects projects under the same projectScmRoot + * @param shouldSet + * @return + */ + public File getWorkingDirectory( Project project, String projectScmRoot, List projects, boolean shouldSet ) + { // TODO: Enable, this is what we really want // ContinuumProjectGroup projectGroup = project.getProjectGroup(); // // return new File( projectGroup.getWorkingDirectory(), // project.getPath() ); - if ( project.getWorkingDirectory() == null ) + String workingDirectory = project.getWorkingDirectory(); + + if ( project.getWorkingDirectory() == null || "".equals( project.getWorkingDirectory() ) ) + { + if ( project.isCheckedOutInSingleDirectory() && projectScmRoot != null && !"".equals( projectScmRoot ) ) + { + Project rootProject = project; + if( projects != null ) + { + // the root project should have the lowest id since it's always added first + for( Project projectUnderScmRoot : projects ) + { + if( projectUnderScmRoot.getId() < rootProject.getId() ) + { + rootProject = projectUnderScmRoot; + } + } + } + + // determine the path + String projectScmUrl = project.getScmUrl(); + int indexDiff = StringUtils.differenceAt( projectScmUrl, projectScmRoot ); + + String pathToProject = ""; + if( indexDiff != -1 ) + { + pathToProject = projectScmUrl.substring( indexDiff ); + } + + if( pathToProject.startsWith( "\\" ) || pathToProject.startsWith( "/" ) ) + { + workingDirectory = Integer.toString( rootProject.getId() ) + pathToProject; + } + else + { + workingDirectory = Integer.toString( rootProject.getId() ) + File.separatorChar + pathToProject; + } + } + else + { + workingDirectory = Integer.toString( project.getId() ); + } + } + + if ( shouldSet ) { - project.setWorkingDirectory( Integer.toString( project.getId() ) ); + project.setWorkingDirectory( workingDirectory ); } File workDir; - File projectWorkingDirectory = new File( project.getWorkingDirectory() ); + File projectWorkingDirectory = new File( workingDirectory ); + if ( projectWorkingDirectory.isAbsolute() ) { // clean the project working directory path if it's a subdirectory of the global working directory @@ -79,15 +156,22 @@ public class DefaultWorkingDirectoryServ { pwd = pwd.substring( 1 ); } - project.setWorkingDirectory( pwd ); + + if ( shouldSet ) + { + project.setWorkingDirectory( pwd ); + } } workDir = projectWorkingDirectory; } else { - workDir = new File( getConfigurationService().getWorkingDirectory(), project.getWorkingDirectory() ); + File baseWorkingDir = getConfigurationService().getWorkingDirectory(); + + workDir = new File( baseWorkingDir, workingDirectory ); } + return workDir; } } Modified: continuum/trunk/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java Thu May 20 07:30:43 2010 @@ -403,10 +403,11 @@ public class ParallelBuildsManager } /** - * @see BuildsManager#checkoutProject(int, String, File, String, String, BuildDefinition) + * @see BuildsManager#checkoutProject(int, String, File, String, String, String, BuildDefinition, List) */ - 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, + List subProjects ) throws BuildManagerException { try @@ -426,7 +427,7 @@ public class ParallelBuildsManager 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, subProjects ); try { if ( overallBuildQueue != null ) @@ -914,7 +915,8 @@ public class ParallelBuildsManager { BuildDefinition buildDefinition = buildDefinitionDao.getDefaultBuildDefinition( task.getProjectId() ); checkoutProject( task.getProjectId(), task.getProjectName(), task.getWorkingDirectory(), - task.getScmUserName(), task.getScmPassword(), buildDefinition ); + task.getScmRootUrl(), task.getScmUserName(), task.getScmPassword(), buildDefinition, + task.getProjectsWithCommonScmRoot() ); } catch ( ContinuumStoreException e ) { Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Thu May 20 07:30:43 2010 @@ -108,6 +108,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -940,6 +941,7 @@ public class DefaultContinuum for ( Project project : projectsList ) { List buildDefIds = (List) projectsMap.get( project.getId() ); + int projectId = project.getId(); if ( buildDefIds != null && !buildDefIds.isEmpty() ) { @@ -956,7 +958,7 @@ public class DefaultContinuum projectsAndBuildDefinitionsMap = new HashMap(); } - projectsAndBuildDefinitionsMap.put( project.getId(), buildDefId ); + projectsAndBuildDefinitionsMap.put( projectId, buildDefId ); map.put( scmRoot, projectsAndBuildDefinitionsMap ); @@ -1308,7 +1310,7 @@ public class DefaultContinuum { return executeAddProjectsFromMetadataActivity( metadataUrl, MavenOneContinuumProjectBuilder.ID, projectGroupId, checkProtocol, useCredentialsCache, true, - buildDefinitionTemplateId ); + buildDefinitionTemplateId, false ); } // ---------------------------------------------------------------------- @@ -1357,7 +1359,7 @@ public class DefaultContinuum { return executeAddProjectsFromMetadataActivity( metadataUrl, MavenTwoContinuumProjectBuilder.ID, projectGroupId, checkProtocol, useCredentialsCache, true, - buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getId() ); + buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getId(), false ); } catch ( BuildDefinitionServiceException e ) { @@ -1375,7 +1377,7 @@ public class DefaultContinuum return executeAddProjectsFromMetadataActivity( metadataUrl, MavenTwoContinuumProjectBuilder.ID, projectGroupId, checkProtocol, useCredentialsCache, recursiveProjects, - buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getId() ); + buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate().getId(), false ); } catch ( BuildDefinitionServiceException e ) { @@ -1385,12 +1387,13 @@ public class DefaultContinuum 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 ); } // ---------------------------------------------------------------------- @@ -1538,7 +1541,7 @@ public class DefaultContinuum throws ContinuumException { return executeAddProjectsFromMetadataActivity( metadataUrl, projectBuilderId, projectGroupId, checkProtocol, - false, false, buildDefinitionTemplateId ); + false, false, buildDefinitionTemplateId, false ); } @@ -1549,7 +1552,8 @@ public class DefaultContinuum boolean useCredentialsCache, boolean loadRecursiveProjects, int buildDefinitionTemplateId, - boolean addAssignableRoles ) + boolean addAssignableRoles, + boolean checkoutInSingleDirectory ) throws ContinuumException { if ( checkProtocol ) @@ -1565,14 +1569,16 @@ public class DefaultContinuum Map context = new HashMap(); CreateProjectsFromMetadataAction.setProjectBuilderId( context, projectBuilderId ); - + CreateProjectsFromMetadataAction.setUrl( context, metadataUrl ); - + CreateProjectsFromMetadataAction.setLoadRecursiveProject( context, loadRecursiveProjects ); - + StoreProjectAction.setUseScmCredentialsCache( context, useCredentialsCache ); - + AbstractContinuumAction.setWorkingDirectory( context, getWorkingDirectory() ); + + CreateProjectsFromMetadataAction.setCheckoutProjectsInSingleDirectory( context, checkoutInSingleDirectory ); // CreateProjectsFromMetadataAction will check null and use default if ( buildDefinitionTemplateId > 0 ) @@ -1595,7 +1601,7 @@ public class DefaultContinuum executeAction( "create-projects-from-metadata", context ); ContinuumProjectBuildingResult result = CreateProjectsFromMetadataAction.getProjectBuildingResult( context ); - + if ( log.isInfoEnabled() ) { if ( result.getProjects() != null ) @@ -1668,7 +1674,8 @@ public class DefaultContinuum projectGroup = projectGroupDao.getProjectGroupWithBuildDetailsByProjectGroupId( projectGroupId ); - String url = CreateProjectsFromMetadataAction.getUrl( context ); + //String url = CreateProjectsFromMetadataAction.getUrl( context ); + String url = AbstractContinuumAction.getProjectScmRootUrl( context, null ); List scmRoots = getProjectScmRootByProjectGroup( projectGroup.getId() ); @@ -1737,77 +1744,36 @@ public class DefaultContinuum { projectGroupDao.updateProjectGroup( projectGroup ); - for ( Project project : projects ) + if( !checkoutInSingleDirectory ) { - context = new HashMap(); - - // CONTINUUM-1953 olamy : attached buildDefs from template here - // if no group creation - if ( !projectGroupCreation && buildDefinitionTemplateId > 0 ) + for ( Project project : projects ) { - buildDefinitionService.addTemplateInProject( buildDefinitionTemplateId, - projectDao.getProject( project.getId() ) ); + context = new HashMap(); + addProjectToCheckoutQueue( projectBuilderId, buildDefinitionTemplateId, context, + projectGroupCreation, scmUserName, scmPassword, project ); } - - AbstractContinuumAction.setUnvalidatedProject( context, project ); - // - // executeAction( "validate-project", context ); - // - // executeAction( "store-project", context ); - // - AbstractContinuumAction.setProjectId( context, project.getId() ); - - if ( !StringUtils.isEmpty( scmUserName ) ) - { - project.setScmUsername( scmUserName ); - CheckoutProjectContinuumAction.setScmUsername( context, scmUserName ); - } - if ( !StringUtils.isEmpty( scmPassword ) ) - { - project.setScmPassword( scmPassword ); - CheckoutProjectContinuumAction.setScmPassword( context, 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 - AbstractContinuumAction.setProject( context, projectDao.getProject( project.getId() ) ); - - BuildDefinition defaultBuildDefinition = null; - BuildDefinitionTemplate template = null; - if ( projectBuilderId.equals( MavenTwoContinuumProjectBuilder.ID ) ) - { - template = buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate(); - - if( template != null && template.getBuildDefinitions().size() > 0 ) - { - defaultBuildDefinition = template.getBuildDefinitions().get( 0 ); - } - } - else if ( projectBuilderId.equals( MavenOneContinuumProjectBuilder.ID ) ) - { - template = buildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate(); - - if ( template != null && template.getBuildDefinitions().size() > 0 ) + } + else + { + Project project = result.getRootProject(); + + if( project != null ) + { + String scmRootUrl = AbstractContinuumAction.getProjectScmRootUrl( context, null ); + context = new HashMap(); + + AbstractContinuumAction.setProjectScmRootUrl( context, scmRootUrl ); + + List projectsWithSimilarScmRoot = new ArrayList(); + for( Project projectWithSimilarScmRoot : projects ) { - defaultBuildDefinition = template.getBuildDefinitions().get( 0 ); + projectsWithSimilarScmRoot.add( projectWithSimilarScmRoot ); } - } - if ( defaultBuildDefinition == null ) - { - // do not throw exception - // project already added so might as well continue with the rest - log.warn( "No default build definition found in the template. Project cannot be checked out." ); - } - else - { - // used by BuildManager to determine on which build queue will the project be put - AbstractContinuumAction.setBuildDefinition( context, defaultBuildDefinition ); - - if ( !configurationService.isDistributedBuildEnabled() ) - { - executeAction( "add-project-to-checkout-queue", context ); - } + AbstractContinuumAction.setListOfProjectsInGroupWithCommonScmRoot( context, projectsWithSimilarScmRoot ); + + addProjectToCheckoutQueue( projectBuilderId, buildDefinitionTemplateId, context, projectGroupCreation, + scmUserName, scmPassword, project ); } } } @@ -1828,6 +1794,83 @@ public class DefaultContinuum } return result; } + + private void addProjectToCheckoutQueue( String projectBuilderId, int buildDefinitionTemplateId, + Map 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() ) ); + } + + AbstractContinuumAction.setUnvalidatedProject( context, project ); + // + // executeAction( "validate-project", context ); + // + // executeAction( "store-project", context ); + // + + AbstractContinuumAction.setProjectId( context, project.getId() ); + + // does the scm username & password really have to be set in the project? + if ( !StringUtils.isEmpty( scmUserName ) ) + { + project.setScmUsername( scmUserName ); + CheckoutProjectContinuumAction.setScmUsername( context, scmUserName ); + } + if ( !StringUtils.isEmpty( scmPassword ) ) + { + project.setScmPassword( scmPassword ); + CheckoutProjectContinuumAction.setScmPassword( context, 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 + AbstractContinuumAction.setProject( context, projectDao.getProject( project.getId() ) ); + + BuildDefinition defaultBuildDefinition = null; + BuildDefinitionTemplate template = null; + if ( projectBuilderId.equals( MavenTwoContinuumProjectBuilder.ID ) ) + { + template = buildDefinitionService.getDefaultMavenTwoBuildDefinitionTemplate(); + + if( template != null && template.getBuildDefinitions().size() > 0 ) + { + defaultBuildDefinition = template.getBuildDefinitions().get( 0 ); + } + } + else if ( projectBuilderId.equals( MavenOneContinuumProjectBuilder.ID ) ) + { + template = buildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate(); + + if ( template != null && template.getBuildDefinitions().size() > 0 ) + { + defaultBuildDefinition = template.getBuildDefinitions().get( 0 ); + } + } + + if ( defaultBuildDefinition == null ) + { + // do not throw exception + // project already added so might as well continue with the rest + log.warn( "No default build definition found in the template. Project cannot be checked out." ); + } + else + { + // used by BuildManager to determine on which build queue will the project be put + AbstractContinuumAction.setBuildDefinition( context, defaultBuildDefinition ); + + if ( !configurationService.isDistributedBuildEnabled() ) + { + executeAction( "add-project-to-checkout-queue", context ); + } + } + } private ContinuumProjectBuildingResult executeAddProjectsFromMetadataActivity( String metadataUrl, String projectBuilderId, @@ -1835,12 +1878,13 @@ public class DefaultContinuum 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 ); } // ---------------------------------------------------------------------- @@ -3567,16 +3611,33 @@ public class DefaultContinuum projectsList = getProjectsInBuildOrder( projectDao.getProjectsWithDependenciesByGroupId( projectGroup.getId() ) ); + + List scmRoots = getProjectScmRootByProjectGroup( projectGroup.getId() ); String url = ""; for ( Project project : projectsList ) { + boolean found = false; + if ( StringUtils.isEmpty( url ) || !project.getScmUrl().startsWith( url ) ) { - // this is a root + // this is a root project or the project is part of a flat multi module url = project.getScmUrl(); - createProjectScmRoot( projectGroup, url ); + //createProjectScmRoot( projectGroup, url ); + + for ( ProjectScmRoot scmRoot : scmRoots ) + { + if ( url.startsWith( scmRoot.getScmRootAddress() ) ) + { + found = true; + } + } + + if ( !found ) + { + createProjectScmRoot( projectGroup, url ); + } } } } @@ -3584,6 +3645,11 @@ public class DefaultContinuum private ProjectScmRoot createProjectScmRoot( ProjectGroup projectGroup, String url ) throws ContinuumException { + if ( StringUtils.isEmpty( url ) ) + { + return null; + } + try { ProjectScmRoot scmRoot = Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java Thu May 20 07:30:43 2010 @@ -27,6 +27,7 @@ import java.util.Map; import org.apache.continuum.dao.BuildDefinitionDao; import org.apache.continuum.dao.BuildResultDao; import org.apache.continuum.dao.ProjectDao; +import org.apache.continuum.dao.ProjectGroupDao; import org.apache.continuum.dao.ProjectScmRootDao; import org.apache.continuum.model.project.ProjectScmRoot; import org.apache.continuum.utils.ContinuumUtils; @@ -40,6 +41,7 @@ import org.apache.maven.continuum.model. import org.apache.maven.continuum.model.project.BuildResult; import org.apache.maven.continuum.model.project.Project; import org.apache.maven.continuum.model.project.ProjectDependency; +import org.apache.maven.continuum.model.project.ProjectGroup; import org.apache.maven.continuum.model.scm.ChangeFile; import org.apache.maven.continuum.model.scm.ChangeSet; import org.apache.maven.continuum.model.scm.ScmResult; @@ -84,6 +86,11 @@ public class DefaultBuildController /** * @plexus.requirement */ + private ProjectGroupDao projectGroupDao; + + /** + * @plexus.requirement + */ private ProjectScmRootDao projectScmRootDao; /** @@ -321,6 +328,7 @@ public class DefaultBuildController * @return * @throws TaskExecutionException */ + @SuppressWarnings( "unchecked" ) protected BuildContext initializeBuildContext( int projectId, int buildDefinitionId, BuildTrigger buildTrigger, ScmResult scmResult ) throws TaskExecutionException @@ -330,6 +338,8 @@ public class DefaultBuildController context.setStartTime( System.currentTimeMillis() ); context.setBuildTrigger( buildTrigger ); + + Map actionContext = context.getActionContext(); try { @@ -347,6 +357,37 @@ public class DefaultBuildController context.setOldBuildResult( oldBuildResult ); context.setScmResult( scmResult ); + + // CONTINUUM-2193 + ProjectGroup projectGroup = project.getProjectGroup(); + List scmRoots = projectScmRootDao.getProjectScmRootByProjectGroup( projectGroup.getId() ); + String projectScmUrl = project.getScmUrl(); + String projectScmRootAddress = ""; + + for ( ProjectScmRoot projectScmRoot : scmRoots ) + { + projectScmRootAddress = projectScmRoot.getScmRootAddress(); + if ( projectScmUrl.startsWith( projectScmRoot.getScmRootAddress() ) ) + { + AbstractContinuumAction.setProjectScmRootUrl( actionContext, projectScmRoot.getScmRootAddress() ); + break; + } + } + + if( project.isCheckedOutInSingleDirectory() ) + { + List projectsInGroup = + projectGroupDao.getProjectGroupWithProjects( projectGroup.getId() ).getProjects(); + List projectsWithCommonScmRoot = new ArrayList(); + for( Project projectInGroup : projectsInGroup ) + { + if( projectInGroup.getScmUrl().startsWith( projectScmRootAddress ) ) + { + projectsWithCommonScmRoot.add( projectInGroup ); + } + } + AbstractContinuumAction.setListOfProjectsInGroupWithCommonScmRoot( actionContext, projectsWithCommonScmRoot ); + } // CONTINUUM-1871 olamy if continuum is killed during building oldBuildResult will have a endTime 0 // this means all changes since the project has been loaded in continuum will be in memory @@ -362,7 +403,7 @@ public class DefaultBuildController throw new TaskExecutionException( "Error initializing the build context", e ); } - Map actionContext = context.getActionContext(); + // Map actionContext = context.getActionContext(); AbstractContinuumAction.setProjectId( actionContext, projectId ); @@ -518,6 +559,12 @@ public class DefaultBuildController try { ContinuumBuildExecutor executor = buildExecutorManager.getBuildExecutor( project.getExecutorId() ); + + Map actionContext = context.getActionContext(); + List projectsWithCommonScmRoot = + AbstractContinuumAction.getListOfProjectsInGroupWithCommonScmRoot( actionContext ); + String projectScmRootUrl = + AbstractContinuumAction.getProjectScmRootUrl( actionContext, project.getScmUrl() ); if ( executor == null ) { @@ -526,9 +573,11 @@ public class DefaultBuildController } else if ( context.getScmResult() != null ) { - shouldBuild = executor.shouldBuild( context.getScmResult().getChanges(), project, - workingDirectoryService.getWorkingDirectory( project ), - context.getBuildDefinition() ); + shouldBuild = + executor.shouldBuild( context.getScmResult().getChanges(), project, + workingDirectoryService.getWorkingDirectory( project, projectScmRootUrl, + projectsWithCommonScmRoot ), + context.getBuildDefinition() ); } } catch ( Exception e ) Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AbstractContinuumAction.java Thu May 20 07:30:43 2010 @@ -21,6 +21,7 @@ package org.apache.maven.continuum.core. import java.io.File; import java.util.List; +import java.util.ArrayList; import java.util.Map; import org.apache.continuum.model.project.ProjectScmRoot; @@ -43,7 +44,7 @@ public abstract class AbstractContinuumA // ---------------------------------------------------------------------- // Keys for the values that can be in the context // ---------------------------------------------------------------------- - + private static final String KEY_PROJECT_ID = "project-id"; private static final String KEY_PROJECT = "project"; @@ -67,21 +68,35 @@ public abstract class AbstractContinuumA private static final String KEY_BUILD_ID = "build-id"; private static final String KEY_WORKING_DIRECTORY = "working-directory"; - + private static final String KEY_UPDATE_DEPENDENCIES = "update-dependencies"; - private static final String KEY_BUILD_TRIGGER = "buildTrigger"; - + private static final String KEY_BUILD_TRIGGER = "buildTrigger"; + private static final String KEY_SCM_RESULT = "scmResult"; - + private static final String KEY_OLD_SCM_RESULT = "old-scmResult"; - + private static final String KEY_PROJECT_SCM_ROOT = "projectScmRoot"; + + /** + * SCM root url. Used in these actions add-project-to-checkout-queue, checkout-project, clean-working-directory, + * create-projects-from-metadata, update-project-from-working-directory, + * update-working-directory-from-scm + */ + private static final String KEY_PROJECT_SCM_ROOT_URL = "projectScmRootUrl"; + + /** + * List of projects in a project group with a common scm root url. + */ + private static final String KEY_PROJECTS_IN_GROUP_WITH_COMMON_SCM_ROOT = "projects-in-group-with-common-scm-root"; private static final String KEY_OLD_BUILD_ID = "old-buildResult-id"; private static final String KEY_SCM_RESULT_MAP = "scm-result-map"; + private static final String KEY_ROOT_DIRECTORY = "root-directory"; + // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- @@ -206,7 +221,7 @@ public abstract class AbstractContinuumA { context.put( KEY_WORKING_DIRECTORY, workingDirectory ); } - + public static List getUpdatedDependencies( Map context ) { return getUpdatedDependencies( context, null ); @@ -282,6 +297,16 @@ public abstract class AbstractContinuumA { context.put( KEY_PROJECTS, projects ); } + + public static List getListOfProjectsInGroupWithCommonScmRoot( Map context ) + { + return (List) getObject( context, KEY_PROJECTS_IN_GROUP_WITH_COMMON_SCM_ROOT, new ArrayList() ); + } + + public static void setListOfProjectsInGroupWithCommonScmRoot( Map context, List projects ) + { + context.put( KEY_PROJECTS_IN_GROUP_WITH_COMMON_SCM_ROOT, projects ); + } public static Map getProjectsBuildDefinitionsMap( Map context ) { @@ -303,17 +328,37 @@ public abstract class AbstractContinuumA { context.put( KEY_SCM_RESULT_MAP, scmResultMap ); } + + public static boolean isRootDirectory( Map context ) + { + return getBoolean( context, KEY_ROOT_DIRECTORY, true ); + } + public static void setRootDirectory( Map context, boolean isRootDirectory ) + { + context.put( KEY_ROOT_DIRECTORY, isRootDirectory ); + } + + public static String getProjectScmRootUrl( Map context, String projectScmRootUrl ) + { + return getString( context, KEY_PROJECT_SCM_ROOT_URL, projectScmRootUrl ); + } + + public static void setProjectScmRootUrl( Map context, String projectScmRootUrl ) + { + context.put( KEY_PROJECT_SCM_ROOT_URL, projectScmRootUrl ); + } + // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- - protected static String getString( Map context, String key ) + public static String getString( Map context, String key ) { return (String) getObject( context, key ); } - protected static String getString( Map context, String key, String defaultValue ) + public static String getString( Map context, String key, String defaultValue ) { return (String) getObject( context, key, defaultValue ); } Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java?rev=946548&r1=946547&r2=946548&view=diff ============================================================================== --- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java (original) +++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/AddProjectToCheckOutQueueAction.java Thu May 20 07:30:43 2010 @@ -75,9 +75,12 @@ public class AddProjectToCheckOutQueueAc scmPassword = CheckoutProjectContinuumAction.getScmPassword( context, null ); } + String scmRootUrl = getProjectScmRootUrl( context, null ); + BuildDefinition defaultBuildDefinition = getBuildDefinition( context ); parallelBuildsManager.checkoutProject( project.getId(), project.getName(), workingDirectoryService.getWorkingDirectory( project ), - scmUsername, scmPassword, defaultBuildDefinition ); + scmRootUrl, scmUsername, scmPassword, defaultBuildDefinition, + getListOfProjectsInGroupWithCommonScmRoot( context ) ); } }