continuum-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brett Porter <>
Subject Re: refactoring next steps (was: refactoring the SCM)
Date Tue, 06 May 2008 22:39:24 GMT

On 07/05/2008, at 6:29 AM, Emmanuel Venisse wrote:

> Hi Brett,
> Great work, I like it and I'm ok to merge it regularly to trunk.

Cool. I'll give it another day and a bit more of a spin then do that.

> I don't have idea about maps of beans.
> I think this branch is a good start to do more refactoring.
> 1- split DefaultBuildController to a controller  + a builder
> The builder should be in it's own module and doesn't use/know the  
> store, it
> checkout/update the working copy and build the project

agreed - this is one of the key objectives of the structure I brought  
up before.

> The controller get an event from the UI, the scheduler or an other  
> way and
> send and event to one or more builder (local or remote), JMS is  
> probably the
> solution

yeah, I think the first stage is just to make sure the code is  
separate enough that you could replace the implementation.

I think JMS might only be needed for the events - I like the idea of a  
RESTful request model to the separate builder.

> 2- for each steps, the builder send the new project state  
> notification, by
> JMS too and the Controller store it in memory, The project state  
> must be
> transient instead of to store it in the db like today.

By state, do you mean "building", "checking out", "svn error" (which  
are transient), or "success", "fail" (which are permanent and  
historical?). I agree on the first ones - actually Marica mentioned  
this in a previous mail and said she was going to start a new thread  
for it :)

> When the build is done, the builder send a new event with the build  
> result

Yep - we can probably send progress events too.

> I have a point that I don't know for the moment how to resolve. How to
> access to the working copy when the builder is a remote builder and  
> how to
> do when we use more than one remote builder? But we'll can find a  
> solution
> later.

well, I don't think the working copy belongs under the main interface  
at that point - you should be able to go straight to the remote server  
and access it over HTTP (we'll still need to wire in security, but  
that's needed for any RESTful interface to them too). The aggregating  
interface can probably link out to them or integrate the listing using  
javascript or something.


Brett Porter

View raw message