Reference: Continuum 2.0 Roadmap Discussion.

Overview

This section captures a gist of ideas floated on the Continuum Developer mailing list for roadmap leading to Continuum 2.0.

From the 2.0 Roadmap discussion on the mailing list, it seems that the Continuum's architecture needs a review and possible rework. Following are the some of the items that community is keen to see:
-Replace Plexus with Spring as the underlying IoC container, as:
– it is comprehensively documented,
– provides lots of neat features that can be leveraged
– good possibility to garner more contributions from the community as there are lot users who work with Spring.
– make extending Continuum (or writing plugin/modules) a low learning-curve activity.

  • Leverage Java 5 language features.
  • Encourage more contributions by using tools/libraries that have a good user base.
  • Pluggable architecture; possibly using OSGi (Spring DM for OSGi) to support dynamic management of modules/plugins with an aim to keep Continuum lightweight and distributed.
  • Layered architecture such that middle tier(business tier?) can be used with various types facades for different presentation tiers.
  • Review and simplify Continuum and ContinuumStore interfaces into interface(s) which is/are less verbose.
  • Review and update Continuum Object Model in light of lessons learned from earlier 1.x
  • Introduce and improvise features - Remote Builders, Distributed builds, Reporting improvements, Remote access and monitoring.
  • Improve User and Developer documentation. Well documented source code.
  • More frequent release cycles leading to 1.2.... 1.x... 2.0
  • User interface and performance improvements
  • Reporting improvements
    • Integrate with Change/Issue management systems to display issues fixed or worked on in a build.

Continuum 1.2

  • Replace Plexus with Spring

Continuum 1.3

  • Replace WebWork with Struts 2
  • Transient state
  • Distributed build
  • Concurrent/Parallel build
  • Database migration tool

Continuum 1.4

List of Features and Improvements

Task JIRA Description Status Type
Architecture rework CONTINUUM-1661   Draft Improvement
Store and Data Access tier rework CONTINUUM-1662   Draft Improvement
Project Builder Features CONTINUUM-1663   Draft Features
Project Dependency management improvements CONTINUUM-1664   Draft Improvement
Distributed Builds CONTINUUM-1665, CONTINUUM-1666   Draft Feature
Configuration Handling updates CONTINUUM-1667   Draft Improvements
External Access & Monitoring CONTINUUM-1668   Draft Features
UI improvements CONTINUUM-1668   Draft Feature
Reporting & Statistics CONTINUUM-1669   Draft Feature
Documentation CONTINUUM-1670   Draft Improvement
Continuum Lifecycle CONTINUUM-1948   Draft Improvement

SCM

We support already the majority of SCM tools, but we always have few issues on them because users have a specific SCM configuration or they want to use some specific parameter for the SCM connection and command lines.
I want to allow users to manage the SCM command used to checkout/update the project, so if they don't like the actual provider, they will can use their own commands. And with this feature, all SCM not supported yet by Maven-SCM will be supported by Continuum.

Installer

To pre-configure Continuum, we have actually a first page to configure some fields, I don't think it is enough because users must have the possibility to configure more and necessary parameters like the SMTP server.
Maybe it would be good to create an installer to configure some part. I don't think at an executable installer like script or binary file but with a web UI. The user will can access to the conf part with an url like this:
http://server.name:port/continuum/install

Installation

For installation, users will can choose between few archive's installation. An all-in-one archive or archives by roles (UI, manager, builder...)