Groovy 1.7.10

## groovy.lang
[Java] Annotation Type GrabConfig

    java.lang.Object
      groovy.lang.GrabConfig

    @Retention(RetentionPolicy.SOURCE)
    @Target({
            ElementType.CONSTRUCTOR,
            ElementType.FIELD,
            ElementType.LOCAL_VARIABLE,
            ElementType.METHOD,
            ElementType.PARAMETER,
            ElementType.TYPE})
    public @interface GrabConfig

Use within a `@Grapes` annotation to modify grab configuration.

An example involving databases:

     @Grapes([
         @Grab('mysql:mysql-connector-java:5.1.6'),
         @GrabConfig(systemClassLoader=true)
     ])
     import groovy.sql.Sql

     def sql=Sql.newInstance("jdbc:mysql://localhost/test", "user", "password", "com.mysql.jdbc.Driver")
     println sql.firstRow('SELECT * FROM INFORMATION_SCHEMA.COLUMNS')

Another example involving XStream:

     @Grapes([
         @Grab('com.thoughtworks.xstream:xstream:1.3.1'),
         @Grab('xpp3:xpp3_min:1.1.4c'),
         @GrabConfig(systemClassLoader=true, initContextClassLoader=true)
     ])
     import com.thoughtworks.xstream.*

     class Staff {
         String firstname, lastname, position
     }

     def xstream = new XStream()
     def john1 = new Staff(firstname:'John',
                          lastname:'Connor',
                          position:'Resistance Leader')

     // write out to XML file
     new File("john.xml").withOutputStream { out ->
         xstream.toXML(john1, out)
     }

     // now read back in
     def john2
     new File("john.xml").withInputStream { ins ->
         john2 = xstream.fromXML(ins)
     }

     println john2.dump()

Method Summary

Methods inherited from class Object
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll

Copyright © 2003-2010 The Codehaus. All rights reserved.