本文整理了Java中org.jruby.Ruby.getJRubyClassLoader
方法的一些代码示例,展示了Ruby.getJRubyClassLoader
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ruby.getJRubyClassLoader
方法的具体详情如下:
包路径:org.jruby.Ruby
类名称:Ruby
方法名:getJRubyClassLoader
暂无
代码示例来源:origin: org.jruby/jruby-complete
@Override
protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
return Class.forName(desc.getName(), true, runtime.getJRubyClassLoader());
}
}
代码示例来源:origin: org.jruby/jruby-core
@Override
protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
return Class.forName(desc.getName(), true, runtime.getJRubyClassLoader());
}
}
代码示例来源:origin: org.jruby/jruby-complete
protected Class<?> resolveClass(ObjectStreamClass desc)
throws IOException, ClassNotFoundException
{
String name = desc.getName();
try {
return Class.forName(name, false, runtime.getJRubyClassLoader());
} catch (ClassNotFoundException ex) {
return super.resolveClass(desc);
}
}
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
protected Class<?> resolveClass(ObjectStreamClass desc)
throws IOException, ClassNotFoundException
{
String name = desc.getName();
try {
return Class.forName(name, false, runtime.getJRubyClassLoader());
} catch (ClassNotFoundException ex) {
return super.resolveClass(desc);
}
}
}
代码示例来源:origin: org.jruby/jruby-core
public static URL getResourceURL(Ruby runtime, String location) {
if (location.startsWith(URI_CLASSLOADER)) {
return runtime.getJRubyClassLoader().getResource(location.substring(URI_CLASSLOADER.length() + 1));
}
try {
return new URL(location.replaceFirst("^" + URI, ""));
}
catch (MalformedURLException e) {
throw new AssertionError("BUG in " + URLResource.class, e);
}
}
代码示例来源:origin: org.jruby/jruby-complete
public static URL getResourceURL(Ruby runtime, String location) {
if (location.startsWith(URI_CLASSLOADER)) {
return runtime.getJRubyClassLoader().getResource(location.substring(URI_CLASSLOADER.length() + 1));
}
try {
return new URL(location.replaceFirst("^" + URI, ""));
}
catch (MalformedURLException e) {
throw new AssertionError("BUG in " + URLResource.class, e);
}
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
public Class loadJavaClass(String className) throws ClassNotFoundException {
Class primitiveClass;
if ((primitiveClass = PRIMITIVE_CLASSES.get(className)) == null) {
if (!Ruby.isSecurityRestricted()) {
return Class.forName(className, true, runtime.getJRubyClassLoader());
}
return Class.forName(className);
}
return primitiveClass;
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
public Class loadJavaClass(String className) throws ClassNotFoundException {
Class primitiveClass;
if ((primitiveClass = PRIMITIVE_CLASSES.get(className)) == null) {
if (!Ruby.isSecurityRestricted()) {
return Class.forName(className, true, runtime.getJRubyClassLoader());
}
return Class.forName(className);
}
return primitiveClass;
}
代码示例来源:origin: org.jruby/jruby-complete
/**
* @return the configured {@link org.jruby.runtime.profile.ProfilingService} class.
*/
@SuppressWarnings( "unchecked" )
private Class<? extends ProfilingService> loadServiceClass() {
ClassLoader cl = getRuntime().getJRubyClassLoader();
try {
return (Class<? extends ProfilingService>) cl.loadClass( getServiceClassName() );
} catch (ClassNotFoundException e) {
throw new RuntimeException( "Can't load service service class. " + e.getClass().getSimpleName() + ": " + e.getMessage() );
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
public static JavaProxyClass getProxyClass(Ruby runtime, Class superClass,
Class[] interfaces, Set names) throws InvocationTargetException {
Ruby save = runtimeTLS.get();
runtimeTLS.set(runtime);
try {
ClassLoader loader = runtime.getJRubyClassLoader();
return runtime.getJavaProxyClassFactory().newProxyClass(runtime, loader, null, superClass, interfaces, names);
} finally {
runtimeTLS.set(save);
}
}
代码示例来源:origin: org.jruby/jruby-complete
public void defineAnnotatedMethod(Class clazz, String name) {
// FIXME: This is probably not very efficient, since it loads all methods for each call
boolean foundMethod = false;
for (Method method : clazz.getDeclaredMethods()) {
if (method.getName().equals(name) && defineAnnotatedMethod(method, MethodFactory.createFactory(getRuntime().getJRubyClassLoader()))) {
foundMethod = true;
}
}
if (!foundMethod) {
throw new RuntimeException("No JRubyMethod present for method " + name + "on class " + clazz.getName());
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
public void defineAnnotatedMethod(Class clazz, String name) {
// FIXME: This is probably not very efficient, since it loads all methods for each call
boolean foundMethod = false;
for (Method method : clazz.getDeclaredMethods()) {
if (method.getName().equals(name) && defineAnnotatedMethod(method, MethodFactory.createFactory(getRuntime().getJRubyClassLoader()))) {
foundMethod = true;
}
}
if (!foundMethod) {
throw new RuntimeException("No JRubyMethod present for method " + name + "on class " + clazz.getName());
}
}
代码示例来源:origin: org.jruby/jruby-complete
private void doSetContextClassLoader(Ruby runtime) {
// set thread context JRuby classloader here, for the main thread
try {
Thread.currentThread().setContextClassLoader(runtime.getJRubyClassLoader());
} catch (SecurityException se) {
// can't set TC classloader
if (runtime.getInstanceConfig().isVerbose()) {
config.getError().println("WARNING: Security restrictions disallowed setting context classloader for main thread.");
}
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
private void doSetContextClassLoader(Ruby runtime) {
// set thread context JRuby classloader here, for the main thread
try {
Thread.currentThread().setContextClassLoader(runtime.getJRubyClassLoader());
} catch (SecurityException se) {
// can't set TC classloader
if (runtime.getInstanceConfig().isVerbose()) {
config.getError().println("WARNING: Security restrictions disallowed setting context classloader for main thread.");
}
}
}
代码示例来源:origin: org.jruby/jruby-complete
@JRubyMethod(module = true, rest = true, optional = 1) // (loader = JRuby.runtime.jruby_class_loader)
public static IRubyObject set_context_class_loader(ThreadContext context, IRubyObject recv, IRubyObject[] args) {
final ClassLoader loader;
if (args.length == 0 || args[0] == context.nil) {
loader = context.runtime.getJRubyClassLoader();
}
else {
loader = JavaUtil.unwrapJavaObject(args[0]);
}
java.lang.Thread.currentThread().setContextClassLoader(loader);
return Java.wrapJavaObject(context.runtime, loader); // reference0
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
/**
* Try to compile the code associated with the given Node, returning an
* instance of the successfully-compiled Script or null if the script could
* not be compiled.
*
* @param node The node to attempt to compiled
* @return an instance of the successfully-compiled Script, or null.
*/
public Script tryCompile(Node node) {
return tryCompile(node, null, new JRubyClassLoader(getJRubyClassLoader()), false);
}
代码示例来源:origin: org.jruby/jruby-complete
/**
* Try to compile the code associated with the given Node, returning an
* instance of the successfully-compiled Script or null if the script could
* not be compiled.
*
* @param node The node to attempt to compiled
* @return an instance of the successfully-compiled Script, or null.
*/
public Script tryCompile(Node node) {
return tryCompile((RootNode) node, new ClassDefiningJRubyClassLoader(getJRubyClassLoader())).script();
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
public void load(Ruby runtime, boolean wrap) {
try {
URL jarFile = resource.getURL();
// Make Java class files in the jar reachable from Ruby
runtime.getJRubyClassLoader().addURL(jarFile);
} catch (IOException e) {
throw runtime.newIOErrorFromException(e);
}
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
public void load(Ruby runtime, boolean wrap) {
try {
URL jarFile = resource.getURL();
// Make Java class files in the jar reachable from Ruby
runtime.getJRubyClassLoader().addURL(jarFile);
} catch (IOException e) {
throw runtime.newIOErrorFromException(e);
}
}
}
代码示例来源:origin: org.jruby/jruby-complete
@JRubyMethod
public IRubyObject each(Block block) {
final ThreadContext context = getRuntime().getCurrentContext();
URL[] urls = context.runtime.getJRubyClassLoader().getURLs();
for(int i=0,j=urls.length;i<j;i++) {
block.yield(context, context.runtime.newString(urls[i].toString()));
}
return context.nil;
}
内容来源于网络,如有侵权,请联系作者删除!