URLClassLoader.java: Removed.
2007-01-15 Gary Benson <gbenson@redhat.com> * java/net/URLClassLoader.java: Removed. * gnu/java/net/loader/Load_gcjlib.java: New file. * gnu/gcj/runtime/BootClassLoader.java: Ensure core URL handler is present in static executables. * sources.am, Makefile.in: Rebuilt. From-SVN: r120791
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
/* Copyright (C) 2007 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package gnu.java.net.loader;
|
||||
|
||||
import gnu.gcj.runtime.SharedLibHelper;
|
||||
import java.io.InputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
import java.net.URLConnection;
|
||||
import java.net.URLStreamHandlerFactory;
|
||||
|
||||
/**
|
||||
* A <code>Load_gcjlib</code> is a type of <code>URLLoader</code>
|
||||
* that loads classes and resources from a shared library.
|
||||
*/
|
||||
public final class Load_gcjlib extends URLLoader
|
||||
{
|
||||
private SharedLibHelper helper;
|
||||
|
||||
public Load_gcjlib(URLClassLoader classloader,
|
||||
URLStreamHandlerCache cache,
|
||||
URLStreamHandlerFactory factory,
|
||||
URL url, URL absoluteUrl)
|
||||
{
|
||||
super(classloader, cache, factory, url, absoluteUrl);
|
||||
helper = SharedLibHelper.findHelper(classloader, url.getFile(),
|
||||
noCertCodeSource, true);
|
||||
}
|
||||
|
||||
public Class getClass(String className)
|
||||
{
|
||||
return helper.findClass(className);
|
||||
}
|
||||
|
||||
public Resource getResource(String name)
|
||||
{
|
||||
URL url = helper.findResource(name);
|
||||
if (url == null)
|
||||
return null;
|
||||
return new SoResource(this, url);
|
||||
}
|
||||
|
||||
final static class SoResource extends Resource
|
||||
{
|
||||
private final URL url;
|
||||
|
||||
SoResource(Load_gcjlib loader, URL url)
|
||||
{
|
||||
super(loader);
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public InputStream getInputStream() throws IOException
|
||||
{
|
||||
URLConnection conn = url.openConnection();
|
||||
return conn.getInputStream();
|
||||
}
|
||||
|
||||
public int getLength()
|
||||
{
|
||||
// FIXME we could find this by asking the core object.
|
||||
return -1;
|
||||
}
|
||||
|
||||
public URL getURL ()
|
||||
{
|
||||
return url;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user