With the M2 build and the flat layout in place it is much easier to
start to split our fat core into more manageable pieces, with well
defined dependencies. I'd like to start working on that.
As the dependencies must be one directed it is probably easiest to start
from the beginning in the call chain so that would mean moving the
CocoonServlet, CLI and the blocks framework to separate projects. The
flowscript implementation of flow could also be moved to a separate
project.
So we would get the following new blocks:
cocoon-servlet: servlet, servlet/multipart and environment/http.
cocoon-cli: (or maybe cocoon-bean), Main, bean, environment/commandline
cocoon-blocks-fw: blocks, BlockSource[Factory], BlockPathModule,
BlockPropertyModule.
cocoon-flowscript: components/flow/Javascript.
In a later step we could even have:
cocoon-sitemap
cocoon-pipeline (or cocoon-sax-pipeline)
There are many components that nothing else is dependent on in core that
could be factored out.
Now I'm completely aware that the above isn't that easy with the current
core as there are some quite complicated dependencies. But the goal is
to get a layered architecture, and we have to start somewhere. The idea
is to start with the top layer and work down one layer at the time and
discuss and solve dependency problems when we see them.
AFACS, this can be a smooth and evolutionary process.
WDYT?
/Daniel