#: Fabrizio Giustina changed the world a bit at a time by saying on 9/24/2005
2:51 PM :#
... that means: let's start the separation of modules we discussed time ago.
I would like to start refactoring the project layout in svn in order
to separate the webapp from the core and the admin interface.
While breaking those modules we will probably need to fix a few
"forbidden" dependencies (for example: the core should never depend
from classes in the gui o admin interface packages), but at the end
this could lead to a better reusability and clearer structure.
The proposal is to start separating a few modules and to go on incrementally.
The first step will be moving all the content of
/magnolia/trunk
to
/magnolia/trunk/magnolia (will become the "webapp" module)
then, the 2nd step, moving all the classes from
/magnolia/trunk/magnolia
to
/magnolia/trunk/magnolia-core (will become the core module... this in
future will only hosts the main packages, not related to gui or admin
interface)
at this point I will setup a working multiproject build, both with a
maven1 and a m2 descriptors: m1 and m2 builds can coexist on the same
project and I would really like to move on to m2 totally in future. At
the moment, anyway, while m2 is far better for multiproject builds,
the reporting/site stuff is still quite limited so we will probably
continue to use m1 for that for a while.
Magnolia developers that are using an eclipse/WTP environment should
feel at home with this layout: you only will need to run "maven
eclipse" (or "m2 eclipse:eclipse") on any of the modules and import
all of them in eclipse. Modules dependencies are managed by wtp, so
you will be able to run the magnolia webapp just like before.
Unfortunately, I have no enough experience in IDEA to tell you how
projects should be configured to achieve a similar result... don't
know if the maven idea plugin will do the same job as the eclipse one.
After this step, additional modules will not be a problem: the easier
ones to separate will be the taglibs and (I hope) the gui and admin
interface stuff.
While doing this, I will stop the nightly builds generation and the sf
site update: we surely will need to fix the site layout, which will
become a bit harder to maintain with multiple modules. Maybe we could
move nightly builds to the 2.1 branch, if that sounds useful...
if there are no objections I will start the refactoring in a couple of days
fabrizio
Sorry to enter this in-house discussion but I would like to say that:
1/ having to manage multiple projects is usually a harder job
2/ separating packages is indeed a very good refactoring step
3/ everything that is actually in magnolia can be organized into the same project with the same
sourcebase or at most some separate contrib where some of 'modules' to reside.
This is because I cannot see a Magnolia distribution based on separate modules for the moment (but
here I may be completely wrong).
sorry again for entering this proposal,
my .02 ec,
./alex
--
.the_mindstorm.
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------