continuum-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Deng Ching <och...@apache.org>
Subject Re: svn commit: r769671 [1/2] - in /continuum/branches/continuum-flat-multi-module: continuum-api/src/main/java/org/apache/continuum/buildmanager/ continuum-api/src/main/java/org/apache/continuum/taskqueue/ continuum-api/src/main/java/org/apache/mave
Date Wed, 29 Apr 2009 06:42:12 GMT
Hi Emmanuel,

It seems to work with normal multi-module projects too, so I guess we could
apply the one working directory to them. I'm still fixing up a number of
things related to the projects' scm state updates and prepare build, but
I'll try to stage a build from the branch as soon as I can before merging
this to trunk..

Thanks,
Deng

On Wed, Apr 29, 2009 at 2:18 PM, Emmanuel Venisse <
emmanuel.venisse@gmail.com> wrote:

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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message