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.

Cheers,
Brett

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/

Reply via email to