org.objectweb.dsrg.sofa
Class RMIClassLoaderServiceProvider

java.lang.Object
  extended by java.rmi.server.RMIClassLoaderSpi
      extended by org.objectweb.dsrg.sofa.RMIClassLoaderServiceProvider

public class RMIClassLoaderServiceProvider
extends java.rmi.server.RMIClassLoaderSpi

SOFA2 implementation of RMIClassLoader that is capable of downloading classes from SOFA2 repository.


Constructor Summary
RMIClassLoaderServiceProvider()
          Contructor initialises connection to repository.
 
Method Summary
 java.lang.String getClassAnnotation(java.lang.Class<?> cl)
          Returns RMI annotation for given class.
 java.lang.ClassLoader getClassLoader(java.lang.String codebase)
          Returns classloader to be used for given codebase.
 java.lang.Class<?> loadClass(java.lang.String codebase, java.lang.String name, java.lang.ClassLoader defaultClassLoader)
           
 java.lang.Class<?> loadProxyClass(java.lang.String codebase, java.lang.String[] interfaces, java.lang.ClassLoader defaultClassLoader)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RMIClassLoaderServiceProvider

public RMIClassLoaderServiceProvider()
Contructor initialises connection to repository.

Method Detail

getClassAnnotation

public java.lang.String getClassAnnotation(java.lang.Class<?> cl)
Returns RMI annotation for given class. If class is loaded by SOFAClassLoader annotation contains URI of the containing CodeBundle using sofarep: protocol.

Specified by:
getClassAnnotation in class java.rmi.server.RMIClassLoaderSpi

getClassLoader

public java.lang.ClassLoader getClassLoader(java.lang.String codebase)
                                     throws java.net.MalformedURLException
Returns classloader to be used for given codebase.

SOFAClassLoader is returned if the codebase contains URI using sofarep: protocol.

Specified by:
getClassLoader in class java.rmi.server.RMIClassLoaderSpi
Throws:
java.net.MalformedURLException

loadClass

public java.lang.Class<?> loadClass(java.lang.String codebase,
                                    java.lang.String name,
                                    java.lang.ClassLoader defaultClassLoader)
                             throws java.net.MalformedURLException,
                                    java.lang.ClassNotFoundException
Specified by:
loadClass in class java.rmi.server.RMIClassLoaderSpi
Throws:
java.net.MalformedURLException
java.lang.ClassNotFoundException

loadProxyClass

public java.lang.Class<?> loadProxyClass(java.lang.String codebase,
                                         java.lang.String[] interfaces,
                                         java.lang.ClassLoader defaultClassLoader)
                                  throws java.net.MalformedURLException,
                                         java.lang.ClassNotFoundException
Specified by:
loadProxyClass in class java.rmi.server.RMIClassLoaderSpi
Throws:
java.net.MalformedURLException
java.lang.ClassNotFoundException