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 <tibokr...@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_hein...@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 > <tibokr...@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_hein...@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 >> ) } >> } > >