Connection.java (getJarFile): download and cache remote jar files.

* gnu/gcj/protocol/jar/Connection.java (getJarFile): download and
	cache remote jar files.
	* gnu/gcj/runtime/VMClassLoader.java: Don't construct jar URL, only
	add File.separator to URL when it is a directory.
	* java/lang/ClassLoader.java: Add Classpath javadoc.
	(parent): final.
	(getParent): Add (disabled) security check.
	(findLibrary): New default method.
	* java/net/JarURLConnection.java (getManifest): Implement.
	(getInputStream): Only create InputStream when entry exists.
	(getHeaders): Only use jarFileURLConnection or JarEntry to set length
	when they exist.
	* java/net/URLClassLoader.java: New/Rewritten version from Classpath.

From-SVN: r59949
This commit is contained in:
Mark Wielaard
2002-12-09 00:04:00 +00:00
committed by Mark Wielaard
parent 24632117ce
commit e825ca7ff5
6 changed files with 1099 additions and 365 deletions
+4 -17
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1999, 2001 Free Software Foundation
/* Copyright (C) 1999, 2001, 2002 Free Software Foundation
This file is part of libgcj.
@@ -33,23 +33,10 @@ public final class VMClassLoader extends java.net.URLClassLoader
String e = st.nextToken ();
try
{
if (e.endsWith(".jar") || e.endsWith (".zip"))
{
File archive = new File (e);
try {
p.addElement(new URL("jar", "", -1, "file://"
+ archive.getCanonicalPath ()
+ "!/"));
} catch (IOException ex) {
// empty
}
}
else if (e.endsWith ("/"))
p.addElement (new URL("file", "", -1, e));
else if (new File (e).isDirectory ())
p.addElement (new URL("file", "", -1, e + "/"));
if (!e.endsWith (File.separator) && new File (e).isDirectory ())
p.addElement (new URL("file", "", -1, e + File.separator));
else
/* Ignore path element. */;
p.addElement (new URL("file", "", -1, e));
}
catch (java.net.MalformedURLException x)
{