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

