On Jun 13, 2008, at 12:55 PM, Lilianne E. Blaze wrote:
Hello,
Vincent Massol wrote:
On Jun 13, 2008, at 11:17 AM, Lilianne E. Blaze
wrote:
Hello,
Vincent Massol wrote:
> 2) It needed mailsender plugin moved from
plugins module to core
> module
> to avoid circulars and other nasties.
We need to find a solution for this since we'd like to keep the
modules separate. This is actually our current effort: modularize
XWiki and move everything to components.
One solution for now could be to set a dependency on the last
released
version of core with a provided scope.
I'm not sure I get it. MailSender
depending on Core isn't the
problem.
The problem is Core depending on MailSender to get the glue code in
XWiki.sendMessage working.
xwiki-core SNAPSHOT --> mailsender plugin SNAPSHOT version
mailsender --> xwiki-core LATEST (i.e. 1.5M1 or 1.4.1)
Make Core snapshot depend on Mailsender snapshot and Mailsender
snapshot
depend on Core latest? Isn't that... unhealthy?
I'm not sure my solution works with maven. It
might still create a
circular dep but it's worth verifying it.
I'm not sure either if it's possible, I only recently started using
Maven.
But even if it is possible, it _will_ create a circular, and with
different versions it's even more nasty. Having to build a previous
version to build current version? It sounds more hackish than Windows'
leaked alpha version. It should be possible to just check out the
current version source and then build it on- or offline.
Yes but all this is interim while we're breaking the monolithic xwiki-
core module. Right now the pb is that the XWikiContext and XWiki
objects are mammoth objects that references everything else and thus
the XWiki Model cannot be easily moved in its own build module.
I haven't looked at the sendmail plugin so I don't know really the
extent to which it depends on core apart from the need for the plugin
API. I think I remember it has an api for using a document as a mail
template. So the best solution is to create an interface for all the
plugin needs on core and implement that interface in the core. That's
what I did for the new rendering module.
Thanks
-Vincent