001
014
015 package com.liferay.portal.kernel.util;
016
017 import com.liferay.portal.kernel.security.pacl.permission.PortalRuntimePermission;
018
019 import java.net.URL;
020 import java.net.URLClassLoader;
021
022
025 public class PortalClassLoaderUtil {
026
027 public static ClassLoader getClassLoader() {
028 PortalRuntimePermission.checkGetClassLoader("portal");
029
030 return _classLoader;
031 }
032
033 public static void setClassLoader(ClassLoader classLoader) {
034 PortalRuntimePermission.checkSetBeanProperty(
035 PortalClassLoaderUtil.class);
036
037 if (classLoader == null) {
038 _classLoader = null;
039
040 return;
041 }
042
043 if (ServerDetector.isJOnAS() && JavaDetector.isJDK6()) {
044 _classLoader = new URLClassLoader(new URL[0], classLoader);
045 }
046
047 else {
048 Class<?> clazz = classLoader.getClass();
049
050 try {
051 clazz.getMethod("destroy");
052
053 _classLoader = new URLClassLoader(new URL[0], classLoader);
054 }
055 catch (NoSuchMethodException nsme) {
056 _classLoader = classLoader;
057 }
058 }
059 }
060
061 private static ClassLoader _classLoader;
062
063 }