com.sapportals.wcm.crt

Class CrtClassLoaderRegistry

java.lang.Object
  extended by java.lang.ClassLoader
      extended by com.sapportals.wcm.crt.CrtClassLoaderRegistry

public final class CrtClassLoaderRegistry
extends ClassLoader

Provides a registry for class loaders.

getClassLoader() provides a class loader that aggregates all registered class loaders to find and load classes and resources.

The following code shows an example how to use this registry:

 
     // register your personal class loader (this should be done only once)
     CrtClassLoaderRegistry.addClassLoader( MyPrettyCoolClass.class.getClassLoader() );
     ...
     
     // load another class with this class loader
     MyOtherClass myOtherInstance = null;
     try {
       Class myOtherClass = CrtClassLoaderRegistry.forName( "com.company.prg.MyOtherClass" );
       myOtherInstance = (MyOtherClass)myOtherClass.newInstance();
     }
     catch( .... x ) {
       ....
     }
  
  
 

Copyright (c) SAP AG 2001-2006


Method Summary
static void addClassLoader(ClassLoader newLoader)
          Register a class loader to the component runtime.
static void addClassLoader(String id, ClassLoader newLoader)
          Register a class loader with an optional id to the component runtime.
static void addClassLoader(String id, ClassLoader newLoader, Set hints)
          Register a class loader with an optional id to the component runtime.
static void addClassLoaderRegistryListener(IClassLoaderRegistryListener l)
           
static boolean allPluginsRegistered()
           
static void cleanUp()
          Do some cleanups to minimize effects of a leaking CrtClassLoaderRegistry class definition
static void defineRegistrationPhaseAsFinished()
           
static void disableNewClassLoaders()
           
protected  Class findClass(String name)
           
protected  URL findResource(String name)
           
protected  Enumeration findResources(String name)
           
static Class forName(String className)
          Returns the Class object associated with the class or interface with the given string name, using this registry.
static ClassLoader getClassLoader()
          Returns the component runtime default class loader.
static String getHotDeploymentOccurredMessage()
           
static boolean isServerStartup()
           
static void removeClassLoaderRegistryListener(IClassLoaderRegistryListener l)
           
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

findClass

protected Class findClass(String name)
                   throws ClassNotFoundException
Overrides:
findClass in class ClassLoader
Throws:
ClassNotFoundException

findResources

protected Enumeration findResources(String name)
                             throws IOException
Overrides:
findResources in class ClassLoader
Throws:
IOException

findResource

protected URL findResource(String name)
Overrides:
findResource in class ClassLoader

addClassLoader

public static void addClassLoader(ClassLoader newLoader)
Register a class loader to the component runtime. Registration of a class loader after KM is already running will have no effect until Java Engine is restarted.

Parameters:
newLoader - The new class loader instance to be added.

addClassLoader

public static void addClassLoader(String id,
                                  ClassLoader newLoader)
Register a class loader with an optional id to the component runtime. Registration of a class loader after KM is already running will have no effect until Java Engine is restarted. If a class loader with the same id was already registered, this method replaces the former loader with the newLoader .

If newLoader is null the class loader with id is removed.

If id is null the class loader is added anonymous and cannot be removed.

Parameters:
id - The optional id of this class loader
newLoader - The new class loader instance to be added.

addClassLoader

public static void addClassLoader(String id,
                                  ClassLoader newLoader,
                                  Set hints)
Register a class loader with an optional id to the component runtime. Registration of a class loader after KM is already running will have no effect until Java Engine is restarted. If a class loader with the same id was already registered, this method replaces the former loader with the newLoader .

This method is meant as a hook for improved class loading speed. Each class loader newLoader registered comes bundled with a set of Java package names that are in this loaders scope.

Parameters:
id - The id of this class loader (if no id is provided, an automatically generated one will be used)
newLoader - The new class loader instance to be added
hints - A set of package names in the loader's scope

getClassLoader

public static ClassLoader getClassLoader()
Returns the component runtime default class loader. This class loader uses all registered class loaders to find and load class files and resources.

Returns:
The chained class loader

forName

public static Class forName(String className)
                     throws ClassNotFoundException
Returns the Class object associated with the class or interface with the given string name, using this registry.

Parameters:
className -
Returns:
Class object
Throws:
ClassNotFoundException

getHotDeploymentOccurredMessage

public static String getHotDeploymentOccurredMessage()

isServerStartup

public static boolean isServerStartup()
Returns:
true if the current startup is caused by a server restart, false if this startup is caused by

defineRegistrationPhaseAsFinished

public static void defineRegistrationPhaseAsFinished()

allPluginsRegistered

public static boolean allPluginsRegistered()

addClassLoaderRegistryListener

public static void addClassLoaderRegistryListener(IClassLoaderRegistryListener l)

removeClassLoaderRegistryListener

public static void removeClassLoaderRegistryListener(IClassLoaderRegistryListener l)

disableNewClassLoaders

public static void disableNewClassLoaders()

cleanUp

public static void cleanUp()
Do some cleanups to minimize effects of a leaking CrtClassLoaderRegistry class definition

Access Rights

This class can be accessed from:


SC DC Public Part ACH
[sap.com] KMC-CM [sap.com] tc/km/frwk api EP-KM-CM
[sap.com] KMC-WPC [sap.com] tc/kmc/wpc/wpcfacade api EP-PIN-WPC-WCM


Copyright 2014 SAP AG Complete Copyright Notice