On Aug 22, 2011, at 4:26 PM, Sergiu Dumitriu wrote:

> On 08/22/2011 10:18 AM, Vincent Massol wrote:
>> 
>> On Aug 22, 2011, at 4:06 PM, Sergiu Dumitriu wrote:
>> 
>>> On 08/22/2011 04:43 AM, Vincent Massol wrote:
>>>> Hi devs,
>>>> 
>>>> I'd like to propose adding the Ivy JAR to our Platform/XE distributions.
>>>> 
>>>> The reason is simple: it makes it possible to use the Groovy @Grab 
>>>> directive which makes it real easy to extend XWiki using Groovy script.
>>>> Several advantages:
>>>> - not having to manually hunt for transitive dependencies
>>>> - not needing to stop/restart XWiki (since this is what you need to do if 
>>>> your groovy script needs to use some third party jars).
>>>> 
>>>> Here's a good usage example:
>>> 
>>> -0.
>>> 
>>> It is a very cool feature, but I don't think it's something useful for a
>>> majority of users. It's something very useful in a development wiki like
>>> we have on xwiki.org, but it adds almost 1M extra size, and increases
>>> the classpath and the permgen requirements.
>>> 
>>> I think the extension manager would make it easy to install Ivy when needed.
>> 
>> With this reasoning we should remove groovy too (the macro) since the 
>> majority of users don't need it. IMO they go together and we should leave 
>> them together.
>> 
>> So for me either we consider that for now we bundle the groovy macro and we 
>> add the ivy dep or we remove the groovy macro by default.
>> 
>> Said differently I'd like to add the ivy dependency in the groovy macro's 
>> pom.xml.
>> 
>> Another way of viewing this is that groovy-all.jar should have a dep on ivy 
>> by default (I don't know why it doesn't and it may well add it in the future 
>> - I'll ask Guillaume).
> 
> Yes, it should. I'm interested in Guillaume's motivation as well.

I've just checked and ivy dep is in the groovy-all pom.xml file but as an 
optional dep:

<!-- Used for @Grab and Grapes -->
<dependency>
<groupId>org.apache.ivy</groupId>
<artifactId>ivy</artifactId>
<version>2.2.0</version>
<scope>compile</scope>
<optional>true</optional>

ahah… that's funny and ironic. It used to be there but thanks to Thomas 
Mortagne it's no longer! :)

See 
http://groovy.329449.n5.nabble.com/Ivy-dependency-in-groovy-all-maven-project-td390044.html
And http://jira.codehaus.org/browse/GROOVY-3241

:)

-Vincent

>> Thanks
>> -Vincent
>> 
>>>> {{cache}}
>>>> {{groovy}}
>>>> @Grab(group='org.codehaus.groovy.modules.http-builder', 
>>>> module='http-builder', version='0.5.1')
>>>> import groovyx.net.http.RESTClient
>>>> 
>>>> github = new RESTClient( 'http://github.com/api/v2/json/' )
>>>> 
>>>> println "|=Project|=Description|=Use Wiki?|=Use Issues?"
>>>> def response = github.get( path : 'repos/show/xwiki' )
>>>> response.data.repositories.each() { repo ->
>>>>     println 
>>>> "|[[${repo.name}>>http://github.com/xwiki/${repo.name}]]|${repo.description}|${repo.has_wiki}|${repo.has_issues}"
>>>> }
>>>> {{/groovy}}
>>>> {{/cache}}
>>>> 
>>>> If you try to do this without the grab directive you'll find yourself 
>>>> hunting down more than 30 jars which you'll need to put in your 
>>>> WEB-INF/lib directory, whereas here it's a single line directive. It's 
>>>> really powerful.
>>>> 
>>>> Here's my +1 to make it easy for users to use Groovy scripts.
>>>> 
>>>> Thanks
>>>> -Vincent
> 
> 
> -- 
> Sergiu Dumitriu
> http://purl.org/net/sergiu/
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to