module Buildr::Nailgun::Util

Public Instance Methods

add_to_sysloader(path) click to toggle source
# File addon/buildr/nailgun.rb, line 67
def add_to_sysloader(path)
  sysloader = java.lang.ClassLoader.getSystemClassLoader
  add_url_method = java.lang.Class.forName('java.net.URLClassLoader').
    getDeclaredMethod('addURL', [java.net.URL.java_class].to_java(java.lang.Class))
  add_url_method.setAccessible(true)
  add_url_method.invoke(sysloader, [java.io.File.new(path).toURI.toURL].to_java(java.net.URL))
end
ctor(on_class, *args) click to toggle source

invoke a java constructor

# File addon/buildr/nailgun.rb, line 76
def ctor(on_class, *args)
  parameters = []
  classes = []
  args.each do |obj|
    case obj
    when nil
      classes.push(nil)
      parameters.push(nil)
    when Hash
      vclass = obj.keys.first
      value = obj[vclass]
      classes.push(vclass.java_class)
      parameters.push(value)
    else
      parameters.push obj
      classes.push obj.class.java_class
    end
  end
  on_class = [on_class.java_class].to_java(java.lang.Class)[0]
  ctor = on_class.getDeclaredConstructor(classes.to_java(java.lang.Class))
  ctor.setAccessible(true)
  ctor.newInstance(parameters.to_java(java.lang.Object))
end