KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > kernel > classloader > JarResourceLocation


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17 package org.apache.geronimo.kernel.classloader;
18
19 import java.util.jar.Manifest JavaDoc;
20 import java.util.jar.JarFile JavaDoc;
21 import java.util.jar.JarEntry JavaDoc;
22 import java.net.URL JavaDoc;
23 import java.net.MalformedURLException JavaDoc;
24 import java.io.IOException JavaDoc;
25
26 /**
27  * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $
28  */

29 public class JarResourceLocation extends AbstractUrlResourceLocation {
30     private final JarFile JavaDoc jarFile;
31
32     public JarResourceLocation(URL JavaDoc codeSource, JarFile JavaDoc jarFile) {
33         super(codeSource);
34         this.jarFile = jarFile;
35     }
36
37     public ResourceHandle getResourceHandle(String JavaDoc resourceName) {
38         JarEntry JavaDoc jarEntry = jarFile.getJarEntry(resourceName);
39         if (jarEntry != null) {
40             try {
41                 URL JavaDoc url = new URL JavaDoc(getCodeSource(), resourceName);
42                 return new JarResourceHandle(jarFile, jarEntry, getCodeSource());
43             } catch (MalformedURLException JavaDoc e) {
44             }
45         }
46         return null;
47     }
48
49     public Manifest JavaDoc getManifest() throws IOException JavaDoc {
50         return jarFile.getManifest();
51     }
52
53     public void close() {
54         IoUtil.close(jarFile);
55     }
56 }
57
Popular Tags