gluu
公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.gluu.credmanager.misc.CustomClassLoader クラス
org.gluu.credmanager.misc.CustomClassLoader の継承関係図
Inheritance graph
org.gluu.credmanager.misc.CustomClassLoader 連携図
Collaboration graph

公開メンバ関数

 CustomClassLoader ()
 
ClassLoader getContextClassLoader (Class<?> reference)
 
ClassLoader getContextClassLoaderForName (String className)
 

非公開変数類

Logger logger = LoggerFactory.getLogger(getClass())
 
IExtensionsManager extManager
 

静的非公開変数類

static final String [] DEFAULT_PACKAGES = {"org.zkoss", "java", "javax"}
 

詳解

著者
jgomer

構築子と解体子

◆ CustomClassLoader()

org.gluu.credmanager.misc.CustomClassLoader.CustomClassLoader ( )
inline
25  {
26  extManager = Utils.managedBean(IExtensionsManager.class);
27  if (extManager == null) {
28  logger.error("Could not obtain a reference to ExtensionsManager bean");
29  }
30  }
IExtensionsManager extManager
Definition: CustomClassLoader.java:23
Logger logger
Definition: CustomClassLoader.java:22

関数詳解

◆ getContextClassLoader()

ClassLoader org.gluu.credmanager.misc.CustomClassLoader.getContextClassLoader ( Class<?>  reference)
inline
33  {
34  return reference.getClassLoader();
35  //return Thread.currentThread().getContextClassLoader();
36  }

◆ getContextClassLoaderForName()

ClassLoader org.gluu.credmanager.misc.CustomClassLoader.getContextClassLoaderForName ( String  className)
inline
38  {
39 
40  ClassLoader loader = Thread.currentThread().getContextClassLoader();
41  //Filter out uninteresting classes
42  if (Arrays.stream(DEFAULT_PACKAGES).anyMatch(pkg -> className.startsWith(pkg + "."))
43  || !Character.isLetter(className.charAt(0))) {
44  return loader;
45  }
46 
47  try {
48  //TODO: implement a Map for lookup?
49  loader.loadClass(className);
50  logger.trace("Class '{}' found in current thread's context class loader", className);
51  return loader;
52  } catch (ClassNotFoundException e) {
53 
54  //logger.warn("Class not found in current thread's context class loader");
55  if (extManager != null) {
56  loader = extManager.getPluginClassLoader(className);
57 
58  if (loader == null) {
59  logger.error("Could not find a plugin class loader for class '{}'", className);
60  } else {
61  logger.trace("Class '{}' found in one of the plugins class loaders", className);
62  }
63  }
64  }
65  return loader;
66 
67  }
IExtensionsManager extManager
Definition: CustomClassLoader.java:23
ClassLoader getPluginClassLoader(String clsName)
static final String [] DEFAULT_PACKAGES
Definition: CustomClassLoader.java:20
Logger logger
Definition: CustomClassLoader.java:22

メンバ詳解

◆ DEFAULT_PACKAGES

final String [] org.gluu.credmanager.misc.CustomClassLoader.DEFAULT_PACKAGES = {"org.zkoss", "java", "javax"}
staticprivate

◆ extManager

IExtensionsManager org.gluu.credmanager.misc.CustomClassLoader.extManager
private

◆ logger

Logger org.gluu.credmanager.misc.CustomClassLoader.logger = LoggerFactory.getLogger(getClass())
private

このクラス詳解は次のファイルから抽出されました: