Rahul Thakur wrote:
Great to see version 2.0 discussions kicking off! Thanks for putting the
ideas on confluence, Emmanuel. :-)
Some notes around the ideas outlined on the wiki:
Moving to JSE 5 and JPA is a good idea \o/, it been fairly overdue ;-).
1-1) Can you please elaborate a bit on relationships among -
services, various types of facades and entities. A concrete example
Annotations is nice, but really isn't what is stopping Continuum from
moving ahead. Moving to standardized, mature technologies will probably
be smart in the long run as it is easier to get help and for other to
1-2) I would like to bring Guice to the mix. I think it is worth
investigating for Continuum 2.0 - WDYT?
I need a reason to drop the current set of technologies, why is the new
set better etc.
I am not hard and fast on any particular JPA provider. If Toplink cuts
it, we should go with it. I have been toying around with OpenJPA, but I
haven't used Toplink to comment on how both compare. OpenJPA is
comprehensively documented and has a good support available on mailing
lists. Having said that, JPA providers would ultimately be swap'able
under the hood.
Also, I think we should stick with JPA annotations on model entities
instead of using Modello. I hope writing the data access code from
scratch implies the current ContinuumStore will be refactored into
something which is less verbose than what we have currently, and so
would the Continuum interface.
JPA annotations is probably a good idea as you'll get IDE support etc
from the start.
3) Builders > Build definitions
Just thinking out loud here...
Does anyone else see the current Continuum model to be centered around
'Project'? What do you think about 'Build' or BuildDefinition being
central? You can add one or more Projects to a Build - we don't need
Project Groups, as all we deal with is a Build. Order and dependency can
be imposed on a Build composed of more than one project. Notifiers are
added to a Build and BuildResult(s) produced for a Build.
This is way to detailed to be on a roadmap.
4) Remote Builders
I like this idea, but not sure how the build results will be aggregated
from remote builders, but may be that is something that needs some more
This is something that definitely should be at the core of the 2.0
Is this similar to what AntHill Pro has? Are we going to have a notion
of Build lifecycle (and phases) to support this? Is this something that
can be borrowed in concept (and possibly implementation) from Maven?
Same as the previous point, +1.
6) External Access and UI improvements
I am +1 for supporting different types of mechanisms to access and
control Continuum. Web interface has been the primary interface until
now and I totally agree that it needs to be improved to give a better
user experience. I welcome the idea of using GWT for this.
GWT vs anything else again way to specific when you're talking roadmap.
Doing experiments is a good thing, I'm not trying to shoot anything down
here, but focus needs to stay on *features* and then we can try to find
a suiting set of *technologies* when/if it comes down to that.
I am keen to focus more on Reporting as well for this version. As
already outlined on the wiki, it would be nice if the reporting can be
extended via plugins or some such mechanism.
Reporting is something that definitely can be improved.
I would like to add and emphasize here on documenting the code itself as
we write it. We are not going to get down to user documentation from day
one but there will be users in the community who start consuming the
code and contributing back as soon as we starting cooking it! :-)
I would like to propose having Checkstyle to flag undocumented source
code in codebase.
More documentation is always useful, yes.
Lastly, I think it would nice to have a core Continuum install to be
lean and small with features that can be added by dropping in relevant
JARs (and minimal or no configuration). We can actually try different
options with development releases before finalizing what should go into
the main distro (if at all we break it up) - sounds reasonable?
I'm not sure what you're trying to say here. The current way to
installing Continuum (unpack, run bin/plexus.sh) is still giving me
"wow" when doing demos.
What I would like to see is talk about the different ways of doing
remoting and tool integration (IDEs in particular, but also desktop
Overall I think the core of Continuum should be re-though to be more
pluggable. In particular a workflow engine should be in the middle of
the execution to orchestrate any steps involved with building a project.
This is one of the places where people should be able to plug in their
own steps and functionality.
If someone is going down the plugin path, it is essential to me that
these plugins can be written in vi inside an existing installation and
copied around. This implies to me that we have to support a plugin
language like jython, jruby or groovy.