keycloak
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.connections.jpa.entityprovider.ProxyClassLoader クラス
org.keycloak.connections.jpa.entityprovider.ProxyClassLoader の継承関係図
Inheritance graph
org.keycloak.connections.jpa.entityprovider.ProxyClassLoader 連携図
Collaboration graph

公開メンバ関数

 ProxyClassLoader (Collection< Class<?>> classes, ClassLoader parentClassLoader)
 
 ProxyClassLoader (Collection< Class<?>> classes)
 
Class<?> loadClass (String name) throws ClassNotFoundException
 
URL getResource (String name)
 

非公開メンバ関数

void init (Collection< Class<?>> classes)
 

非公開変数類

Set< ClassLoader > classloaders
 

詳解

著者
Erik Mulder

Classloader implementation to facilitate loading classes and resources from a collection of other classloaders. Effectively it forms a proxy to one or more other classloaders.

The way it works:

In this particular context: only loadClass and getResource overrides are needed, since those are the methods that a classloading and resource loading process will need.

構築子と解体子

◆ ProxyClassLoader() [1/2]

org.keycloak.connections.jpa.entityprovider.ProxyClassLoader.ProxyClassLoader ( Collection< Class<?>>  classes,
ClassLoader  parentClassLoader 
)
inline
44  {
45  super(parentClassLoader);
46  init(classes);
47  }
void init(Collection< Class<?>> classes)
Definition: ProxyClassLoader.java:53

◆ ProxyClassLoader() [2/2]

org.keycloak.connections.jpa.entityprovider.ProxyClassLoader.ProxyClassLoader ( Collection< Class<?>>  classes)
inline
49  {
50  init(classes);
51  }
void init(Collection< Class<?>> classes)
Definition: ProxyClassLoader.java:53

関数詳解

◆ getResource()

URL org.keycloak.connections.jpa.entityprovider.ProxyClassLoader.getResource ( String  name)
inline
75  {
76  for (ClassLoader classloader : classloaders) {
77  URL resource = classloader.getResource(name);
78  if (resource != null) {
79  return resource;
80  }
81  // Resource == null means not found, so let the next one try.
82  }
83  // We could not get the resource from the proxy class loaders, so proceed with 'normal' behavior.
84  return super.getResource(name);
85  }
Set< ClassLoader > classloaders
Definition: ProxyClassLoader.java:42

◆ init()

void org.keycloak.connections.jpa.entityprovider.ProxyClassLoader.init ( Collection< Class<?>>  classes)
inlineprivate
53  {
54  classloaders = new HashSet<>();
55  for (Class<?> clazz : classes) {
56  classloaders.add(clazz.getClassLoader());
57  }
58  }
Set< ClassLoader > classloaders
Definition: ProxyClassLoader.java:42

◆ loadClass()

Class<?> org.keycloak.connections.jpa.entityprovider.ProxyClassLoader.loadClass ( String  name) throws ClassNotFoundException
inline
61  {
62  for (ClassLoader classloader : classloaders) {
63  try {
64  return classloader.loadClass(name);
65  } catch (ClassNotFoundException e) {
66  // This particular class loader did not find the class. It's expected behavior that
67  // this can happen, so we'll just ignore the exception and let the next one try.
68  }
69  }
70  // We did not find the class in the proxy class loaders, so proceed with 'normal' behavior.
71  return super.loadClass(name);
72  }
Set< ClassLoader > classloaders
Definition: ProxyClassLoader.java:42

メンバ詳解

◆ classloaders

Set<ClassLoader> org.keycloak.connections.jpa.entityprovider.ProxyClassLoader.classloaders
private

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