equal
deleted
inserted
replaced
47 import java.util.Map; |
47 import java.util.Map; |
48 import java.util.HashMap; |
48 import java.util.HashMap; |
49 import java.util.Iterator; |
49 import java.util.Iterator; |
50 |
50 |
51 import sun.net.www.ParseUtil; |
51 import sun.net.www.ParseUtil; |
|
52 import sun.reflect.CallerSensitive; |
|
53 import sun.reflect.Reflection; |
52 |
54 |
53 import java.lang.annotation.Annotation; |
55 import java.lang.annotation.Annotation; |
54 |
56 |
55 /** |
57 /** |
56 * {@code Package} objects contain version information |
58 * {@code Package} objects contain version information |
271 * |
273 * |
272 * @param name a package name, for example, java.lang. |
274 * @param name a package name, for example, java.lang. |
273 * @return the package of the requested name. It may be null if no package |
275 * @return the package of the requested name. It may be null if no package |
274 * information is available from the archive or codebase. |
276 * information is available from the archive or codebase. |
275 */ |
277 */ |
|
278 @CallerSensitive |
276 public static Package getPackage(String name) { |
279 public static Package getPackage(String name) { |
277 ClassLoader l = ClassLoader.getCallerClassLoader(); |
280 ClassLoader l = ClassLoader.getClassLoader(Reflection.getCallerClass()); |
278 if (l != null) { |
281 if (l != null) { |
279 return l.getPackage(name); |
282 return l.getPackage(name); |
280 } else { |
283 } else { |
281 return getSystemPackage(name); |
284 return getSystemPackage(name); |
282 } |
285 } |
292 * {@code ClassLoader} instance will be returned. |
295 * {@code ClassLoader} instance will be returned. |
293 * |
296 * |
294 * @return a new array of packages known to the callers {@code ClassLoader} |
297 * @return a new array of packages known to the callers {@code ClassLoader} |
295 * instance. An zero length array is returned if none are known. |
298 * instance. An zero length array is returned if none are known. |
296 */ |
299 */ |
|
300 @CallerSensitive |
297 public static Package[] getPackages() { |
301 public static Package[] getPackages() { |
298 ClassLoader l = ClassLoader.getCallerClassLoader(); |
302 ClassLoader l = ClassLoader.getClassLoader(Reflection.getCallerClass()); |
299 if (l != null) { |
303 if (l != null) { |
300 return l.getPackages(); |
304 return l.getPackages(); |
301 } else { |
305 } else { |
302 return getSystemPackages(); |
306 return getSystemPackages(); |
303 } |
307 } |