An update on how things are going with using cTAKES from groovy. For my purposes, I switched from using grapes/@Grab annotations, to having the groovy script run against what was extracted from the ctakes convenience binary (apache-ctakes-3.1.1-bin.zip)
I have two scripts. In the first (run_cTAKES.groovy), I set a variable pointing to where cTAKES was extracted to, and another pointing to where the separately downloadable ctakesresources (UMLS dictionary + LVG database) was extracted Then I run the script. The script adds the following to the classpath dynamically using this.class.classLoader.rootLoader.addURL - almost all [1] the jars from cTAKES' lib directory - cTAKES' desc directory - cTAKES' resources directory - the directory where the separately downloadable ctakesresources was extracted Then it starts the second script (cTAKES-clinical-pipeline.groovy) with evaluate(new File('cTAKES-clinical-pipeline.groovy')); This is just FYI. I plan to share the scripts once they are in better shape. -- James [1] groovy and cTAKES do not play nice out of the box. I get the following if I include all the jars from cTAKES bin distribution Caught: javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found at org.apache.uima.util.impl.SaxDeserializer_impl.<clinit>(SaxDeserializer_impl.java:54) at org.apache.uima.util.impl.XMLParser_impl.parse(XMLParser_impl.java:174) at org.apache.uima.util.impl.XMLParser_impl.parseResourceSpecifier(XMLParser_impl.java:366) at org.apache.uima.util.impl.XMLParser_impl.parseResourceSpecifier(XMLParser_impl.java:347) at org.uimafit.factory.ResourceCreationSpecifierFactory.createResourceCreationSpecifier(ResourceCreationSpecifierFactory.java:76) at org.uimafit.factory.ResourceCreationSpecifierFactory.createResourceCreationSpecifier(ResourceCreationSpecifierFactory.java:55) at org.uimafit.factory.AnalysisEngineFactory.createAnalysisEngineDescription(AnalysisEngineFactory.java:110) at cTAKES-clinical-pipeline.run(cTAKES.groovy:74) at run_cTAKES.run(run_cTAKES.groovy:71) So for now I skip adding the x*.jar files from the cTAKES convenience binary to the classpath. -----Original Message----- From: dev-return-2311-Masanz.James=mayo....@ctakes.apache.org [mailto:dev-return-2311-Masanz.James=mayo....@ctakes.apache.org] On Behalf Of Richard Eckart de Castilho Sent: Thursday, December 12, 2013 12:00 PM To: dev@ctakes.apache.org Subject: Re: cTAKES Groovy... I tried with the small script (buh): export JAVA_OPTS="-Dgroovy.grape.report.downloads=true $JAVA_OPTS" HighFire-6:~ bluefire$ ./buh Resolving dependency: edu.mit.findstruct#findstructapi;0.0.1 {default=[default]} Preparing to download artifact edu.mit.findstruct#findstructapi;0.0.1!findstructapi.jar Downloaded 13 Kbytes in 2326ms: [SUCCESSFUL ] edu.mit.findstruct#findstructapi;0.0.1!findstructapi.jar (2311ms) Please specify input directory looks ok to me. -- Richard On 12.12.2013, at 15:54, Tim Miller <timothy.mil...@childrens.harvard.edu> wrote: > I was able to replicate the error after removing the findstruct directories > from my .groovy and .m2 repositories. > > On 12/12/2013 12:22 PM, Masanz, James J. wrote: >> Shouldn't be firewall - other grapes download fine. >> >> I created a short groovy script to just grab findstructapi - I copy/pasted >> the @grab line from from the Groovy Grape section of >> http://search.maven.org/#artifactdetails%7Cedu.mit.findstruct%7Cfindstructapi%7C0.0.1%7Cjar >> >> And I still get >> >> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup >> failed: >> General error during conversion: Error grabbing Grapes -- [download failed: >> edu.mit.findstruct#findstructapi;0.0.1!findstructapi.jar] >> >> java.lang.RuntimeException: Error grabbing Grapes -- [download failed: >> edu.mit.findstruct#findstructapi;0.0.1!findstructapi.jar] >> >> Very odd. >> >> My script is simply: >> >> #!/usr/bin/env groovy >> @Grab(group='edu.mit.findstruct', module='findstructapi', version='0.0.1') >> import java.io.File; >> >> if(args.length < 1) { >> System.out.println("Please specify input directory"); >> System.exit(1); >> } >> System.out.println("Input parm is: " + args[0]); >> System.exit(0);