Public Member Functions | |
AcsComponentClassLoader (ClassLoader parent, Logger logger, String componentName) | |
String | getSourceObject () |
String | getProcessName () |
Static Public Attributes | |
final String | PROPERTY_JARDIRS = "acs.components.classpath.jardirs" |
final String | PROPERTY_CLASSLOADERVERBOSE = "acs.components.classloader.verbose" |
Protected Member Functions | |
synchronized Class<?> | loadClass (String name, boolean resolve) throws ClassNotFoundException |
Class<?> | findClass (String name) throws ClassNotFoundException |
void | finalize () throws Throwable |
Private Member Functions | |
File[] | parseJarDirs (String jarDirPath) |
Private Attributes | |
boolean | verbose |
final Logger | logger |
final String | componentName |
This class requires the directories that contain component impl jars to be specified in the acs.components.classpath.jardirs
property. The startup scripts must set this property. Other jar files (e.g. ACS jars) must be in different directories than those given by this property.
TODO-: this class has a few things in common with alma.acs.classloading.AcsSystemClassLoader, so perhaps during some future refactoring a common base class could be extracted (between URLClassLoader and these).
|
|
|
|
|
Calls
|
|
Taken from ClientLogManager.stripKnownLoggerNamespacePrefix(). Maybe it should be nice to generalize it and put it somewhere else. Strips the prepended constants NS_CORBA, NS_CONTAINER, NS_COMPONENT etc from the logger namespace. This allows for a short, but possibly not unique display of the logger name. logger namespace for CORBA classes (ORB, POAs, etc) logger namespace for container classes during operation parent of logger namespaces for application components |
|
|
|
Attempts to load the given class, and only delegates to parent class loader if it failed. This bottom-up direction of classloading in the classloader hierarchy resembles the J2EE convention, and thus violates the normal J2SE top-down direction.
TODO-: check if certain system or ACS classes should be skipped and delegated upward right away. This may improve performance, assuming a bunch of
|
|
|
|
|
|
|
|
Name of the property that flags verbose mode of the component classloader. Verbose mode is a debugging tool, only to be enabled locally by defining this property. If enabled to be verbose, a component classloader will log the jar files it works with, the classes it loads or fails to load, and also prints a message when it is getting finalized. The latter is useful to monitor component class unloading. |
|
Name of the property that defines the directories for component implementation jar files. Example value: |
|
|