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

Reply via email to