[ 
https://issues.apache.org/jira/browse/GROOVY-9376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17029053#comment-17029053
 ] 

Eric Milles edited comment on GROOVY-9376 at 2/3/20 3:56 PM:
-------------------------------------------------------------

{{@GrabResolver}} resolvers are added by {{groovy.grape.Grape#addResolver}} 
which delegates to {{groovy.grape.GrapeIvy#addResolver}}. At the moment, extra 
resolvers end up at the end of the chain. You could use 
{{chainResolver.getResolvers().add(0, resolver)}} instead of {{add(resolver)}}.


was (Author: emilles):
{{@GrabResolver}}s are added by {{groovy.grape.Grape#addResolver}} which 
delegates to {{groovy.grape.GrapeIvy#addResolver}}.  At the moment, extra 
resolves end up at the end of the chain.  You could use 
{{chainResolver.getResolvers().add(0, resolver)}} instead of {{add(resolver)}}.

> Groovy completely ignores @GrabResolver annotation
> --------------------------------------------------
>
>                 Key: GROOVY-9376
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9376
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: Damian Szuberski
>            Priority: Major
>
> Steps to reproduce inside docker. Repository added using GrabResolver is 
> completely ignored during resolution and fetching.
>  
> Manually putting repository location into ~/.groovy/grapeConfig.xml solves 
> the problem and make the custom repository work properly. Tested on Groovy 
> 2.5.x and Groovy 3.x, both have the same issue. This example comes from 
> docker container *groovy:3.0.0-rc-3-jre8*
>  
> *root@40bc8b504667:~# rm -rf ~/.ivy* ~/.groovy**
> *root@40bc8b504667:~# cat example.groovy*
> {code:java}
> #!/usr/bin/env groovy
> @GrabResolver(name='restlet.org', root='http://maven.restlet.org')
> @Grab(group='org.restlet', module='org.restlet', version='1.1.6')
> import org.restlet.Restlet;
> {code}
> *root@40bc8b504667:~# groovy -Dgroovy.grape.report.downloads=true 
> -Divy.message.logger.level=4  example.groovy*
> {noformat}
> setting 'ivy.default.settings.dir' to 
> 'jar:[file:/opt/groovy/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings'
> setting 'ivy.basedir' to '/root/.'
> setting 'ivy.default.conf.dir' to 
> 'jar:[file:/opt/groovy/lib/ivy-2.5.0.jar!/org/apache/ivy/core/settings'
> setting 'java.runtime.name' to 'OpenJDK Runtime Environment'
> setting 'sun.boot.library.path' to '/opt/java/openjdk/lib/amd64'
> setting 'java.vm.version' to '25.232-b09'
> setting 'groovy.grape.report.downloads' to 'true'
> setting 'java.vm.vendor' to 'AdoptOpenJDK'
> setting 'java.vendor.url' to 'http://java.oracle.com/'
> setting 'path.separator' to ':'
> setting 'java.vm.name' to 'OpenJDK 64-Bit Server VM'
> setting 'file.encoding.pkg' to 'sun.io'
> setting 'user.country' to 'US'setting 'sun.java.launcher' to 'SUN_STANDARD'
> setting 'sun.os.patch.level' to 'unknown'
> setting 'program.name' to 'groovy'
> setting 'java.vm.specification.name' to 'Java Virtual Machine Specification'
> setting 'user.dir' to '/root'
> setting 'java.runtime.version' to '1.8.0_232-b09'
> setting 'java.awt.graphicsenv' to 'sun.awt.X11GraphicsEnvironment'
> setting 'java.endorsed.dirs' to '/opt/java/openjdk/lib/endorsed'
> setting 'os.arch' to 'amd64'
> setting 'java.io.tmpdir' to '/tmp'
> setting 'line.separator' to ''
> setting 'java.vm.specification.vendor' to 'Oracle Corporation'
> setting 'os.name' to 'Linux'
> setting 'tools.jar' to '/opt/java/openjdk/lib/tools.jar'
> setting 'sun.jnu.encoding' to 'UTF-8'
> setting 'script.name' to '/usr/bin/groovy'
> setting 'java.library.path' to 
> '/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib'
> setting 'java.specification.name' to 'Java Platform API Specification'
> setting 'java.class.version' to '52.0'
> setting 'sun.management.compiler' to 'HotSpot 64-Bit Tiered Compilers'
> setting 'os.version' to '5.4.0-3-amd64'
> setting 'user.home' to '/root'
> setting 'user.timezone' to ''
> setting 'java.awt.printerjob' to 'sun.print.PSPrinterJob'
> setting 'file.encoding' to 'UTF-8'
> setting 'java.specification.version' to '1.8'
> setting 'java.class.path' to '/opt/groovy/lib/groovy-3.0.0-rc-3.jar'
> setting 'user.name' to 'root'
> setting 'ivy.message.logger.level' to '4'
> setting 'java.vm.specification.version' to '1.8'
> setting 'sun.java.command' to 'org.codehaus.groovy.tools.GroovyStarter --main 
> groovy.ui.GroovyMain --conf /opt/groovy/conf/groovy-starter.conf --classpath 
> . -Dgroovy.grape.report.downloads=true -Divy.message.logger.level=4 
> example.groovy'
> setting 'java.home' to '/opt/java/openjdk'
> setting 'sun.arch.data.model' to '64'
> setting 'user.language' to 'en'
> setting 'java.specification.vendor' to 'Oracle Corporation'
> setting 'awt.toolkit' to 'sun.awt.X11.XToolkit'
> setting 'java.vm.info' to 'mixed mode'
> setting 'java.version' to '1.8.0_232'
> setting 'java.ext.dirs' to 
> '/opt/java/openjdk/lib/ext:/usr/java/packages/lib/ext'
> setting 'sun.boot.class.path' to 
> '/opt/java/openjdk/lib/resources.jar:/opt/java/openjdk/lib/rt.jar:/opt/java/openjdk/lib/sunrsasign.jar:/opt/java/openjdk/lib/jsse.jar:/opt/java/openjdk/lib/jce.jar:/opt/java/openjdk/lib/charsets.jar:/opt/java/openjdk/lib/jfr.jar:/opt/java/openjdk/classes'
> setting 'java.vendor' to 'AdoptOpenJDK'
> setting 'file.separator' to '/'
> setting 'groovy.jaxb' to 'jaxb'
> setting 'java.vendor.url.bug' to 'http://bugreport.sun.com/bugreport/'
> setting 'sun.io.unicode.encoding' to 'UnicodeLittle'
> setting 'sun.cpu.endian' to 'little'
> setting 'groovy.starter.conf' to '/opt/groovy/conf/groovy-starter.conf'
> setting 'groovy.home' to '/opt/groovy'
> setting 'sun.cpu.isalist' to ''
> setting 'user.home.url' to 'file:/root/':: loading settings :: url = 
> jar:[file:/opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape/defaultGrapeConfig.xmlsetting|file://opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape/defaultGrapeConfig.xmlsetting]
>  'ivy.settings.url' to 
> 'jar:[file:/opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape/defaultGrapeConfig.xml'setting|file://opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape/defaultGrapeConfig.xml'setting]
>  'ivy.conf.url' to 
> 'jar:[file:/opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape/defaultGrapeConfig.xml'setting|file://opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape/defaultGrapeConfig.xml'setting]
>  'ivy.settings.dir' to 
> 'jar:[file:/opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape'setting|file://opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape'setting]
>  'ivy.settings.dir.url' to 
> 'jar:[file:/opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape'setting|file://opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape'setting]
>  'ivy.conf.dir' to 
> 'jar:[file:/opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape'setting|file://opt/groovy/lib/groovy-3.0.0-rc-3.jar!/groovy/grape'setting]
>  'ivy.default.ivy.user.dir' to '/root/.ivy2'setting 'ivy.home' to 
> '/root/.ivy2'
> no default ivy user dir defined: set to /root/.ivy2
> setting 'ivy.log.modules.in.use' to 'false'
> setting 'ivy.resolver.default.check.modified' to 'false'
> setting 'ivy.default.always.check.exact.revision' to 'false'
> setting 'ivy.retrieve.pattern' to 
> '${ivy.lib.dir}/[artifact]-[revision](-[classifier]).[ext]'
> setting 'ivy.configurations' to '*'
> setting 'ivy.buildlist.ivyfilepath' to 'ivy.xml'
> setting 'ivy.status' to 'integration'
> setting 'ivy.resolve.default.type.filter' to '*'
> setting 'ivy.project.dir' to '${basedir}'
> setting 'ivy.dep.file' to 'ivy.xml'
> setting 'ivy.settings.file' to 'ivysettings.xml'
> setting 'ivy.report.output.pattern' to '[organisation]-[module]-[conf].[ext]'
> setting 'ivy.cache.ttl.default' to '10s'
> setting 'ivy.publish.src.artifacts.pattern' to 
> '${ivy.distrib.dir}/[type]s/[artifact]-[revision](-[classifier]).[ext]'
> setting 'ivy.deliver.ivy.pattern' to 
> '${ivy.distrib.dir}/[type]s/[artifact]-[revision](-[classifier]).[ext]'
> setting 'ivy.build.artifacts.dir' to '${ivy.project.dir}/build/artifacts'
> setting 'ivy.checksums' to 'sha1,md5'
> setting 'ivy.distrib.dir' to '${ivy.project.dir}/distrib'
> setting 'ivy.lib.dir' to '${ivy.project.dir}/lib'
> setting 'ivy.cache.dir' to '/root/.ivy2/cache'
> no default cache defined: set to /root/.ivy2/cachedownloadGrapes:
> no namespace defined: using systemdownloadGrapes:
> no latest strategy defined: using defaultjcenter:
> no namespace defined: using systemjcenter:
> no latest strategy defined: using defaultcachedGrapes:
> no namespace defined: using systemcachedGrapes:
> no latest strategy defined: using defaultlocalm2:
> no namespace defined: using systemlocalm2:
> no latest strategy defined: using defaultibiblio:
> no namespace defined: using systemibiblio:
> no latest strategy defined: using default'ivy.default.ivy.user.dir' already 
> set: discarding '/root/.ivy2'settings loaded (175ms)
> default cache: /root/.ivy2/
> cache default resolver: downloadGrapes
> default latest strategy: latest-revision
> default conflict manager: latest-revision
> circular dependency strategy: warn
> validate: true
> check up2date: true
> – 5 resolvers: downloadGrapes [chain] [cachedGrapes, localm2, jcenter, 
> ibiblio] return first: true dual: false -> cachedGrapes -> localm2 -> jcenter 
> -> ibiblio jcenter [ibiblio] cache: null m2compatible: true ivy patterns: 
> [https://jcenter.bintray.com/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]]
> artifact patterns: 
> [https://jcenter.bintray.com/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]]
> repository: jcenter
>   root: [https://jcenter.bintray.com/]
>   pattern: 
> [organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]
>   usepoms: true
>   useMavenMetadata: true
>   cachedGrapes [file]
>   cache: null
>   m2compatible: false
>   ivy patterns: 
> /root/.groovy/grapes/[organisation]/[module]/ivy-[revision].xml
>   artifact patterns: 
> /root/.groovy/grapes/[organisation]/[module]/[type]s/[artifact]-[revision](-[classifier]).[ext]
> repository: cachedGrapes localm2 [ibiblio]
>   cache: null
>   m2compatible: true
>   ivy patterns: 
> [file:/root//.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext|file://root//.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]]
>   artifact patterns: 
> [file:/root//.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext|file://root//.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]]
> repository: localm2
>   root: [file:/root//.m2/repository/|file://root//.m2/repository/]
>   pattern: 
> [organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]
>   usepoms: true
>   useMavenMetadata: true
>   ibiblio [ibiblio]
>   cache: null
>   m2compatible: true
>   ivy patterns: 
> [https://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]]
>   artifact patterns: 
> [https://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]]
> repository: ibiblio
>   root: [https://repo1.maven.org/maven2/]
>   pattern: 
> [organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]
>   usepoms: true
>   useMavenMetadata: true
>   module settings: NONE'ivy.cache.dir' already set: discarding 
> '/root/.groovy/grapes'
> setting 'ivy.default.configuration.m2compatible' to 'true'
> Resolving dependency: org.restlet#org.restlet;1.1.6 {default=[default]}:: 
> resolving dependencies :: caller#all-caller;working26 confs: [default] 
> validate = false refresh = false
> resolving dependencies for configuration 'default'== resolving dependencies 
> for caller#all-caller;working26 [default]loadData of 
> caller#all-caller;working26 of rootConf=default== resolving dependencies 
> caller#all-caller;working26->org.restlet#org.restlet;1.1.6 
> [default->default]loadData of org.restlet#org.restlet;1.1.6 of 
> rootConf=default using downloadGrapes to resolve 
> org.restlet#org.restlet;1.1.6downloadGrapes:
> Checking cache for: dependency: org.restlet#org.restlet;1.1.6 
> {default=[default]} no ivy file in cache for org.restlet#org.restlet;1.1.6: 
> tried /root/.groovy/grapes/org.restlet/org.restlet/ivy-1.1.6.xml no ivy file 
> in cache for org.restlet#org.restlet;1.1.6: tried 
> /root/.groovy/grapes/org.restlet/org.restlet/ivy-1.1.6.xml trying 
> /root/.groovy/grapes/org.restlet/org.restlet/ivy-1.1.6.xml tried 
> /root/.groovy/grapes/org.restlet/org.restlet/ivy-1.1.6.xml
> cachedGrapes: resource not reachable for org.restlet#org.restlet;1.1.6: 
> res=/root/.groovy/grapes/org.restlet/org.restlet/ivy-1.1.6.xml trying 
> /root/.groovy/grapes/org.restlet/org.restlet/jars/org.restlet-1.1.6.jar tried 
> /root/.groovy/grapes/org.restlet/org.restlet/jars/org.restlet-1.1.6.jar
> cachedGrapes: resource not reachable for org.restlet#org.restlet;1.1.6: 
> res=/root/.groovy/grapes/org.restlet/org.restlet/jars/org.restlet-1.1.6.jar
> cachedGrapes: no ivy file nor artifact found for org.restlet#org.restlet;1.1.6
> don't use cache for org.restlet#org.restlet;1.1.6: checkModified=true trying 
> [file:/root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.pom|file://root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.pom]
>  tried 
> [file:/root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.pom|file://root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.pom]
> localm2: resource not reachable for org/restlet#org.restlet;1.1.6: 
> res=[file:/root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.pom|file://root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.pom]
>  trying 
> [file:/root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.jar|file://root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.jar]
>  tried 
> [file:/root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.jar|file://root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.jar]
> localm2: resource not reachable for org/restlet#org.restlet;1.1.6: 
> res=[file:/root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.jar|file://root//.m2/repository/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.jar]
> localm2: no ivy file nor artifact found for org.restlet#org.restlet;1.1.6 no 
> ivy file in cache for org.restlet#org.restlet;1.1.6: tried 
> /root/.groovy/grapes/org.restlet/org.restlet/ivy-1.1.6.xml trying 
> [https://jcenter.bintray.com/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.pom]
>  tried 
> [https://jcenter.bintray.com/org/restlet/org.restlet/1.1.6/org.restlet-1.1.6.pom]
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to