org.jboss.mx.server
Class ObjectInputStreamWithClassLoader

java.lang.Object
  extended byjava.io.InputStream
      extended byjava.io.ObjectInputStream
          extended byorg.jboss.mx.server.ObjectInputStreamWithClassLoader
All Implemented Interfaces:
java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class ObjectInputStreamWithClassLoader
extends java.io.ObjectInputStream

This replaces the EjbossInputStream in the storage package. The input stream will take a class loader in its constructor and look into it to retrieve the class definitions. It is used throughout the server to deserialize parameters and objects whose definition are in a jar and not the global classpath It also has better comments than the previous version.

Since:
Ejboss 0.9

Nested Class Summary
 
Nested classes inherited from class java.io.ObjectInputStream
java.io.ObjectInputStream.GetField
 
Field Summary
 
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
 
Constructor Summary
ObjectInputStreamWithClassLoader(java.io.InputStream in, java.lang.ClassLoader cl)
          Construct a new instance with the given classloader and input stream.
 
Method Summary
protected  java.lang.Class resolveClass(java.io.ObjectStreamClass osc)
          Resolve the class described in the osc parameter.
protected  java.lang.Class resolveProxyClass(java.lang.String[] interfaces)
           
 
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, skipBytes
 
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.io.ObjectInput
read, skip
 

Constructor Detail

ObjectInputStreamWithClassLoader

public ObjectInputStreamWithClassLoader(java.io.InputStream in,
                                        java.lang.ClassLoader cl)
                                 throws java.io.IOException
Construct a new instance with the given classloader and input stream.

Method Detail

resolveClass

protected java.lang.Class resolveClass(java.io.ObjectStreamClass osc)
                                throws java.io.IOException,
                                       java.lang.ClassNotFoundException
Resolve the class described in the osc parameter. First, try the default classloader (implemented by the super class). If it cannot load the class, try the classloader given to this instance.

Returns:
the Class corresponding to class description
Throws:
java.io.IOException - if an I/O error occurs
java.lang.ClassNotFoundException - if the class cannot be found by the classloader

resolveProxyClass

protected java.lang.Class resolveProxyClass(java.lang.String[] interfaces)
                                     throws java.io.IOException,
                                            java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException