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 Thu, 08 Oct 2015 01:35:47 GMT
 
Can someone give me an update getting Thibault's fix (patch) to my problem into a release?
Last Thibault explained to me (in a private email) was that he had implemented the fix (before
I discovered the problem) but was waiting for someone with more expertise in class loaders
to merge his changes into the main stream.
ThanksSiegfried 

     On Monday, September 7, 2015 2:50 PM, Pascal Schumacher <pascalschumacher@gmx.net>
wrote:
   

  Hi Richard,
 
 you can download groovy snapshots from https://oss.jfrog.org/oss-snapshot-local/org/codehaus/groovy/
 
 -Pascal
 
 Am 07.09.2015 um 23:43 schrieb Richard Heintze:
  
  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? Thanks siegfried 
 
 
       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