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:
Gary Benson 2007-01-15 10:25:38 +00:00 committed by Gary Benson
parent 9ebe2d22e7
commit a5c0f6fe87
28 changed files with 224 additions and 1459 deletions

View File

@ -1,3 +1,11 @@
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.
2007-01-14 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (libgcj_la_LDFLAGS): Add

View File

@ -1922,6 +1922,7 @@ classpath/gnu/java/net/loader/FileResource.java \
classpath/gnu/java/net/loader/FileURLLoader.java \
classpath/gnu/java/net/loader/JarURLLoader.java \
classpath/gnu/java/net/loader/JarURLResource.java \
gnu/java/net/loader/Load_gcjlib.java \
classpath/gnu/java/net/loader/RemoteResource.java \
classpath/gnu/java/net/loader/RemoteURLLoader.java \
classpath/gnu/java/net/loader/Resource.java \
@ -4402,7 +4403,7 @@ classpath/java/net/SocketTimeoutException.java \
classpath/java/net/URI.java \
classpath/java/net/URISyntaxException.java \
classpath/java/net/URL.java \
java/net/URLClassLoader.java \
classpath/java/net/URLClassLoader.java \
classpath/java/net/URLConnection.java \
classpath/java/net/URLDecoder.java \
classpath/java/net/URLEncoder.java \

View File

@ -37,6 +37,9 @@ public:
::java::lang::Class * bootLoadClass(::java::lang::String *);
::java::net::URL * bootGetResource(::java::lang::String *);
::java::util::Enumeration * bootGetResources(::java::lang::String *);
public: // actually package-private
static ::java::lang::Class * coreHandler;
public:
static ::java::lang::Class class$;
};

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2005 Free Software Foundation
/* Copyright (C) 2005, 2007 Free Software Foundation
This file is part of libgcj.
@ -8,6 +8,7 @@ details. */
package gnu.gcj.runtime;
import gnu.java.net.protocol.core.Handler;
import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
@ -21,6 +22,11 @@ import java.util.Enumeration;
*/
public final class BootClassLoader extends HelperClassLoader
{
// This forces the core URL handler to be included in statically
// linked executables. The line that adds core:/ to the search
// path fails otherwise.
static Class coreHandler = gnu.java.net.protocol.core.Handler.class;
BootClassLoader(String libdir)
{
// The BootClassLoader is the top of the delegation chain. It does not

View File

@ -0,0 +1,50 @@
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
#ifndef __gnu_java_net_loader_Load_gcjlib$SoResource__
#define __gnu_java_net_loader_Load_gcjlib$SoResource__
#pragma interface
#include <gnu/java/net/loader/Resource.h>
extern "Java"
{
namespace gnu
{
namespace java
{
namespace net
{
namespace loader
{
class Load_gcjlib;
class Load_gcjlib$SoResource;
}
}
}
}
namespace java
{
namespace net
{
class URL;
}
}
}
class gnu::java::net::loader::Load_gcjlib$SoResource : public ::gnu::java::net::loader::Resource
{
public: // actually package-private
Load_gcjlib$SoResource(::gnu::java::net::loader::Load_gcjlib *, ::java::net::URL *);
public:
::java::io::InputStream * getInputStream();
jint getLength();
::java::net::URL * getURL();
private:
::java::net::URL * __attribute__((aligned(__alignof__( ::gnu::java::net::loader::Resource)))) url;
public:
static ::java::lang::Class class$;
};
#endif // __gnu_java_net_loader_Load_gcjlib$SoResource__

View File

@ -0,0 +1,58 @@
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
#ifndef __gnu_java_net_loader_Load_gcjlib__
#define __gnu_java_net_loader_Load_gcjlib__
#pragma interface
#include <gnu/java/net/loader/URLLoader.h>
extern "Java"
{
namespace gnu
{
namespace gcj
{
namespace runtime
{
class SharedLibHelper;
}
}
namespace java
{
namespace net
{
namespace loader
{
class Load_gcjlib;
class Resource;
class URLStreamHandlerCache;
}
}
}
}
namespace java
{
namespace net
{
class URL;
class URLClassLoader;
class URLStreamHandlerFactory;
}
}
}
class gnu::java::net::loader::Load_gcjlib : public ::gnu::java::net::loader::URLLoader
{
public:
Load_gcjlib(::java::net::URLClassLoader *, ::gnu::java::net::loader::URLStreamHandlerCache *, ::java::net::URLStreamHandlerFactory *, ::java::net::URL *, ::java::net::URL *);
::java::lang::Class * getClass(::java::lang::String *);
::gnu::java::net::loader::Resource * getResource(::java::lang::String *);
private:
::gnu::gcj::runtime::SharedLibHelper * __attribute__((aligned(__alignof__( ::gnu::java::net::loader::URLLoader)))) helper;
public:
static ::java::lang::Class class$;
};
#endif // __gnu_java_net_loader_Load_gcjlib__

View File

@ -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;
}
}
}

