Manually bootstrap JRuby after all.
After discussing this with @headius I've decided to do this the manual way anyway. Apparently the basic load service stuff is deprecated and not very reliable.
This commit is contained in:
parent
90fabe3f21
commit
fe74d60138
|
@ -0,0 +1,14 @@
|
||||||
|
package org.liboga;
|
||||||
|
|
||||||
|
import org.jruby.Ruby;
|
||||||
|
|
||||||
|
public class Liboga
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Bootstraps the JRuby extension.
|
||||||
|
*/
|
||||||
|
public static void load(final Ruby runtime)
|
||||||
|
{
|
||||||
|
org.liboga.xml.Lexer.load(runtime);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,31 +0,0 @@
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import org.jruby.Ruby;
|
|
||||||
import org.jruby.RubyModule;
|
|
||||||
import org.jruby.RubyClass;
|
|
||||||
import org.jruby.runtime.load.BasicLibraryService;
|
|
||||||
import org.jruby.runtime.load.Library;
|
|
||||||
|
|
||||||
public class LibogaService implements BasicLibraryService
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Bootstraps the JRuby extension.
|
|
||||||
*
|
|
||||||
* In order to load this extension properly you have to make sure that the
|
|
||||||
* lib/ directory is in the Ruby load path. If this is the case you can
|
|
||||||
* load it as following:
|
|
||||||
*
|
|
||||||
* require 'liboga'
|
|
||||||
*
|
|
||||||
* Using absolute paths (e.g. with `require_relative`) requires you to
|
|
||||||
* manually call this method:
|
|
||||||
*
|
|
||||||
* LibogaService.new.basicLoad(JRuby.runtime)
|
|
||||||
*/
|
|
||||||
public boolean basicLoad(final Ruby runtime) throws IOException
|
|
||||||
{
|
|
||||||
org.liboga.xml.Lexer.load(runtime);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
11
lib/oga.rb
11
lib/oga.rb
|
@ -6,14 +6,11 @@ require_relative 'oga/xml/lexer'
|
||||||
require_relative 'oga/xml/parser'
|
require_relative 'oga/xml/parser'
|
||||||
require_relative 'oga/xml/pull_parser'
|
require_relative 'oga/xml/pull_parser'
|
||||||
|
|
||||||
# JRuby is dumb as a brick and can only load .jar files using require() when
|
require_relative 'liboga'
|
||||||
# ./lib is in the LOAD_PATH. require_relative, or any other form that uses
|
|
||||||
# absolute paths, does not work.
|
|
||||||
unless $:.include?(File.expand_path('../', __FILE__))
|
|
||||||
$:.unshift(File.expand_path('../', __FILE__))
|
|
||||||
end
|
|
||||||
|
|
||||||
require 'liboga'
|
if RUBY_PLATFORM == 'java'
|
||||||
|
org.liboga.Liboga.load(JRuby.runtime)
|
||||||
|
end
|
||||||
|
|
||||||
require_relative 'oga/xml/node'
|
require_relative 'oga/xml/node'
|
||||||
require_relative 'oga/xml/element'
|
require_relative 'oga/xml/element'
|
||||||
|
|
Loading…
Reference in New Issue