Sergiu Dumitriu wrote:
> 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.
>
> Not exactly, as you don't have to build a previous core. A released version
> is never built, it is
> taken from the repository. So like you depend on a released (final and
> public)
> commons-logging-1.1.1, you depend on a released (final and public)
> xwiki-core-1.4.1, which will not
> be used except when building, because it is declared as "provided", which
> means that a compatible
> version will be available where the plugin will be used. This "provided"
> scope is used to allow
> plugins to be reused with different core versions, as otherwise we would need
> to re-release each
> plugin whenever we release core.
Could you please tell me what exactly I need to change and where?
I tried making core-core depend on mailsender:
<dependency>
<groupId>com.xpn.xwiki.platform.plugins</groupId>
<artifactId>xwiki-plugin-mailsender</artifactId>
<version>1.3</version>
<scope>provided</scope>
</dependency>
Same:
The projects in the reactor contain a cyclic reference: Edge between
'Vertex{label='com.xpn.xwiki.platform.plugins:xwiki-plugin-mailsender'}'
and 'Vertex{label='com.xpn.xwiki.platform:xwiki-core'}' introduces to
cycle in the graph com.xpn.xwiki.platform:xwiki-core -->
com.xpn.xwiki.platform.plugins:xwiki-plugin-mailsender -->
com.xpn.xwiki.platform:xwiki-core
Either I'm still doing something wrong, or circulars just aren't allowed
at all no matter the versions.
My only B-plan is making it work with reflection, and trust me, it won't
be any prettier than monolithic code :/
Greetings, Lilianne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs