17.1.3 Java class loaders used by EADS servers
This subsection explains the Java class loaders used by EADS servers.
The role of a Java class loader is to dynamically load Java classes to a Java Virtual Machine. The following figure shows the configuration of the Java class loaders that are used by EADS servers.
-
System class loader
Loads the classes that are used by jdk libraries and EADS servers.
-
User library class loader
Loads the library classes that are used by the user functions placed under management-directory/app/lib.
One user library class loader is created for each EADS server.
-
Function class loader
Loads the classes contained in user functions' jar files and the classes contained in the libraries specified in the jar files' manifest files (classes used only by user functions).
One function class loader is created for each jar file. Therefore, if multiple jar files are placed for user functions, multiple function class loaders are created.
Class loader search processing begins with the system class loaders that are parent class loaders.
User functions are loaded in ASCII code order of the jar file names.
You can load classes with the same fully qualified class name to different function class loaders, but only the first user function loaded can be executed. For a user function loaded later, no instance is created and the Function interface's init() is not executed.