Skip to content

jruby-complete.jar ignores nested gems of required jar #3443

@mkristian

Description

@mkristian

setup jars with gems

mkdir -p other/specifications
mkdir -p myjar/specifications
touch other/specifications/other.gemspec
touch myjar/specifications/some.gemspec
ls -1 other/specifications/ > other/specifications/.jrubydir
ls -1 myjar/specifications/ > myjar/specifications/.jrubydir
cd other; jar -cf ../other.jar specifications;cd -
cd myjar; jar -cf ../myjar.jar specifications;cd -

using the commandline gives

$ bin/jruby -J-cp other.jar -e "require './myjar.jar';p Dir['uri:classloader:/specifications/*'];puts; JRuby.runtime.jruby_class_loader.get_resources('specifications').each { |u| p Dir[ 'uri:' + u.to_s + '/*' ] }"
["uri:classloader:/specifications/other.gemspec", "uri:classloader:/specifications/some.gemspec"]

["uri:jar:file:/Users/cmeier/projects/active/jruby17/other.jar!/specifications/other.gemspec"]
["uri:jar:file:/Users/cmeier/projects/active/jruby17/myjar.jar!/specifications/some.gemspec"]

but with jruby-complete.jar

$ java -cp maven/jruby-complete/target/jruby-complete-1.7.23-SNAPSHOT.jar:other.jar org.jruby.Main -e "require './myjar.jar';p Dir['uri:classloader:/specifications/*'];puts; JRuby.runtime.jruby_class_loader.get_resources('specifications').each { |u| p Dir[ 'uri:' + u.to_s + '/*' ] }"
["uri:classloader:/specifications/other.gemspec"]

["uri:jar:file:/Users/cmeier/projects/active/jruby17/other.jar!/specifications/other.gemspec"]
["uri:jar:file:/Users/cmeier/projects/active/jruby17/myjar.jar!/specifications/some.gemspec"]

i.e. the resolution of "uri:classloader://specifications/*" misses out some resources from JRubyClassLoader

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions