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 Sat, 05 Sep 2015 17:12:41 GMT
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.Driverjava.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