KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > simontuffs > onejar > Handler


1 package com.simontuffs.onejar;
2
3 import java.io.IOException JavaDoc;
4 import java.io.InputStream JavaDoc;
5 import java.net.URL JavaDoc;
6 import java.net.URLConnection JavaDoc;
7 import java.net.URLStreamHandler JavaDoc;
8
9 /**
10  * @author simon@simontuffs.com
11  *
12  */

13 public class Handler extends URLStreamHandler JavaDoc {
14
15     /**
16      * This procol name must match the name of the package in which this class
17      * lives.
18      */

19     public static String JavaDoc PROTOCOL = "onejar";
20
21     protected int len = PROTOCOL.length()+1;
22     
23     /**
24      * @see java.net.URLStreamHandler#openConnection(java.net.URL)
25      */

26     protected URLConnection JavaDoc openConnection(URL JavaDoc u) throws IOException JavaDoc {
27         final String JavaDoc resource = u.toString().substring(len);
28         return new URLConnection JavaDoc(u) {
29             public void connect() {
30             }
31             public InputStream JavaDoc getInputStream() {
32                 // Use the Boot classloader to get the resource. There
33
// is only one per one-jar.
34
JarClassLoader cl = Boot.getClassLoader();
35                 return cl.getByteStream(resource);
36             }
37         };
38     }
39
40 }
41
Popular Tags