Handle embedded DLLs in JAR/WAR in ffi_lib
------------------------------------------
Key: JRUBY-4880
URL: http://jira.codehaus.org/browse/JRUBY-4880
Project: JRuby
Issue Type: Improvement
Affects Versions: JRuby 1.5.1
Reporter: Garrett Conaty
Assignee: Thomas E Enebo
Attempting to use Nokogiri gem on windows where the gem is bundled in a JAR
file (and has a lib/ext/libxml.dll). Nokogiri doesn't know it's in a JAR file
and hence constructs a string that points inside the JAR:
if RUBY_PLATFORM =~ /java/ && java.lang.System.getProperty('os.name') =~
/windows/i
raise(RuntimeError, "Nokogiri requires JRuby 1.4.0 or later on Windows")
if JRUBY_VERSION < "1.4.0"
dll_dir = File.expand_path(File.join(File.dirname(__FILE__), "..", "..",
"..", "ext", "nokogiri"))
libs = ["libxml2.dll", "libxslt.dll", "libexslt.dll"].collect do |lib|
File.join(dll_dir, lib).tr("/","\\") # see
http://jira.codehaus.org/browse/JRUBY-2763
end + ["msvcrt"]
ffi_lib(*libs)
else
ffi_lib 'xml2', 'xslt', 'exslt'
end
I'm requesting an enhancement to ffi_lib that would detect if the path is
inside a JAR and if so
1) Extract that file to a tmp dir
2) Pass this new file to JFFI to dlopen.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email