View File

@ -11,14 +11,26 @@
extern "Java"
{
namespace gnu
{
namespace java
{
namespace net
{
namespace loader
{
class Resource;
class URLStreamHandlerCache;
}
}
}
}
namespace java
{
namespace net
{
class URL;
class URLClassLoader;
class URLClassLoader$Resource;
class URLStreamHandler;
class URLStreamHandlerFactory;
}
namespace security
@ -52,12 +64,9 @@ public: // actually protected
public:
virtual ::java::lang::String * toString();
private:
::java::net::URLClassLoader$Resource * findURLResource(::java::lang::String *);
::gnu::java::net::loader::Resource * findURLResource(::java::lang::String *);
public:
virtual ::java::net::URL * findResource(::java::lang::String *);
public: // actually package-private
virtual ::java::net::URLStreamHandler * getURLStreamHandler(::java::lang::String *);
public:
virtual ::java::util::Enumeration * findResources(::java::lang::String *);
public: // actually protected
virtual ::java::security::PermissionCollection * getPermissions(::java::security::CodeSource *);
@ -68,8 +77,8 @@ public:
public: // actually package-private
static ::java::lang::Class * access$0(::java::net::URLClassLoader *, ::java::lang::String *, JArray< jbyte > *, jint, jint, ::java::security::CodeSource *);
private:
static ::java::util::HashMap * urlloaders;
static ::java::util::HashMap * factoryCache;
static ::gnu::java::net::loader::URLStreamHandlerCache * factoryCache;
static ::java::lang::String * URL_LOADER_PREFIX;
::java::util::Vector * __attribute__((aligned(__alignof__( ::java::security::SecureClassLoader)))) urls;
::java::util::Vector * urlinfos;
::java::net::URLStreamHandlerFactory * factory;

File diff suppressed because it is too large Load Diff

View File

@ -1338,6 +1338,7 @@ classpath/gnu/java/net/loader/FileResource.java \
classpath/gnu/java/net/loader/FileURLLoader.java \
classpath/gnu/java/net/loader/JarURLLoader.java \
classpath/gnu/java/net/loader/JarURLResource.java \
gnu/java/net/loader/Load_gcjlib.java \
classpath/gnu/java/net/loader/RemoteResource.java \
classpath/gnu/java/net/loader/RemoteURLLoader.java \
classpath/gnu/java/net/loader/Resource.java \
@ -4846,7 +4847,7 @@ classpath/java/net/SocketTimeoutException.java \
classpath/java/net/URI.java \
classpath/java/net/URISyntaxException.java \
classpath/java/net/URL.java \
java/net/URLClassLoader.java \
classpath/java/net/URLClassLoader.java \
classpath/java/net/URLConnection.java \
classpath/java/net/URLDecoder.java \
classpath/java/net/URLEncoder.java \