RubyClassPathVariable.createClassPathVariable(runtime);
}
public static RubyModule createJavaModule(Ruby runtime) {
ThreadContext context = runtime.getCurrentContext();
RubyModule javaModule = runtime.defineModule("Java");
javaModule.defineAnnotatedMethods(Java.class);
JavaObject.createJavaObjectClass(runtime, javaModule);
JavaArray.createJavaArrayClass(runtime, javaModule);
JavaClass.createJavaClassClass(runtime, javaModule);
JavaMethod.createJavaMethodClass(runtime, javaModule);
JavaConstructor.createJavaConstructorClass(runtime, javaModule);
JavaField.createJavaFieldClass(runtime, javaModule);
// set of utility methods for Java-based proxy objects
JavaProxyMethods.createJavaProxyMethods(context);
// the proxy (wrapper) type hierarchy
JavaProxy.createJavaProxy(context);
ConcreteJavaProxy.createConcreteJavaProxy(context);
//InterfaceJavaProxy.createInterfaceJavaProxy(context);
ArrayJavaProxy.createArrayJavaProxy(context);
// also create the JavaProxy* classes
JavaProxyClass.createJavaProxyModule(runtime);
// The template for interface modules
JavaInterfaceTemplate.createJavaInterfaceTemplateModule(context);
RubyModule javaUtils = runtime.defineModule("JavaUtilities");
javaUtils.defineAnnotatedMethods(JavaUtilities.class);
runtime.getJavaSupport().setConcreteProxyCallback(new Callback() {
public IRubyObject execute(IRubyObject recv, IRubyObject[] args, Block block) {
Arity.checkArgumentCount(recv.getRuntime(), args, 1, 1);