GrabでJDBCドライバを読み込めない

Groovyのjiraにもあがっているのですが、GroovySQLを使うときにGrabでドライバを取ってこようとして

@Grab('postgresql:postgresql:8.4-701.jdbc3')
import groovy.sql.Sql

Sql.newInstance('jdbc:postgresql://localhost:5432/database',
                'user',
                'password',
                'org.postgresql.Driver'
).with {
    eachRow("select * from table", {println it})
}

とやってもjava.lang.ClassNotFoundExceptionが発生してしまいます。JDBCドライバをシステムクラスローダに探しに行ってしまって、Grabで入れたクラスは見つからないのです。
…と、このあと回避法を書いてたんですが、1.7-beta2で入ったらしい正しい対処法をコメントで教えてもらいました!

GrabConfigでシステムクラスローダに追加するようにできますよ。

@Grapes([
    @Grab('postgresql:postgresql:8.4-701.jdbc3'),
    @GrabConfig(systemClassLoader=true)
])

1.7使ってるんならこうすりゃええんですね。ふむふむ。

てわけで、以下みたいな裏ワザはいりませんでした。まぁなんかの理由で1.6以前のGroovy使わなあかん時には必要なので、一応残しときます。
てもGrabの位置が1.7仕様なのでそのままでは使えませんが…

そこで、Sql.newInstanceとする前に

this.class.classLoader.getURLs().each{
    ClassLoader.systemClassLoader.addURL(it);
}

としてやると、うまく動きます。
または、DataSourceを使ってSqlインスタンスを明示的にnewしても動きます。

@Grab('postgresql:postgresql:8.4-701.jdbc3')
import org.postgresql.ds.PGSimpleDataSource
import groovy.sql.Sql

new Sql(new PGSimpleDataSource(
        serverName: 'localhost',
        databaseName: 'database',
        user: 'user',
        password: 'password'
)).with {
    eachRow("select * from table", {println it})
}

次にはまらないためのメモ。