groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Heintze <sieg_hein...@yahoo.com>
Subject Re: Wanted: Help converting groovy script to "groovy -e"
Date Mon, 07 Sep 2015 21:43:39 GMT
Thibault:Can you help me reproduce your environment? (1) I cannot find groovy 2.5.0-Snapshot
on http://groovy-lang.org/download.html#distro .  Do I need 2.5.0-Snapshot or will 2.4.4
do? Can I download 2.5.0 without having to build it myself? Is it difficult to build on windows?
Where do I download it from?(2) I'm confused about that link: it just takes me to the mailing
list page. Can you give a link to the patch?Thankssiegfried 


     On Saturday, September 5, 2015 10:41 AM, Thibault Kruse <tibokruse@googlemail.com>
wrote:
   

 Actually, sorry, this was using Groovy 2.5.0-SNAPSHOT from master.
With my patch to Grape classloading.
http://groovy.329449.n5.nabble.com/groovysh-import-completion-for-Grape-loaded-classes-td5727025.html

With 2.4.x, I get Caught: java.sql.SQLException: No suitable driver
found for jdbc:h2:mem:test_mem

So I guess my patch for grapes does the same as you do.

On Sat, Sep 5, 2015 at 7:12 PM, Richard Heintze <sieg_heintze@yahoo.com> wrote:
> Well shucks! I just cut and pasted your code to windows/Cygwin and then to
> Ubuntu. I got the exact same results on both machines!
>
>  What version and which Linux are you using? What version of groovy?
>
> Can anyone else detect what I am doing wrong?
>
>
> groovy -e "import groovy.xml.MarkupBuilder;
> import groovy.sql.Sql
> groovy.grape.Grape.grab(group:'com.h2database', module:'h2',
> version:'1.4.188')
> def sql = Sql.newInstance('jdbc:h2:mem:test_mem', 'sa', '',
> 'org.h2.Driver');
> println(sql)
> "
> Caught: java.lang.ClassNotFoundException: org.h2.Driver
> java.lang.ClassNotFoundException: org.h2.Driver
>  at script_from_command_line.run(script_from_command_line:4)
>
> Process compilation exited abnormally with code 1
>
>
>
> On Saturday, September 5, 2015 2:07 AM, Thibault Kruse
> <tibokruse@googlemail.com> wrote:
>
>
> I am not sure what the classloader business is about. I get your -e
> examplke running on Linux:
>
> $ groovy -e "import groovy.xml.MarkupBuilder;
> import groovy.sql.Sql
> groovy.grape.Grape.grab(group:'com.h2database', module:'h2',
> version:'1.4.188')
> def sql = Sql.newInstance('jdbc:h2:mem:test_mem', 'sa', '',
> 'org.h2.Driver');
> println(sql)
> "
> groovy.sql.Sql@6ba2507
>
> On Fri, Sep 4, 2015 at 6:13 PM, Richard Heintze <sieg_heintze@yahoo.com>
> wrote:
>>
>> The script below works with groovy 2.3.0-beta-2 with the groovy program. I
>> want to move the SQL code to separate text files and execute it from (1)
>> "groovy -e" (2) groovy-console and (3) groovysh.
>>
>> After looking at
>>
>> http://www.techper.net/2010/04/19/groovy-grape-adding-dependencies-to-root-classloader/
>> here is my first attempt using Cygwin on windows 8 and groovy that is not
>> working:
>>
>>
>> groovy -e "import groovy.sql.Sql
>> import groovy.xml.MarkupBuilder;
>> import groovy.sql.Sql
>>
>> def classLoader = this.getClass().getClassLoader();
>> while
>>
>> (!classLoader.getClass().getName().equals('org.codehaus.groovy.tools.RootLoader'))
>> {
>>  classLoader = classLoader.getParent()
>> }
>> groovy.grape.Grape.grab(group:'com.h2database', module:'h2',
>> version:'1.4.188')
>> def sql = Sql.newInstance('jdbc:h2:mem:test_mem', 'sa', '',
>> 'org.h2.Driver');"
>> Caught: java.lang.ClassNotFoundException: org.h2.Driver
>> java.lang.ClassNotFoundException: org.h2.Driver
>>  at script_from_command_line.run(script_from_command_line:10)
>>
>>
>> As you can see, I'm trying to convert the @GrabConfig which does not seem
>> to
>> work with "groovy -e".
>>
>>
>> Thanks
>> Siegfried
>>
>>
>>
>>
>> This works:
>>
>> import groovy.sql.Sql
>> import groovy.xml.MarkupBuilder
>> @GrabConfig(systemClassLoader=true)
>> @Grab(group='com.h2database', module='h2', version='1.4.188')
>> sqltext = ["""
>> create table gov_unit (
>>  id  integer NOT NULL,
>>  parent_id integer DEFAULT 3,
>>  name  varchar(10),
>>  type  varchar(8),
>>  constraint gov_unit_pk
>>  primary key (id),
>>  constraint gov_unit_type_chk
>>  check (type in ('County','Township','City','State')),
>>        constraint gov_unit_loop
>>                foreign key (parent_id)
>>                references gov_unit
>>  );
>> insert into gov_unit values (3,null,'Michigan','State');
>> insert into gov_unit values (2,3,'Alger','County');
>> insert into gov_unit values (1,2,'Munising','City');
>> insert into gov_unit values (4,2,'Munising','Township');
>> insert into gov_unit values (5,2,'Au Train','Township');
>> insert into gov_unit values (6,3,'Baraga','County');
>> insert into gov_unit values (7,3,'Ontonagon','County');
>> insert into gov_unit values (8,7,'Interior','Township');
>> insert into gov_unit values (9,3,'Dickinson','County');
>> insert into gov_unit values (10,3,'Gogebic','County');
>> insert into gov_unit values (11,3,'Delta','County');
>> insert into gov_unit values (12,11,'Masonville','Township');
>> ""","""
>> WITH RECURSIVE gov (depth, id, parent_id, name, type) AS(
>>    SELECT 1 AS depth, parent.* FROM gov_unit parent WHERE parent.parent_id
>> IS NULL
>>  UNION ALL
>>    SELECT parent.depth+1 AS depth, child.* FROM  gov parent, gov_unit
>> child
>> WHERE child.parent_id = parent.id
>> )
>> SELECT * FROM gov ;
>> """]
>>
>> def sql = Sql.newInstance("jdbc:h2:mem:test_mem", "sa", "",
>> "org.h2.Driver")
>> sql.execute sqltext[0]
>>
>> def xml = new groovy.xml.MarkupBuilder(new
>> FileWriter(java.io.FileDescriptor.out))
>>
>> xml.table (name:"gov_unit") {
>>  sql.rows(sqltext[1]).each{ row->
>>    xml.gov_unit (
>>    row
>>    ) }
>> }
>
>


  
Mime
View raw message